自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2012年10月10日水曜日

PostgreSql 9.1.xレプリケーション(Ubuntu)

Ubuntu 12.04.1 LTSでPostgreSQL 9.1.xレプリケーションクラスタを作成する

準備
PostgreSQLインストール
sudo apt-get install postgresql
sudo apt-get update
sudo apt-get upgrade

作成手順
■Master
sudo nano -wci /etc/postgresql/9.1/main/postgresql.conf
...
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 2 #実際のスレーブサーバー数+1
# アーカイブ使用時
#archive_mode = on
#archive_command = '...'
# アーカイブ不使用時
archive_mode = off
wal_keep_segments = 32 # 8-32 が目安
...

sudo su postgres
psql -h localhost -U postgres -W -c "CREATE USER ruser WITH REPLICATION PASSWORD 'password';"
exit

sudo nano -wci /etc/postgresql/9.1/main/pg_hba.conf
...
host all all 192.168.1.0/24 trust
#スレーブサーバーIP指定
host replication ruser 192.168.1.2/32 md5
...

#データファイルをスレーブサーバーにコピーするため、サービスを停止する
sudo service postgresql stop

■Slave
sudo nano -wci /etc/postgresql/9.1/main/postgresql.conf
...
listen_addresses = '*'
hot_standby = on
...

#MasterデータファイルをSlaveサーバーにコピーするため、サービスを停止する
sudo service postgresql stop

sudo su postgres
cd /var/lib/postgresql/9.1/main/
rm -rf *
nano -wci recovery.conf
...
#MasterサーバーIPとレプリケーションUID、PWDを指定
primary_conninfo = 'host=192.168.1.1 port=5432 user=ruser password=password'
standby_mode = 'on'
...

□Masterサーバーに切替
sudo su postgres
#MasterデータファイルをSlaveに同期する
rsync -av /var/lib/postgresql/9.1/main/* 192.168.1.2:/var/lib/postgresql/9.1/main/
exit
sudo service postgresql start

□Slaveサーバーに切替
sudo service postgresql start

0 件のコメント:

コメントを投稿

ホームページ