PostgreSQL Replication (2) 設定

こんにちは。
グローバルソリューション事業部の後野です。

PostgreSQL 概要に続き設定編です。 postgreSQL replication 環境を以下の様な形で作成していきます。

pgsql-image

 

 

 

 

 

 

 

 

 

クライアント部分は、install 方法の違いのみなので省略します。

準備

postgreSQL インストール前に必要な事をここで

 

インストール

configureオプションは特に指定しておりません。

 

master & slave

 

master

 

データ投入

データは何を入れましょうかね、こうゆうテストの目的と直接影響無い部分、悩みますよね~

  1. 乱数を適当に入れる
  2. 公開されている CSVデータ

上記2つで悩んだところ、無難に郵便番号にしました。

安心と信頼の千葉県のデータを入れましょう。

master

 

レプリケーション設定

読んでるとすぐだと思いますけど、やっとここまで来ました。ここからがメインですね

master

 

※slave 側でREAD処理等はしない想定なので hot_standby は default の off
※wal_keep_segments は本番適用する場合は、無いと不安なので変更したいと思います。
10 あれば安心かな~ 取りすぎかな~~~と少し悩むが初志貫徹10で!(きっと意味違う)

 

master

 

 slave

pg_basebackup 結果:pg_basebackup: directory “/usr/local/pgsql/data” exists but is not empty
ディレクトリあるとダメでした。。。上記手順では master のみ initdb してますが、手順をまとめる前に
slave も実はinitdb しちゃいました。

 

ディレクトリ削除し、再試行して OK!
すごいーーちゃんと recovery.conf  も出来てる!!
conf の内容も問題なさそうだし、変更せずに行きましょう。
そして pg_hba.conf postgresql.conf もある。
※dataディレクトリのパーミッションが 755に なってたので、700へ変更しておきましょう、
下側の手順へは盛り込み済み。

 

master

slave 起動させたので、ちゃんと同期していることを確認しましょうね

何故か同期にならない、どこか間違えていることは間違いないけど、どこだろ。。。

hot_standby = on を入れてみる、postgresql を再起動

 

変わらない
だよね そのパラメータ関係なさそうですよねー
なので、元へ戻す

 

application_name が walreciver これはおかしいと思う。きっと、
これはどこを参照しているのか hosts 等を修正し hostname コマンドで ホスト部のみ表示する状態へ

旧 hostname : pgrs.clara.local
新 hostname : pgrs

結果変わらず。

そして先程、自信満々にスルーした recovery.conf を見てみる。
自動生成されたファイルに application_name なる記述は無い。

やっぱり思い過ごしかなーと、、、でももう少し確認しようと確認してると、
やはり recovery.conf の primary_conninfo で指定する部分だった。

勇気と自信を持って slave を restart し master の pg_stat_replication を確認

 

同期してるーーーーう

嬉しさよりも安堵感、こうゆうつまらない設定ミスでもこのホットする瞬間、いいですよね

 

 

余談ですが、 hostname で出力されるのは
ホスト部だけか、FQDN で出したいか、
どちらがみなさん好きでしょう?

あまり気にされない部分だけに気になったりします。
ちなみに私は前者のホスト部だけ表示派です。( 理由は pacemaker の時とか config 等すっきりするので )

 

では今回はここまでで、次回は切替時の動作、master を slave として組み込む本復旧等の手順を試します。

 

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer