LoginSignup
2
2

More than 5 years have passed since last update.

PostgreSQL9.1でレプリケーション設定

Posted at

PostgreSQLで同期レプリケーションの設定をしたのでメモ。

【環境】
※マスター + スレーブ×1

マスター
OS:CentOS 6.2
PostgreSQL:9.1.4

スレーブ
OS:CentOS 6.2
PostgreSQL:9.1.4

【参考サイト】
PostgreSQL 9.1 - 同期レプリケーション

ストリーミング・レプリケーションの構築

※マスター側は通常運用できる設定が済んでいるものとします。

マスター側

postgre.conf

wal_level = hot_standby
max_wal_senders = 2 #レプリケーション中に再度ベースバックアップをしたい場合の保険にスレーブ数+1に設定
synchronous_standby_names = 'slave1' #今回はスレーブ側でスレーブ名をslave1に設定

pg_hba.conf

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD
host    replication     接続ユーザー     スレーブサーバーのIP      trust  #この設定を追加

マスター再起動

master$ service postgresql-9.1 restart

スレーブ側

マスタ側のベーズバックアップをコピー

slave1$ pg_basebackup -h [マスターサーバーIP] -p [ポート] -D /var/lib/pgsql/9.1/data --xlog --progress --verbose

スレーブの/var/lib/pgsql/9.1/data以下にマスタのベースバックアップをコピーする。
この時、dataディレクトリが存在するとうまくいかない。

recovery.conf

/usr/pgsql-9.1/share/recovery.conf.sampleをdataディレクトリにコピーして利用する。

standby_mode = on
primary_conninfo = 'host=master port=5432 application_name=slave1' # スレーブ名をapplication_nameに設定

スレーブ再起動

slave$ service postgresql-9.1 restart

マスタ側で動作確認

master$ psql dbname

dbname=# SELECT application_name,state,sync_priority,sync_state FROM pg_stat_replication;
application_name | state | sync_priority | sync_state
------------------+-----------+---------------+------------
slave1 | streaming | 1 | sync
(1 row)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2