postgresql
PostgreSQLの高可用性
サーチ…
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の下で公開されました。