PostgreSQL replication
Ведущая нода(Master):192.168.100.190
Ведомая нода(Slave): 192.168.100.191
Устанавливаем PostgreSQL сервер на ведущую ноду.
Install PostgreSQL on Master node.
# pkg ins postgresql96-server
Включаем автостарт.
Enable autostart.
# sysrc postgresql_enable="YES"
Создаем лог файл и даем права на него пользователю postgres.
Create logfile.
# touch /var/log/postgresql.log
# chmod a-r,u+r /var/log/postgresql.log
# chown postgres:postgres /var/log/postgresql.log
Инициализируем базу данных.
Initialize database.
# service postgresql initdb
Делаем начальную настройку PostgreSQL и влкючаем репликацию.
И меняем или добавляем в нем следующие параметры.
Configure PostgreSQL and enable replication.
Add or change next parameters.
# vi /var/db/postgres/data96/postgresql.conf
listen_address = '*'
#log_destination = 'syslog'
logging_collector = on
log_directory = '/var/log'
log_filename = 'postgresql.log'
log_rotation_size = 100MB
client_min_messages = notice
log_min_messages = warning
log_min_error_statement = error
log_checkpoints = on
log_connections = on
log_disconnections = on
log_hostname = on
log_line_prefix = '%t'
# Репликация\Replication
wal_level = replica
wal_log_hints = on # Нужно для утилиты pg_rewind\Need for pg_rewind utility
max_wal_senders = 3 # 1 sender = 1 реплика + pg_basebackup
wal_keep_segments = 64
hot_standby = on # Эта опция будет потом активна на ведомом сервере\This option will be activated on Slave node
Настраиваем аутентификацию.
Configure authentication.
# vi /var/db/postgres/data96/pg_hba.conf
host replication postgres 192.168.100.0/24 trust
host all all 192.168.100.0/24 trust
Стартуем сервер.
Start server.
# service postgresql start
Переходим на ведомую ноду и устанавливаем там сервер PostgreSQL.
Go to Slave node and install PostgreSQL server on it.
# pkg ins postgresql96-server
Включаем автостарт.
Enable autostart.
# sysrc postgresql_enable="YES"
Подключаемся под пользователем postgres и скачиваем базовый бекап с ведущей ноды с помощью pg_basebackup.
Connect under postgres user and get basebackup from Master node with pg_basebackup utility.
# su - postgres
# pg_basebackup -P -R -X stream -c fast -h 192.168.190 -U postgres -D /var/db/postgres/data96
# exit
Создаем лог файл, тк он указан у нас в конифге и без него ведомая нода не запустится.
Create log file.
# touch /var/log/postgresql.log
# chmod a-r,u+r /var/log/postgresql.log
# chown postgres:postgres /var/log/postgresql.log
Стартуем PostgreSQL сервер.
Start PostgreSQL server.
# service postgresql start
Проверяем репликацию на ведущем сервере.
Check replication on Master server.
# ps aux | grep sender
или через SQL запрос
or with SQL query
postgres# select * from pg_stat_replication;
На ведомом.
On Slave server.
# ps aux | grep receiver