Хелперы для логической репликации между Postgres 9/10/11/12/Amazon RDS
Предполгаем что базы данных не меняют свои имена, а только переезжают с хоста на хост, из инстанса pg в другой инстанс.
Обозначения:
src - источник, откуда производится репликацияdest - приемник, куда происзводится репликацияПараметры:
--src-databases - список баз для репликации через запятую--src-host - хост источника--src-port - порт источника--src-user - юзер источника, должен уметь читать все базы и CREATE PUBLICATION--src-password - пароль пользователя--dest-host - хост приемника--dest-port - порт приемника--dest-user - юзер приемника, должен уметь DROP DATABASE, CREATE DATABASE, CREATE SUBSCRIPTION, UPDATE SEQUENCE и тд--dest-password - пароль пользователяВсе параметры одинаковы для всех команд
Удаляет все базы на приемнике, указанные в --src-databases.
С каждой базы источника снимается дамп схемы, затем по ней разворачивается пустая база на приемнике с таким же именем и схемой.
docker run --rm -it a00s/pg_replicator resync \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
В каждой базе источника создаются публикация. В каждой базе приемника создаются подписки.
max_replication_slots на источнике должно быть больше или равно количеству баз, указанных в --src-databases!
docker run --rm -it a00s/pg_replicator start \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
Отражает состояние всех подписок на приемнике.
Так же показывает размер баз на источнике и приемнике.
Можно запустить под watch.
docker run --rm -it a00s/pg_replicator status \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
На приемнике удаляются все подписки. На источнике удаляются все публикации.
docker run --rm -it a00s/pg_replicator stop \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
Переносит значения всех sequences из источника в приемник.
docker run --rm -it a00s/pg_replicator sequences \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
Запускает репликацию между Postgres 9.5+ и Postgres 10+.
docker run --rm -it a00s/pg_replicator start9 \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
Останавливает репликацию между Postgres 9.5+ и Postgres 10+.
docker run --rm -it a00s/pg_replicator stop9 \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
Переносит значения всех sequences из источника в приемник.
docker run --rm -it a00s/pg_replicator sequences9 \
--src-host 192.168.1.10 --src-port 5432 --src-user superuser --src-password superuser \
--dest-host 192.168.1.11 --dest-port 5432 --dest-user superuser --dest-password superuser \
--src-databases db1,db2
Content type
Image
Digest
Size
333.3 MB
Last updated
over 5 years ago
docker pull a00s/pg_replicator