|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Настроена логическая репликация данных из базы db_src в базу db_trg и резервное копирование этих баз. 1. Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа, а) восстановится ли при этом публикация? или нужно, например, дополнительно восстановить базу "Postgres" б) подхватит ли ее подписчик автоматически, или нужно будет сделать ее REFRESH|пересоздание? 2. Если выйдет из строя сервер-подписчик, то после рестора db_trg а) восстановится ли подписка? или нужно, например, дополнительно восстановить базу "Postgres" б) подхватит ли эта подписка автоматически публикацию, или нужно будет сделать ее REFRESH|пересоздание? Общий вопрос для обоих кейсов: 3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg? А вообще если эти вопросы где-то подробно расписаны, буду оч благодарен за ссылку. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 15:20 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Шамиль Фаридович Настроена логическая репликация данных из базы db_src в базу db_trg и резервное копирование этих баз. 1. Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа, а) восстановится ли при этом публикация? или нужно, например, дополнительно восстановить базу "Postgres" б) подхватит ли ее подписчик автоматически, или нужно будет сделать ее REFRESH|пересоздание? 2. Если выйдет из строя сервер-подписчик, то после рестора db_trg а) восстановится ли подписка? или нужно, например, дополнительно восстановить базу "Postgres" б) подхватит ли эта подписка автоматически публикацию, или нужно будет сделать ее REFRESH|пересоздание? Общий вопрос для обоих кейсов: 3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg? А вообще если эти вопросы где-то подробно расписаны, буду оч благодарен за ссылку. (Имхо) логическая репликация - это вообще не про отказоустойчивость. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 15:43 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
mefman, решение окончательное, возврату и обмену не подлежит?) 3ий вопрос меня интересует больше всего. Если умер публикатор, то восстановив базу db_src из бэкапа, точно можно пересоздать подписку с Код: plsql 1.
Что делать, если умер подписчик? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 03:51 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Шамиль Фаридович mefman, решение окончательное, возврату и обмену не подлежит?) 3ий вопрос меня интересует больше всего. Если умер публикатор, то восстановив базу db_src из бэкапа, точно можно пересоздать подписку с Код: plsql 1.
Что делать, если умер подписчик? можно то оно можно но согласованности данных - никто вам гарантировать не будет. Т.е. никаких механизмов сверки там нет (и что никаких изменений не было потеряно между backup и restore на подписчике - тоже). Фактически все это ответ на ваш 3тий вопрос: 3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg? Это невозможно ни в случае восстановления из backup src ни в случае восстановления из backup trg... всегда полная переналивка (можно еще руками конечно через fdw сделать diff и синхронизировать руками же а потом уже делать подписку но по ресурсам - это дороже чем переналить все с нуля). Т.е. то что вы хотите - невозможно в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 09:56 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Шамиль Фаридович mefman, решение окончательное, возврату и обмену не подлежит?) 3ий вопрос меня интересует больше всего. Если умер публикатор, то восстановив базу db_src из бэкапа, точно можно пересоздать подписку с Код: plsql 1.
Что делать, если умер подписчик? Окончательное. Вот и Максим подтвердил. Логическая репликация это больше про ЕТЛ, но никак не про отказоустойчивость и сохранность данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:44 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Шамиль Фаридович Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа Нельзя. Придётся объявлять db_trg новым мастером, переключать на него всю работу и настраивать нового подписчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 14:21 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Шамиль Фаридович Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа Нельзя. Придётся объявлять db_trg новым мастером, переключать на него всю работу и настраивать нового подписчика. Ну почему же? Теоретически можно. Но через одно место. А с потоковой репликацией можно "одной" кнопкой) Я другому удивляюсь: Откуда эти извращенцы, желающие чесать правое ухо левой пяткой, берутся? Один чудесатее другого... Есть простые 1000 раз описанные методы. Нет. Надо придумать 1001. С блэкджеком и шлюхами. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 14:31 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
mefman Dimitry Sibiryakov пропущено... Нельзя. Придётся объявлять db_trg новым мастером, переключать на него всю работу и настраивать нового подписчика. Ну почему же? Теоретически можно. Но через одно место. А с потоковой репликацией можно "одной" кнопкой) Я другому удивляюсь: Откуда эти извращенцы, желающие чесать правое ухо левой пяткой, берутся? Один чудесатее другого... Есть простые 1000 раз описанные методы. Нет. Надо придумать 1001. С блэкджеком и шлюхами. Как я понимаю - молодое поколение. Чтобы понять что "чесать правое ухо левой пяткой" неудобно - надо пару раз попробовать так сделать а еще лучше получить подобную систему в production в наследство годика на 2-3-4 чтобы всю боль прочуствовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 15:27 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Maxim Boguk можно то оно можно но согласованности данных - никто вам гарантировать не будет. Т.е. никаких механизмов сверки там нет (и что никаких изменений не было потеряно между backup и restore на подписчике - тоже). Фактически все это ответ на ваш 3тий вопрос: 3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg? Это невозможно ни в случае восстановления из backup src ни в случае восстановления из backup trg... всегда полная переналивка (можно еще руками конечно через fdw сделать diff и синхронизировать руками же а потом уже делать подписку но по ресурсам - это дороже чем переналить все с нуля). Т.е. то что вы хотите - невозможно в принципе. А как же указатель LSN? Был доклад авито в свое время, там это подробно расписывалось. Я проверял руками, восстанавливал подписчика с сохраненным ранее lsn, устанавливал указатель и разница прилетала с паблишера. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 07:07 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
А ТС хочет наоборот: восстанавливать из бэкапа паблишера. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2020, 14:05 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Troglodit А как же указатель LSN? Был доклад авито в свое время, там это подробно расписывалось. Я проверял руками, восстанавливал подписчика с сохраненным ранее lsn, устанавливал указатель и разница прилетала с паблишера. А вот это интересно. Не могли бы вы скинуть ссылку на статью? И еще 1 момент: как мне узнать, что на какой-то момент времени все данные перенесены из публикатора в подписчик? Столбец last_msg_receipt_time из pg_stat_subscription? Что-то еще? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2020, 22:55 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Troglodit, спасибо за ссылку! И все же, есть какой-нибудь способ узнать, что с логической репликацией все в порядке, не считая количество строк в источнике и подписчике? Тем более что последнее не является достаточным условием "порядочности" репликации. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2020, 19:49 |
|
Репликация и отказоустойчивость
|
|||
---|---|---|---|
#18+
Как я уже сказал: нет способа проверить порядочность репликации кроме полного сравнения данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2020, 14:00 |
|
|
start [/forum/topic.php?fid=53&msg=39975919&tid=1994561]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 421ms |
0 / 0 |