[pgsql-jp: 41801] Re: Replication状態について

shige @ kobe.email.ne.jp shige @ kobe.email.ne.jp
2015年 7月 9日 (木) 20:53:17 JST


海藤さん

 こんばんは。

> 同期レプリケーションで動作中のスタンバイサーバがダウンした
> 場合を考慮すると非同期で動作している(2台目以降の)データ
> がマスターと一致しているかどうかが重要になってきます。
 synchronous_standby_namesにスタンバイサーバを列挙すると、1台目のsyncス
タンバイサーバがダウンした折には、2台目のpotentialサーバがsyncサーバにな
ります。potentialからsyncになった時点で完全に同期できていなくても、時間の
経過により同期することになります。

 どれだけのデータを溜め込んで、どれだけの頻度でデータが追加・更新するか
分からないのですが、通常の運用において、スタンバイサーバがマスタサーバの
更新に追いついてない状況が発生することは(運用の仕方により)ありえますし、
それは時間が解決する(サーバの負荷が下がり、同期する)ものだと思います。

 レプリケーションをする目的は何ですか?何が一番大事かを明確にすることが
必要だと思います。

 非同期でレプリケーションを行うのなら、マスタがダウンしたときに、スタン
バイが同期した状態にあることは期待できないと思います。

海藤 廣一 <kaidou.hirokazu @ jp.panasonic.com>さん:
> To:石橋様
> Cc:PostgreSQLメーリングリスト会員様
> 
> 海藤です。
> いつもお世話になっております。
> 早速のコメントありがとうございます。
> 
> スタンバイサーバを複数にした場合、コストアップになるので
> コストアップを避けたいというのが一番の理由ですが、
> 同期レプリケーションで動作中のスタンバイサーバがダウンした
> 場合を考慮すると非同期で動作している(2台目以降の)データ
> がマスターと一致しているかどうかが重要になってきます。
> 
> 現在考えている方法としては
> ①pg_stat_replicationビュー等で差分検出が確認できるなら、
>  自動ないし手動でBasebackupを取り直してデータを一致させる。
> ②pg_stat_replicationビュー等で差分がないはずの状態におい
>  ても1回/月(又は週)程度はテーブル内容をチェックして
>  もし差分が検出されたら(程度にもよりますが)Basebackupを
>  取り直してデータを一致させる。
> ③マスター又はスタンバイサーバのどちらかがダウンした際には
>  ASAP(現実的には1W以内位)でダウンしたサーバの復旧作業
>  にあたる。
> 
> 上記に致命的なところ、又はもっとこうした方が良いと言う
> アドバイスを頂けると助かります。
> 
> 以上です。
> 
> 
> On Wed, 08 Jul 2015 18:38:24 +0900
> 石橋 茂政 / ISHIBASHI,Shigemasa <shige @ kobe.email.ne.jp> wrote:
> 
> > 海藤さん、こんにちは。
> > 
> > 問題なく同期が取れていても、一時的にそこの値が違うことはありえると思
います。
> > 
> > スタンバイサーバを複数台準備して、synchronous_commit=onにして、
synchronous_standby_namesに複数台指定するという方法は取れないですか?
> > 
> > 海藤 廣一 <kaidou.hirokazu @ jp.panasonic.com>: 
> > 
> > >PostgreSQLメーリングリスト会員様
> > >
> > >海藤と申します。
> > >いつもお世話になっております。
> > >
> > >下記環境でStreamingReplicationにより二重化した
> > >データベースを構築しようとしております。
> > >
> > >[環境]
> > >OS:Debain7.8
> > >DB:PostgreSQL 9.1
> > >
> > >そこで、マスター側でpg_stat_replicationビューを
> > >確認することでreplication状態を確認できるのですが、
> > >このビューでマスターとスタンバイで差異が出ていないか
> > >確認することは出来るのでしょうか?
> > >
> > >例えば
> > >sent_location,write_location,flush_location,replay_location
> > >の値が全て同じ場合は差異が出ていないとか、
> > >
> > >スタンバイ側のサーバーに障害が出た場合に、マスター側が
> > >一時的にSQLの応答不能になるのを防ぐ目的で
> > >synchronous_commit = local
> > >で動作させることを想定している為、逆にスタンバイのデータが
> > >マスターと同じかどうかを確認する必要が出てしまっています。
> > >
> > >常時監視をしたいので簡単に確認できる方法がありましたら
> > >アドバイス願います。
> > >
> > >以上です。
> > >
> > >
> 
> 
> 
> ===================================================
>  パナソニック システムネットワークス株式会社
>  インフラシステム事業部
>  システムプロダクト部  プロダクト技術課
>  海藤 廣一
>  E-mail:kaidou.hirokazu @ jp.panasonic.com
>  TEL:050-3686-3682       内線:7-375-8945
> ===================================================


---
いしばし しげまさ


pgsql-jp メーリングリストの案内