[Linux-ha-jp] PostgreSQL 9.1 同期レプリケーション対応RA作ってみました

Back to archive index

Yoshiharu Mori y-mor****@sraos*****
2011年 10月 12日 (水) 14:19:02 JST


松尾さん

盛です。

> しかし、個人的な感覚ではやはり rsync コマンドなのでデータ全体をバックアップする
> 人も結構いらっしゃる気がしますので(私もやってます・・)、やはり pg_xlog が空かどうかで判断するのは
> あまり嬉しくない実装かなと思います。

たしかに、xlogでの確認はちょっとどうかなーという感じがしますね。
force_start_fileを逆に利用するのはいかがでしょうか?

-初回はforce_start_fileが存在しないので必ず立ち上げを試みる
-起動後にforce_start_fileを作成しforce_start_fileを残しておく
-force_start_fileがある限り、pg_controldataの値が正常でないと起動しない
-force_start_fileを削除すると常に立ち上げを試みる

ファイル名と逆の関係で(説明も)紛らわしいですが。。

以上です。

> 盛さん
> 松尾です。
> 
> > pg_basebackup でとったデータはpg_xlogは空かもしれませんが、
> > 今回のRAを使う場合、xlog は何らかの形で共有している可能性が高いので、
> > 結局起動時は空ではない可能性が高いのではないでしょうか。
> 
> 失礼いたしました。
> PrimaryとHot Standbyで共有しているのは、pg_xlogではなく、アーカイブでしたね。
> 
> しかし、個人的な感覚ではやはり rsync コマンドなのでデータ全体をバックアップする
> 人も結構いらっしゃる気がしますので(私もやってます・・)、やはり pg_xlog が空かどうかで判断するのは
> あまり嬉しくない実装かなと思います。
> 
> 以上です。
> 
> 
> 2011年10月12日13:53 Takatoshi MATSUO <matsu****@gmail*****>:
> > 盛さん
> > 松尾です
> >
> > 2011年10月10日17:36 Yoshiharu Mori <y-mor****@sraos*****>:
> >> 松尾さん
> >>
> >> 盛です。
> >>
> >> すごーくレスが遅くなりました。申し訳ありません。
> >
> > いえいえ。
> > コメント頂けるだけでも助かります。
> >
> >>> 新しいパラメータ (force_start_file) を追加しています。
> >>
> >> こちらに関してコメントです。
> >>
> >> 構築時には、ベースバックアップ取得してスタンバイサーバに
> >> 転送することになります。
> >> そのときスタンバイサーバのpg_controldataで取得するデータ状態は
> >> in productionとなります。(primaryのデータ状態がそのままコピーされるため)
> >>
> >> 手動にてスタンバイの起動確認をしない、かつ、force_start_fileを作成せず
> >> にpacemakerからPostgreSQLの設定を行って起動すると、新パラメータの機能で、
> >> 必ずスタンバイの起動に失敗してしまうことになってしまいますよね?
> >
> > そうですね。
> >
> >> ここでハマってしまう人が多いような気がします。。
> >
> > 本家コミュニティなら、ログ見ろって言われそうですが・・・
> >
> >> なにかベースバックアップからの初回起動と障害後の起動で区別が
> >> つけばよいはずですが。
> >>
> >> たとえば、
> >> 初期構築時にベースバックアップを取得する際には、
> >> pg_basebackupコマンドを使う方が多いと思います。
> >> pg_basebackupでベースバックアップを取得するときにデフォルトだと
> >> pg_xlogは空となります。
> >> そこでpg_xlogが空の場合には、in productionであっても無視して
> >> 起動してみるのはいかがでしょうか?
> >
> > pg_basebackup でとったデータはpg_xlogは空かもしれませんが、
> > 今回のRAを使う場合、xlog は何らかの形で共有している可能性が高いので、
> > 結局起動時は空ではない可能性が高いのではないでしょうか。
> >
> > もしユーザがハマらないようにしたいというのが目的なら、
> > pgsql-status の属性を STOP:invalid のような表示にしてあげてもよいかなと
> > 思います。
> >
> > さらに、STOP:invalid になったら、特別なリソースを起動し、その中でrsync でデータ再同期を始め、
> > 同期完了後にフェイルカウントクリアするという設計も面白いかもしれません。
> > ※お互い壊れたデータをrsyncすると悲惨なことになるのでここまでフルオート化するのは結構恐いですが・・・
> >
> _______________________________________________
> Linux-ha-japan mailing list
> Linux****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan


-- 
Yoshiharu Mori <y-mor****@sraos*****>
SRA OSS, Inc Japan http://www.sraoss.co.jp
TEL: 03-5979-2701 
FAX: 03-5979-2702





Linux-ha-japan メーリングリストの案内
Back to archive index