...
| Блок кода |
|---|
|
SELECT * FROM bdr.bdr_nodes;
SELECT * FROM bdr.bdr_connections; |
Менять адреса проще всего через приложение dbeaver (подключаться к базе можно по ssh). Если нет возможности через dbeaver, то можно через консоль. Задача поменять адрес мастера на 192.168.0.81 и адрес слейва на 192.168.0.91.
bdr.bdr_nodes:
| Блок кода |
|---|
|
UPDATE bdr.bdr_nodes SET node_local_dsn = 'host=192.168.0.81 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1'WHERE node_name = 'master_store_node_0842'; |
...
UPDATE bdr.bdr_nodes SET node_local_dsn = 'host=192.168.0.91 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1',node_init_from_dsn = 'host=192.168.0.81 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1'WHERE node_name = 'slave_store_node_4942'; |
значения node_name берутся из предыдущей команды - SELECT * FROM bdr.bdr_nodes;
bdr.bdr_connections:
| Блок кода |
|---|
|
UPDATE bdr.bdr_connections SET conn_dsn = 'host=192.168.0.81 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1'WHERE conn_sysid = '7678612370581352472'; |
...
UPDATE bdr.bdr_connections SET conn_dsn = 'host=192.168.0.91 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1'WHERE conn_sysid = '7678612607411490840'; |
значения conn_sysid берутся из предыдущей команды - SELECT * FROM bdr.bdr_connections;
проверить, что репликация в порядке:
| Блок кода |
|---|
|
SELECT * FROM bdr.pg_replication_slots; - active должно быть t (true) |
...
SELECT pg_xlog_location_diff(pg_current_xlog_location(), 'здесь_добавьте_значение_из_колонки_restart_lsn_из_предыдущей_команды') AS lag_bytes; - должно быть меньше килобайта |
...
SELECT * FROM bdr.pg_stat_bdr; - колонки с "conflict" должны иметь значения 0. |
...
SELECT node_name, node_status FROM bdr.bdr_nodes; - должно быть r r (ready ready) |
После этого рекомендовано перезапустить контейнер ecss-postgres-bdr-ssw-postgres-container-1, но при тестировании у меня репликация работала и без перезапуска контейнерапосмотреть запущенные контейнеры:
Остановить:
| Блок кода |
|---|
|
sudo docker stop ecss-postgres-bdr-ssw-postgres-container-1 |
Запустить:
| Блок кода |
|---|
|
sudo docker start ecss-postgres-bdr-ssw-postgres-container-1 |
Проверить, что поднялся:
Описанные в статье действия необходимо выполнить на обоих хостах.