Re: [pgsql-ru-general] [pgsql-ru-general] Бакап реплики - Mailing list pgsql-ru-general

From Vladimir Borodin
Subject Re: [pgsql-ru-general] [pgsql-ru-general] Бакап реплики
Date
Msg-id CCC8AD23-9C94-448A-A7FD-940680CD0E29@simply.name
Whole thread Raw
In response to Fwd: Re: [pgsql-ru-general] Бакап реплики  (Миша Тюрин <tmihail@bk.ru>)
List pgsql-ru-general
Привет.

19 июня 2015 г., в 23:42, Dmitry E. Oboukhov <unera@debian.org> написал(а):

pg_basebackup
http://www.postgresql.org/docs/9.4/static/app-pgbasebackup.html

про утилиту я понимаю.


но мне надо понять смысл ее работы.

вот я понимаю что выдав pg_start_backup на мастере я могу свободно
rsync'ать ее файлики.

мне теперь интересно что надо делать с репликой (хот-стендбай) чтобы
свободно рсинкать.

Для начала стоит взглянуть на этот тред [0]. Если коротко, то механика процесса такова:
1. сказать pg_start_backup(‘label’) на мастере,
2. дождаться, пока реплика достигнет этой позиции xlog’а,
3. скопировать с неё данные любимым инструментом,
4. утащить с мастера файл с backup label,
5. сказать pg_stop_backup() на мастере.

После этого новая реплика взлетит. Весь этот процесс можно сильно облегчить использованием уже упомянутого Мишей pg_basebackup’а или расширения pgespresso [1], который в частности используется божественным barman’ом [2].


просто утилиты утилитами а в реале иногда понимание процессов
позволяет что-то сделать более интересное.

например мы переезжали на новую версию постгриса: я поставил штук 40
экспериментов с утилитой апгрейд-кластер и во всех случаях эта утилита
решала работать от 2 до 5 часов. какие бы опции я не применял.
далее влез и посмотрел что она делает и написали свой скрипт который
апгрейд нам сделал за 17 секунд.

Думаю, ты всё же не все варианты перепробовал. Миша дело говорит -опция -k ускоряет обновление баз с несколькими терабайтами данных до единиц секунд.




Пятница, 19 июня 2015, 13:51 +03:00 от "Dmitry E. Oboukhov" <unera@debian.org>:

Есть каскад

мастер - реплика

теперь и то и другое надо перевести на другое железо

сделали новую реплику

мастер +- реплика
|
+- новая реплика (станет новым мастером)

Далее хочу сразу сделать и новую реплику которая станет потом и новой
репликой, то есть

мастер +- реплика
|
+- новая реплика - реплика 3

Как создавали реплики обычно:

1. pg_start_backup
2. rsync
3. конфиг recovery на реплике
4. pg_stop_backup
5. старт реплики

теперь на шаге 1 на реплике ловим ошибк

2015-06-19 10:29:11 GMT ERROR: recovery is in progress
2015-06-19 10:29:11 GMT HINT: WAL control functions cannot be executed
during recovery.
2015-06-19 10:29:11 GMT STATEMENT: SELECT pg_start_backup('label', true);

Я погуглил и насколько я понял из того что нагуглилось - что реплики
можно безопасно backup'ить файлы без ввода реплики в backup_mode,
потому что реплика как раз использует WAL'ы для работы, то есть по
факту как бы всегда у нее включен режим backup.

правильно ли я понял или нет?

PS: Pg 9.3

--

. ''`. Dmitry E. Oboukhov
: :’ : email: unera@debian.org jabber://UNera@uvw.ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--

. ''`.                               Dmitry E. Oboukhov
: :’  :   email: unera@debian.org jabber://UNera@uvw.ru
`. `~’              GPGKey: 1024D / F8E26537 2006-11-21
 `- 1B23 D4F8 8EC0 D902 0555  E438 AB8C 00CF F8E2 6537


--
Да пребудет с вами сила…

pgsql-ru-general by date:

Previous
From: Миша Тюрин
Date:
Subject: Re[2]: [pgsql-ru-general] Бакап реплики
Next
From: Vladimir Borodin
Date:
Subject: Re: [pgsql-ru-general] Тюнинг БД