К основному контенту

Настройка Streaming replication в Postgresql

1. Настроить ключи ssh для пользователя репликации
2. Настроить pg_hba.conf на master и slave
host  replication  all  192.168.0.1/32  trust
host  replication  all  192.168.0.2/32  trust
3. На master:
vi postgresql.conf
wal_level = hot_standby
max_wal_senders = 5
wal_keep_segments = 32
archive_mode    = on
   archive_command = 'cp %p /path_to/archive/%f'
4. Клонировать master на slave
psql -c "SELECT pg_start_backup('label', true)"
rsync -C -a --delete -e ssh --exclude postgresql.conf --exclude postmaster.pid \
--exclude postmaster.opts --exclude pg_log --exclude pg_xlog \
--exclude recovery.conf master_db_datadir/ slavedb_host:slave_db_datadir/
psql -c "SELECT pg_stop_backup()"
или
pg_basebackup -R -D /srv/pgsql/standby -h 192.168.0.1 -p 5432
5. На slave:
vi postgresql.conf
hot_standby = on

vi datadir/recovery.conf
standby_mode          = 'on'
primary_conninfo      = 'host=192.168.0.1 port=5432 user=postgres'
trigger_file = '/path_to/trigger' # не обязательно
restore_command = 'scp masterdb_host:/path_to/archive/%f "%p"'
6. Запустить slave

7. Мониторинг
SELECT pg_current_xlog_location()  #master
select pg_last_xlog_receive_location() #slave
select pg_last_xlog_replay_location() #slave

SELECT * from pg_stat_replication;
на slave:
SELECT * from pg_stat_database_conflicts;
[master] $ ps -ef | grep sender
[slave] $ ps -ef | grep receiver
8. Failover
on slave:
touch /path_to/trigger
        or
pg_ctl promote

9. Воссоздать Primary

Комментарии

Популярные сообщения из этого блога

Установка и настройка pgAgent(планировщика заданий PostgreSQL)

Установка pgAgent Последняя версия скрипта для установки агента  тут . Перенести инструкцию по агенту в отдельную тему. 1. Создать пользователя ОС, и сделать ему домашний каталог: useradd -s /bin/false -r -M pgagent mkdir /home/pgagent 2. Установить и настроить демон: yum install pgagent_94 При наличии ошибок вида (была на Oracle Linux 6.8) Error: Package: pgagent_94-3.4.0-1.rhel6.x86_64 (pgdg94)            Requires: libwx_baseu-2.8.so.0(WXU_2.8)(64bit) Нужно установить EPEL systemctl enable pgagent_94 chown pgagent:pgagent /var/log/pgagent_94.log 3. Установить схему агента в базе: sudo -u postgres psql -f /usr/share/pgagent_94-3.4.0/pgagent.sql postgres 4. Создать файл паролей для подключения агента к базе. vi /home/pgagent/.pgpass localhost:5432:*:postgres:postgres chown pgagent.pgagent /home/pgagent -R chmod 600 /home/pagent/.pgpass 5. Запустить и проверить работу агента systemctl start pgagent...

Включение логирования для Haproxy

Изначально логирование в syslog в HaProxy отключено. Ниже пример настройки логирования для ОС Centos 7. Настройка: Добавить строку  log 127.0.0.1 local2 в секцию global файла /etc/haproxy/haproxy.cfg Раскомментировать $ModLoad imudp и $UDPServerRun 514 в файле  /etc/rsyslog.conf Создать файл  /etc/rsyslog.d/haproxy.conf со следующим содержимым:  local2.* /var/log/haproxy.log Перезапустить rsyslog и haproxy.

Установка PL/Java для PostgreSQL 9.4

Предварительные требования:  1. Компилятор C. Как правило имеется в виду gcc и g++ gcc  --version на CENTOS 7 мне понадобился gcc_c++ (в дополнение к установленному ранее gcc) 2. JAVA. Убедиться, что  javac  -version работает  3. PostgreSQL установлен и  работает pg_config Файлы для разработки (.h файлы) для нашего PostgreSQL также должны быть установлены. Убедиться можно посмотрев что лежит в INCLUDEDIR-SERVER (вывод pg_config). Я раньше компилировал БД из исходников на этой машине, так что у меня эти файлы были. 4. компилятор Maven mvn --version Установка git clone https://github.com/tada/pljava.git или git clone ssh://git@github.com/tada/pljava.git Заходим в директорию pljava и выполняем mvn clean install В результате должны получить: [INFO] PostgreSQL PL/Java ................................ SUCCESS [INFO] PL/Java API ....................................... SUCCESS [INFO] PL/Java backend Java code...