Предполагается, что мастер Postgresql уже настроен и работает.
Настройки мастера Postgresql :
файл postgresql.conf
wal_level = hot_standby
checkpoint_segments = 32
max_wal_senders = 3
wal_keep_segments = 32
файл pg_hba.conf
host replication replication xx.xx.xx.xx/32 trust
где хх.хх.хх.хх - IP адрес слейва
Слейв и мастер должны иметь одинаковую версию Postgresql.
На слейве устанавливаем Postgres, но не делаем инициализацию кластера, то есть, НЕ делаем initdb. Просто собираем и устанавливаем. Единственное, что создаем папку data где будет лежать собственно база и ставим на нее владельца postgres.
На слейве выполняем следующую команду:
sudo -u postgres /usr/local/pgsql/bin/pg_basebackup -h yy.yy.yy.yy -p 5432 -D
/usr/local/pgsql/data -U replication -v -X s -P
где yy.yy.yy.yy - IP адрес мастера.
Начнется копирование базы с мастера на слейв, это копирование целиком всего кластера с мастера один к одному на слейв. Мастер тем временем будет работать в штатном режиме, останавливать, отключать всех от него или делать с ним что то еще НЕ нужно.
Как только копирование завершится, на слейве нужно поправить пару конфигов.
Настройки слейва Postgresql:
файл postgresql.conf
hot_standby = on
файл recovery.conf(в той же папке надо создать)
standby_mode = 'on'
primary_conninfo = 'host=yy.yy.yy.yy port=5432 user=replication password=superpass'
trigger_file = '/tmp/postgresql.trigger'
Настройки мастера Postgresql :
файл postgresql.conf
wal_level = hot_standby
checkpoint_segments = 32
max_wal_senders = 3
wal_keep_segments = 32
файл pg_hba.conf
host replication replication xx.xx.xx.xx/32 trust
где хх.хх.хх.хх - IP адрес слейва
Слейв и мастер должны иметь одинаковую версию Postgresql.
На слейве устанавливаем Postgres, но не делаем инициализацию кластера, то есть, НЕ делаем initdb. Просто собираем и устанавливаем. Единственное, что создаем папку data где будет лежать собственно база и ставим на нее владельца postgres.
На слейве выполняем следующую команду:
sudo -u postgres /usr/local/pgsql/bin/pg_basebackup -h yy.yy.yy.yy -p 5432 -D
/usr/local/pgsql/data -U replication -v -X s -P
где yy.yy.yy.yy - IP адрес мастера.
Начнется копирование базы с мастера на слейв, это копирование целиком всего кластера с мастера один к одному на слейв. Мастер тем временем будет работать в штатном режиме, останавливать, отключать всех от него или делать с ним что то еще НЕ нужно.
Как только копирование завершится, на слейве нужно поправить пару конфигов.
Настройки слейва Postgresql:
файл postgresql.conf
hot_standby = on
файл recovery.conf(в той же папке надо создать)
standby_mode = 'on'
primary_conninfo = 'host=yy.yy.yy.yy port=5432 user=replication password=superpass'
trigger_file = '/tmp/postgresql.trigger'
где yy.yy.yy.yy - IP адрес мастера.
запустить Postgresql на слейве.
Проверить в процессах должны быть процессы репликации вроде такого
13638 ? Ss 1:03 postgres: startup process recovering 000000010000000D00000060
13639 ? Ss 1:55 postgres: wal receiver process streaming D/60ACB328
Комментариев нет:
Отправить комментарий