https://github.com/a0s/pg_replicator
Вспомогательные скрипты для логической репликации между Postgres 9/10/11/12/Amazon RDS
https://github.com/a0s/pg_replicator
devops postgres rds replication
Last synced: about 1 month ago
JSON representation
Вспомогательные скрипты для логической репликации между Postgres 9/10/11/12/Amazon RDS
- Host: GitHub
- URL: https://github.com/a0s/pg_replicator
- Owner: a0s
- Created: 2021-01-26T20:01:10.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-29T14:26:43.000Z (over 5 years ago)
- Last Synced: 2025-01-06T02:12:12.132Z (over 1 year ago)
- Topics: devops, postgres, rds, replication
- Language: Ruby
- Homepage:
- Size: 14.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
pg_replicator
=============
Хелперы для логической репликации между 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` - пароль пользователя
Все параметры одинаковы для всех команд
### resync
**Удаляет** все базы на приемнике, указанные в `--src-databases`.
С каждой базы источника снимается дамп схемы, затем по ней разворачивается пустая база на приемнике с таким же именем и схемой.
```shell
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
```
### start
В каждой базе источника создаются публикация. В каждой базе приемника создаются подписки.
`max_replication_slots` на источнике должно быть больше или равно количеству баз, указанных в `--src-databases`!
```shell
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
```
### status
Отражает состояние всех подписок на приемнике.
Так же показывает размер баз на источнике и приемнике.
Можно запустить под `watch`.
```shell
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
```
### stop
На приемнике удаляются все подписки. На источнике удаляются все публикации.
```shell
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
Переносит значения всех sequences из источника в приемник.
```shell
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+
----------------------------------
### start9
Запускает репликацию между Postgres 9.5+ и Postgres 10+.
```shell
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
```
### stop9
Останавливает репликацию между Postgres 9.5+ и Postgres 10+.
```shell
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
```
### sequences9
Переносит значения всех sequences из источника в приемник.
```shell
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
```