[pgsql-jp: 41330] Re: ストリーミングレプリケーションのフェイルバック方法

Fujii Masao masao.fujii @ gmail.com
2013年 1月 18日 (金) 01:29:02 JST


2013/1/17 Ooura, Nobuhito <ooura.nobuhito @ jp.fujitsu.com>:
> 初めまして。
> 大浦と申します。
>
> 三谷さんの例では synchronous_commit = local なので、
> 藤井さんご説明の(2)の時点でクライアントはコミット完了(成功)を
> 認識すると思います。(非同期になっている)
>
> その場合、B をベースに 新しいA をセットアップする前に、
> 元の A から何らかの方法で WAL を吸出し、B へリカバリしておく
> 必要がありませんでしょうか。

非同期レプリケーションだけど、COMMIT済のデータが失われるのを
回避したいということであれば、そういった対処が必要になると思います。
WALをAから吸い出してBにマージするような方法は非常に難しいので、
AでPostgreSQLを起動し、Bとの差分をSQL的に抽出し、それをBで
挿入・更新・削除するのがよいでしょうか。

対処方法は非常に面倒なものになってしまうので、COMMIT済のデータが
失われるのを回避したい場合は、素直に同期レプリケーションを使うのが
よいと思います。

以上、よろしくお願いいたします。

-- 
Fujii Masao


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