pg_rewind не удалось синхронизировать вторую базу данных - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть кластер PostgreSQL со следующими базами данных с пользователем myuser:

  1. database1
  2. database2

Я настроил репликацию содин хозяин (192.168.50.8) и один раб (192.168.50.9).Я переключаюсь на ведомое устройство, и когда я пытаюсь вернуться к исходному мастеру, используя pg_rewind для каждой базы данных, pg_rewind завершается успешно для первой базы данных, но не для второй базы данных.

Для базы данных 1 выполняетсяработает следующая команда в (192.168.50.8):

/usr/pgsql-11/bin/pg_rewind -D "data_dir_path_here" --source-server="port=pg_port_here user=myuser dbname=database1 host=192.168.50.9"

Для базы данных2 при запуске следующей команды (192.168.50.8) выдается ошибка:

/usr/pgsql-11/bin/pg_rewind -D "data_dir_path_here" --source-server="port=pg_port_here user=myuser dbname=database2 host=192.168.50.9"

Ошибка:

target server must be shut down cleanly
failure, exiting

1 Ответ

1 голос
/ 27 апреля 2019

Вы используете pg_rewind со старым мастером (192.168.50.8), чтобы превратить его в раба.Если выключение не требуется, необходимо запустить восстановление после сбоя на PostgreSQL (просто запустите сервер и остановите его снова, как только восстановление будет выполнено).Затем вы можете запустить pg_rewind.

pg_rewind, воздействуя на весь кластер базы данных, поэтому вы не запускаете его для каждой базы данных.Вы запускаете его один раз на старом мастере, который должен стать новым ведомым.

Если вы используете опцию --source-server pg_rewind для подключения к новому мастеру, не имеет значения, какую базу данных вы используете.уточнить.Подойдет любая база данных, и эффект будет таким же.

...