Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Репликация и отказоустойчивость / 15 сообщений из 15, страница 1 из 1
25.06.2020, 15:20
    #39973192
Шамиль Фаридович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Настроена логическая репликация данных из базы db_src в базу db_trg и резервное копирование этих баз.
1. Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа,
а) восстановится ли при этом публикация? или нужно, например, дополнительно восстановить базу "Postgres"
б) подхватит ли ее подписчик автоматически, или нужно будет сделать ее REFRESH|пересоздание?

2. Если выйдет из строя сервер-подписчик, то после рестора db_trg
а) восстановится ли подписка? или нужно, например, дополнительно восстановить базу "Postgres"
б) подхватит ли эта подписка автоматически публикацию, или нужно будет сделать ее REFRESH|пересоздание?

Общий вопрос для обоих кейсов:
3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg?

А вообще если эти вопросы где-то подробно расписаны, буду оч благодарен за ссылку.
...
Рейтинг: 0 / 0
25.06.2020, 15:43
    #39973210
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Шамиль Фаридович
Настроена логическая репликация данных из базы db_src в базу db_trg и резервное копирование этих баз.
1. Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа,
а) восстановится ли при этом публикация? или нужно, например, дополнительно восстановить базу "Postgres"
б) подхватит ли ее подписчик автоматически, или нужно будет сделать ее REFRESH|пересоздание?

2. Если выйдет из строя сервер-подписчик, то после рестора db_trg
а) восстановится ли подписка? или нужно, например, дополнительно восстановить базу "Postgres"
б) подхватит ли эта подписка автоматически публикацию, или нужно будет сделать ее REFRESH|пересоздание?

Общий вопрос для обоих кейсов:
3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg?

А вообще если эти вопросы где-то подробно расписаны, буду оч благодарен за ссылку.

(Имхо) логическая репликация - это вообще не про отказоустойчивость.
...
Рейтинг: 0 / 0
26.06.2020, 03:51
    #39973398
Шамиль Фаридович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
mefman,

решение окончательное, возврату и обмену не подлежит?)

3ий вопрос меня интересует больше всего.
Если умер публикатор, то восстановив базу db_src из бэкапа, точно можно пересоздать подписку с
Код: plsql
1.
WITH (copy_data = false)



Что делать, если умер подписчик?
...
Рейтинг: 0 / 0
26.06.2020, 09:56
    #39973443
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Шамиль Фаридович
mefman,

решение окончательное, возврату и обмену не подлежит?)

3ий вопрос меня интересует больше всего.
Если умер публикатор, то восстановив базу db_src из бэкапа, точно можно пересоздать подписку с
Код: plsql
1.
WITH (copy_data = false)



Что делать, если умер подписчик?


можно то оно можно но согласованности данных - никто вам гарантировать не будет.
Т.е. никаких механизмов сверки там нет (и что никаких изменений не было потеряно между backup и restore на подписчике - тоже).

Фактически все это ответ на ваш 3тий вопрос:
3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg?
Это невозможно ни в случае восстановления из backup src ни в случае восстановления из backup trg... всегда полная переналивка (можно еще руками конечно через fdw сделать diff и синхронизировать руками же а потом уже делать подписку но по ресурсам - это дороже чем переналить все с нуля).

Т.е. то что вы хотите - невозможно в принципе.
...
Рейтинг: 0 / 0
26.06.2020, 10:44
    #39973473
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Шамиль Фаридович
mefman,

решение окончательное, возврату и обмену не подлежит?)

3ий вопрос меня интересует больше всего.
Если умер публикатор, то восстановив базу db_src из бэкапа, точно можно пересоздать подписку с
Код: plsql
1.
WITH (copy_data = false)



Что делать, если умер подписчик?

Окончательное. Вот и Максим подтвердил.
Логическая репликация это больше про ЕТЛ, но никак не про отказоустойчивость и сохранность данных.
...
Рейтинг: 0 / 0
26.06.2020, 14:21
    #39973568
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Шамиль Фаридович
Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа

Нельзя. Придётся объявлять db_trg новым мастером, переключать на него всю работу и настраивать нового подписчика.
...
Рейтинг: 0 / 0
26.06.2020, 14:31
    #39973574
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Dimitry Sibiryakov
Шамиль Фаридович
Если выйдет из строя сервер с публикацией, то можно восстановить db_src из бэкапа

