[pgsql-jp: 41732] Re: 【質問】 スタンバイDBにリストア済みのアーカイブログのxidを知る方法
Tomoaki Sato
sato @ sraoss.co.jp
2014年 9月 22日 (月) 19:38:24 JST
佐藤です。
> 佐藤と申します。
>
> 初投稿ですので、失礼がありましたらご指摘ください。
>
> PostgreSQL 9.3 × Red Hat Linux 6 (64bit)を使用しています。
> レプリケーションのうち、ホットスタンバイとウォームスタンバイを使用しています。
> つまりストリーミングレプリケーションを使っていない状態です。
ログシッピング (アーカイブリカバリ) + ホットスタンバイですね。
> 現在スタンバイDBにはどのアーカイブログまで
> リストアできているのかを判断する方法を探しています。
プライマリサーバで pg_current_xlog_location 関数を実行すると、現在のト
ランザクションログの書き込み位置が分かります。
=# select pg_current_xlog_location();
pg_current_xlog_location
--------------------------
0/8CC51F0
(1 row)
スタンバイサーバで pg_last_xlog_replay_location 関数を実行すると、適用
された最後のトランザクションログの位置が分かります。
=# select pg_last_xlog_replay_location();
pg_last_xlog_replay_location
------------------------------
0/8000000
(1 row)
これらのトランザクションログの位置の差 = 同期の遅れをバイト単位で取り出
すには pg_xlog_location_diff 関数を実行します。
=# select pg_xlog_location_diff('0/8CC51F0', '0/8000000');
pg_xlog_location_diff
-----------------------
13390320
(1 row)
そのほかにもスタンバイサーバでどこまでトランザクションログを受けとった
かを調べる関数などもあります。詳しくは以下のページを読んでみてください。
9.26. システム管理関数
http://www.postgresql.jp/document/9.3/html/functions-admin.html
> たとえば、何らかのSQLでリストア済みアーカイブログのxidがわかって、
> さらに何らかのSQLでxidとアーカイブログのファイル名の紐付きがわかれば
> うれしいと思っています。
>
> 良い方法をご存知の方はいらっしゃいませんか。
>
> 不足している情報などがございましたら
> ご指摘ください。
----
Tomoaki Sato <sato @ sraoss.co.jp>
SRA OSS, Inc. Japan
pgsql-jp メーリングリストの案内