FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 23 Aug 24 12:51:58, всего сообщений: 8555
= Сообщение: 3905 из 8555 ========================================= RU.LINUX = От : Den Grigoriev 2:5001/3.4 01 Mar 17 09:13:36 Кому : Anton Gorlov 01 Mar 17 09:13:36 Тема : postgresql нативная репликация FGHI : area://RU.LINUX?msgid=2:5001/3.4+58b63a5b На : area://RU.LINUX?msgid=2:5059/37@FidoNet+58b5821b = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.LINUX?msgid=2:5020/545+58b68e93 Ответ: area://RU.LINUX?msgid=2:5059/37@FidoNet+58b8713d ============================================================================== Привет, Anton! 28 фев 17 16:47, Anton Gorlov -> All: AG> Привет All! AG> Добрались наконец-то руки до нативной репликации postgresql (9.6). Hа мастере и на слейве желательно сделать: kernel.shmmax = 1000000000 kernel.shmall = 2097152 AG> Hастроил на мастере: AG> wal_level = replica AG> archive_mode = on AG> archive_command = 'cp %p /var/lib/postgresql/9.6/main/archive/%f' AG> max_wal_senders = 1 AG> wal_keep_segments = 64 wal_level = hot_standby archive_mode = on archive_command = 'scp %p 192.168.150.10:/var/lib/postgresql/archive/' max_wal_senders = 1 wal_keep_segments = 64 WAL-сегменты должны копироваться на слейва. Папочку '/var/lib/postgresql/archive' надо создать и принадлежать она должна пользователю postgres. (архивный каталог не должен быть вместе с базой данных) Соответственно не слейве надо поднять SSH (apt-get install openssh-server), сделать на мастере ключи SSH для пользователя postgres и задеплоить публичный ключ на слейв (приватный ключ должен быть без пароля): $ sudo -i # su -l postgres $ mkdir .ssh $ chown postgres.postgres .ssh $ chmod 700 .ssh $ ssh-keygen $ ssh-copy-id postgres@192.168.150.10 AG> В pg_hba.conf соотвественно AG> host replication postgres 192.168.150.10/32 trust AG> Где 192.168.150.10/32 - это слейв. Hехорошо делать репликацию от postgres. CREATE USER repl SUPERUSER; host replication repl 192.168.150.10/32 trust AG> Далее на слейве (сервис ращумеется остановлен) В postgresql.conf надо прописать: hot_standby = on effective_cache_size = 1GB track_functions = all AG> В /var/lib/postgresql/9.6/main/recovery.conf прописываю AG> standby_mode = 'on' AG> primary_conninfo = 'host=192.168.150.9 port=5432 user=postgres' AG> trigger_file = '/var/lib/postgresql/9.6/main/trigger' AG> restore_command = 'cp /var/lib/postgresql/9.6/main/archive/%f "%p"' standby_mode = 'on' primary_conninfo = 'host=192.168.150.9 port=5432 user=repl' restore_command = 'cp /var/lib/postgresql/archive/%f %p' archive_cleanup_command = '/usr/lib/postgresql/9.6/bin/pg_archivecleanup /var/lib/postgresql/archive %r' AG> После этого на мастере выполняю AG> psql -c "SELECT pg_start_backup('my_backup', true)" AG> копирую на слейв /var/lib/postgresql/9.6/main/ AG> Далее на мастере выполняю psql -c "SELECT pg_stop_backup()" AG> Запускаю слев. Они вроде как успешно синхронизируются, но в логе AG> слейва полно записей типа AG> cp: не удалось выполнить stat для AG> '/var/lib/postgresql/9.6/main/archive/00000001000000000000000E': Hет AG> такого файла или каталога AG> При копировании с мастера на слейв в archive был только AG> 00000001000000000000000D AG> 00000001000000000000000E есть только в AG> main/pg_xlog AG> Вопрос что пропустил? Делалось согласно тфм AG> https://wiki.postgresql.org/wiki/Streaming_Replication AG> С уважением. Anton aka Stalker AG> Linux Registered User #386476 AG> [#*TEAM:*# ] [#_Злой СисОп_# ] [*Heavy Metal!*] [*_Усачи_* ] AG> --- GoldED+/LNX 1.1.5-b20160322 AG> * Origin: Sin rulez!!! Arcctg Must Die!!! (2:5059/37) С наилучшими пожеланиями, Den. --- ------------------------------- * Origin: Весна покажет кто где срал... (2:5001/3.4)
К главной странице гейта