Нельзя. Придётся объявлять db_trg новым мастером, переключать на него всю работу и настраивать нового подписчика.

Ну почему же? Теоретически можно. Но через одно место.
А с потоковой репликацией можно "одной" кнопкой)
Я другому удивляюсь:
Откуда эти извращенцы, желающие чесать правое ухо левой пяткой, берутся? Один чудесатее другого...
Есть простые 1000 раз описанные методы.
Нет. Надо придумать 1001. С блэкджеком и шлюхами.
...
Рейтинг: 0 / 0
26.06.2020, 15:27
    #39973585
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
mefman
Dimitry Sibiryakov
пропущено...

Нельзя. Придётся объявлять db_trg новым мастером, переключать на него всю работу и настраивать нового подписчика.

Ну почему же? Теоретически можно. Но через одно место.
А с потоковой репликацией можно "одной" кнопкой)
Я другому удивляюсь:
Откуда эти извращенцы, желающие чесать правое ухо левой пяткой, берутся? Один чудесатее другого...
Есть простые 1000 раз описанные методы.
Нет. Надо придумать 1001. С блэкджеком и шлюхами.


Как я понимаю - молодое поколение.
Чтобы понять что "чесать правое ухо левой пяткой" неудобно - надо пару раз попробовать так сделать а еще лучше получить подобную систему в production в наследство годика на 2-3-4 чтобы всю боль прочуствовать.
...
Рейтинг: 0 / 0
03.07.2020, 07:07
    #39975763
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Maxim Boguk

можно то оно можно но согласованности данных - никто вам гарантировать не будет.
Т.е. никаких механизмов сверки там нет (и что никаких изменений не было потеряно между backup и restore на подписчике - тоже).

Фактически все это ответ на ваш 3тий вопрос:
3. Что нужно сделать, чтобы не пришлось заново переливать все данные из db_src в db_trg?
Это невозможно ни в случае восстановления из backup src ни в случае восстановления из backup trg... всегда полная переналивка (можно еще руками конечно через fdw сделать diff и синхронизировать руками же а потом уже делать подписку но по ресурсам - это дороже чем переналить все с нуля).

Т.е. то что вы хотите - невозможно в принципе.

А как же указатель LSN?
Был доклад авито в свое время, там это подробно расписывалось.
Я проверял руками, восстанавливал подписчика с сохраненным ранее lsn, устанавливал указатель и разница прилетала с паблишера.
...
Рейтинг: 0 / 0
03.07.2020, 14:05
    #39975919
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
А ТС хочет наоборот: восстанавливать из бэкапа паблишера.
...
Рейтинг: 0 / 0
09.07.2020, 22:55
    #39977927
Шамиль Фаридович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Troglodit

А как же указатель LSN?
Был доклад авито в свое время, там это подробно расписывалось.
Я проверял руками, восстанавливал подписчика с сохраненным ранее lsn, устанавливал указатель и разница прилетала с паблишера.

А вот это интересно. Не могли бы вы скинуть ссылку на статью?

И еще 1 момент: как мне узнать, что на какой-то момент времени все данные перенесены из публикатора в подписчик?
Столбец last_msg_receipt_time из pg_stat_subscription? Что-то еще?
...
Рейтинг: 0 / 0
12.07.2020, 10:13
    #39978562
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Шамиль Фаридович,

ссылка
...
Рейтинг: 0 / 0
15.07.2020, 19:49
    #39980123
Шамиль Фаридович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Troglodit,
спасибо за ссылку!

И все же, есть какой-нибудь способ узнать, что с логической репликацией все в порядке,
не считая количество строк в источнике и подписчике?
Тем более что последнее не является достаточным условием "порядочности" репликации.
...
Рейтинг: 0 / 0
16.07.2020, 14:00
    #39980458
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Как я уже сказал: нет способа проверить порядочность репликации кроме полного сравнения данных.
...
Рейтинг: 0 / 0
25.07.2020, 21:03
    #39983958
Troglodit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Репликация и отказоустойчивость
Шамиль Фаридович,

если я не ошибаюсь,с pg_replication_origin_status,pg_replication_slots
можно что-то придумать.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Репликация и отказоустойчивость / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]