トップ ソフト 雑記 日記 リンク

2013年5月20日月曜日

PostgreSQLのWALでのエラー・トラブル対応

注釈:この記事はQiitaにわたしが投稿していた記事を、自分のブログへ移動させたものです。
PostgreSQLでトラブルになったときに、つい忘れるのでメモ。

何らかのトラブルでNFSなどにWALが送られず、pg_xlogが膨れあがり、容量不足で停止したとき。
問題の無い範囲で、pg_xlogの内容を削除したのに、以下のようなログが出て、WALの送信が失敗するときがある。

cp: cannot stat `pg_xlog/00000001000010D000000000': No such file or directory
LOG: archive command failed with exit code 1
DETAIL: The failed archive command was: test ! -f /mnt/nfs_dir/archivedir/00000001000010D000000000 && cp pg_xlog/00000001000010D000000000 /mnt/nfs_dir/archivedir/00000001000010D000000000
WARNING: transaction log file "00000001000010D000000000" could not be archived: too many failures

原因は /pg_xlog/archive_status ディレクトリに、アーカイブの送信状況が保存されているが、これと実際のファイルの対応が不一致になった場合に発生する。
archive_status ディレクトリに「*.ready」というファイルがあれば、送信前。
送信が完了すると「*.done」になる。
これらを実際の pg_xlog に合わせよう。

0 件のコメント:

コメントを投稿

広告