Поиск…


Репликация в PostgreSQL

  • Настройка первичного сервера

    • Требования:

      • Пользователь репликации для операций репликации
      • Каталог для хранения архивов WAL
    • Создать пользователя репликации

      createuser -U postgres replication -P -c 5 --replication

        + option -P will prompt you for new password
        + option -c is for maximum connections. 5 connections are enough for replication
        + -replication will grant replication privileges to the user
      
    • Создание каталога архива в каталоге данных

      mkdir $PGDATA/archive

    • Отредактируйте файл pg_hba.conf

      Это файл проверки подлинности базы хоста, содержащий настройки для аутентификации клиента. Добавить запись ниже:

            #hosttype    database_name     user_name       hostname/IP      method
             host        replication       replication     <slave-IP>/32    md5
      
    • Отредактируйте файл postgresql.conf

      Это файл конфигурации PostgreSQL.

      wal_level = hot_standby

      Этот параметр определяет поведение подчиненного сервера.

         `hot_standby` logs what is required to accept read only queries on slave server.
      
         `streaming` logs what is required to just apply the WAL's on slave.
      
         `archive` which logs what is required for archiving.
      

      archive_mode=on

      Эти параметры позволяют отправлять сегменты WAL для архивирования местоположения с archive_command параметра archive_command .

      archive_command = 'test ! -f /path/to/archivedir/%f && cp %p /path/to/archivedir/%f'

      В основном, что делает archive_command , она копирует сегменты WAL для архивирования каталога.

      wal_senders = 5 Это максимальное количество процессов отправителя WAL.

      Теперь перезапустите основной сервер.

  • Резервное копирование первичного сервера на подчиненный сервер

    Перед внесением изменений на сервере остановите основной сервер.

Важно. Не запускайте службу еще раз, пока все шаги настройки и резервного копирования не будут завершены. Вы должны открыть резервный сервер в состоянии, когда оно будет готово к резервному серверу. Это означает, что все настройки конфигурации должны быть на месте, а базы данных должны быть уже синхронизированы. В противном случае потоковая репликация не запустится.

  • Теперь запустите утилиту pg_basebackup

    Утилита pg_basebackup копирует данные из каталога данных первичного сервера в подчиненный каталог данных.

    $ pg_basebackup -h <primary IP> -D /var/lib/postgresql/<version>/main -U replication -v -P --xlog-method=stream

    -D: This is tells pg_basebackup where to the initial backup

    -h: Specifies the system where to look for the primary server

    -xlog-method=stream: This will force the pg_basebackup to open another connection and stream enough xlog while backup is running.
                         It also ensures that fresh backup can be started without failing back to using an archive.
  • Настройка резервного сервера

    Чтобы настроить резервный сервер, вы отредактируете postgresql.conf и создайте новый файл конфигурации с именем recovery.conf.

    hot_standby = on

    Это указывает, разрешено ли вам запускать запросы при восстановлении

    • Создание файла recovery.conf

      standby_mode = on

      Установите строку подключения на основной сервер. Замените внешний IP-адрес основного сервера. Замените пароль для имени пользователя с именем replication

      `primary_conninfo = 'host = port = 5432 user = replication password ='

      (Необязательно) Задайте местоположение файла триггера:

      trigger_file = '/tmp/postgresql.trigger.5432'

      Указанный путь trigger_file файла - это место, где вы можете добавить файл, если вы хотите, чтобы система перешла на резервный сервер. Наличие файла «запускает» переход на другой ресурс. В качестве альтернативы вы можете использовать команду pg_ctl promotion, чтобы вызвать переход на другой ресурс.

  • Запуск резервного сервера

    Теперь у вас есть все на своем месте и готовы открыть резервный сервер

приписывание

Эта статья, по существу, получена и объясняется тем, как настроить PostgreSQL для высокой доступности и репликации в режиме «Горячий резерв» , с незначительными изменениями в форматировании и примерах, а также удалением некоторого текста. Источник был опубликован под лицензией Creative Commons Public 3.0 , которая поддерживается здесь.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow