サーチ…


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ファイルを編集する

      これはホストベースの認証ファイルで、クライアントのauthernticationの設定が含まれています。以下のエントリを追加:

            #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

      このパラメータにより、 archive_commandパラメータを使用してWALセグメントをアーカイブ場所に送信できます。

      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アドレスに置き換えてください。レプリケーションという名前のユーザーのパスワードで置き換えます

      `primary_conninfo = 'host = port = 5432 user =複製パスワード='

      (オプション)トリガーファイルの場所を設定します。

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

      指定するtrigger_fileパスは、システムをスタンバイ・サーバーにフェールオーバーするときにファイルを追加できる場所です。ファイルが存在すると、フェールオーバーがトリガーされます。または、pg_ctl promoteコマンドを使用してフェールオーバーをトリガすることもできます。

  • スタンバイサーバーを起動する

    これで、すべての準備が整い、スタンバイサーバーを起動する準備が整いました

アトリビューション

この記事は実質的にPostgreSQLを高可用性とホットスタンバイ複製するための設定方法と 、フォーマットとサンプルの一部の変更、および一部のテキストの削除によるものです。ソースは、ここで維持されているCreative Commons Public License 3.0の下で公開されました。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow