PostgreSQL 10 — Потоковая репликация с отработкой фейловера
Потоковая репликация в PostgreSQL и пример фейловера
Потоковая репликация в PostgreSQL 9.6
How to Set-Up Master-Slave Replication for PostgreSQL 9.6 on Ubuntu 16.04
Еще пара слов о потоковой репликации в postgres…
Отладка и устранение проблем в PostgreSQL Streaming Replication
Потоковая репликация в PostgreSQL 9.6
How to Set-Up Master-Slave Replication for PostgreSQL 9.6 on Ubuntu 16.04
Есть два сервера:
1. master ud1804 192.168.1.251/24
2. slave ud1804s 192.168.1.249/24
$ psql
postgres=# CREATE USER replica REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD 'pass';
$ sudo nano /etc/postgresql/10/main/pg_hba.conf
Добавим:
host replication replica 192.168.1.249/32 md5
Сохранить.
Мы указываем что репликация разрешена пользователю с именем replica, подключающемуся с адреса 192.168.1.249 с авторизацией по паролю
$ sudo nano /etc/postgresql/10/main/postgresql.conf
Добавить:
hot_standby = on
max_wal_senders = 10
wal_level = replica
wal_keep_segments = 32
# Для настройки архивного резервного копирования разкомментировать:
#archive_mode = on
#archive_command = 'pg_probackup-10 archive-push -B /backup --compress --instance main --wal-file-path %p --wal-file-name %f'
Сохранить.
$ sudo systemctl restart postgresql.service
$ sudo rm -R /var/lib/postgresql/10/main/
$ sudo su postgres
$ pg_basebackup -P -R -X stream -c fast -h 192.168.1.251 -U replica -D /var/lib/postgresql/10/main/
Пароль:
23693/23693 КБ (100%), табличное пространство 1/1
$ sudo systemctl start postgresql.service
$ sudo cat /var/lib/postgresql/10/main/recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=replica password=pass host=192.168.1.251 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any'
$ psql -l
$ psql -c "CREATE DATABASE example;"
$ pgbench -i -s 50 example
$ psql -U postgres -d example -c "select pg_size_pretty( pg_database_size('example'))"
Тоже увидим на slave
$ sudo su postgres
$ psql -l
$ psql -U postgres -d example -c "select pg_size_pretty( pg_database_size('example'))"
Другие фишки можно допилить
в соответствии с приведенными в начале статьи ссылками.
PostgreSQL 10 — Потоковая репликация с отработкой фейловера
Потоковая репликация в PostgreSQL и пример фейловера
Потоковая репликация в PostgreSQL 9.6
How to Set-Up Master-Slave Replication for PostgreSQL 9.6 on Ubuntu 16.04
Еще пара слов о потоковой репликации в postgres…
Отладка и устранение проблем в PostgreSQL Streaming Replication
Потоковая репликация в PostgreSQL 9.6
How to Set-Up Master-Slave Replication for PostgreSQL 9.6 on Ubuntu 16.04
Есть два сервера:
1. master ud1804 192.168.1.251/24
2. slave ud1804s 192.168.1.249/24
Настроим master
$ sudo su postgres$ psql
postgres=# CREATE USER replica REPLICATION LOGIN CONNECTION LIMIT 2 ENCRYPTED PASSWORD 'pass';
$ sudo nano /etc/postgresql/10/main/pg_hba.conf
Добавим:
host replication replica 192.168.1.249/32 md5
Сохранить.
Мы указываем что репликация разрешена пользователю с именем replica, подключающемуся с адреса 192.168.1.249 с авторизацией по паролю
$ sudo nano /etc/postgresql/10/main/postgresql.conf
Добавить:
hot_standby = on
max_wal_senders = 10
wal_level = replica
wal_keep_segments = 32
# Для настройки архивного резервного копирования разкомментировать:
#archive_mode = on
#archive_command = 'pg_probackup-10 archive-push -B /backup --compress --instance main --wal-file-path %p --wal-file-name %f'
Сохранить.
$ sudo systemctl restart postgresql.service
Настроим slave:
$ sudo systemctl stop postgresql.service$ sudo rm -R /var/lib/postgresql/10/main/
$ sudo su postgres
$ pg_basebackup -P -R -X stream -c fast -h 192.168.1.251 -U replica -D /var/lib/postgresql/10/main/
Пароль:
23693/23693 КБ (100%), табличное пространство 1/1
$ sudo systemctl start postgresql.service
$ sudo cat /var/lib/postgresql/10/main/recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=replica password=pass host=192.168.1.251 port=5432 sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any'
На master
$ sudo su postgres$ psql -l
$ psql -c "CREATE DATABASE example;"
$ pgbench -i -s 50 example
$ psql -U postgres -d example -c "select pg_size_pretty( pg_database_size('example'))"
Тоже увидим на slave
$ sudo su postgres
$ psql -l
$ psql -U postgres -d example -c "select pg_size_pretty( pg_database_size('example'))"
Другие фишки можно допилить
в соответствии с приведенными в начале статьи ссылками.
PostgreSQL 10 — Потоковая репликация с отработкой фейловера
Комментариев нет:
Отправить комментарий