web-dev-qa-db-ja.com

Postgresは、archive_modeがオフの場合、WALファイルを自動的にローテーション(pg_xlog)しますか?

私はPostgreSQLの管理に比較的慣れていないので、進むにつれ、細かい点で詳細を把握しようとしています。私の質問は、障害復旧の必要がなく、_archive_mode = on_を設定してアーカイブをオンにしない場合、PostgresはWALファイルを_pg_xlog_からローテーションする内部メカニズムを持っているのですか?もしそうなら、頻度は何ですか?

少し異なる注意点として、_archive_mode = on_を設定しても_archive_command_を設定しないとどのような影響がありますか-Postgresがアーカイブしようとするデフォルトの場所はありますか?

2
kaizenCoder

archive_mode = offの場合、PostgreSQLは、古いWALファイルが最新のチェックポイントよりも古くなるとすぐに削除します。これらのチェックポイントはデフォルトでは少なくとも5分ごとに発生するため、古いWALファイルが多数存在することはありません。

archive_mode = onを設定すると、archive_commandがそのファイルの成功を返した場合にのみ、WALファイルが削除されます。空のarchive_commandは常にすぐに実行する必要があります。アーカイブを一時的に無効にしたことを示すためにarchive_command = '/bin/true'を設定するのは慣習です。

2
Laurenz Albe

私はPostgreSQL管理に比較的慣れていない

災害復旧の必要がないとすると...

本当に?

なぜdo組織の従業員Postgres管理者ですか?

jobである誰かがいるようにすることはできますか?それは、データisが回復可能であることを確認することですか?

[少なくとも] 2つのコピーを持っていないデータは、あなたは気にしないのデータです。あなたのビジネスはおそらくします。

archive_mode = onを設定するが、archive_commandを設定しないことの影響は何ですか

Postgresは幸いにもディスクをWALファイルでいっぱいにして、それ以上書き込めなくなるまでデータベースをクラッシュして書き込みます。

Postgres しないこれらのファイルをアーカイブする試みは、それを認識する唯一の方法howファイルをアーカイブするis設定したarchive_commandだからです。

0
Phill W.

各チェックポイントの最後で、不要なWALファイルを削除またはリサイクル(将来の再利用のために、将来のWAL名に名前を変更)します。

少し異なる注意点として、archive_mode = onを設定しても、archive_commandを設定しないとどのような影響がありますか-Postgresがアーカイブしようとするデフォルトの場所はありますか?

Archive_commandのデフォルト設定は ''で、これについて the docs は次のように言っています:

一時的にアーカイブを停止したい場合、それを行う1つの方法は、archive_commandを空の文字列( '')に設定することです。これにより、動作中のarchive_commandが再確立されるまで、pg_wal /にWALファイルが蓄積されます。

0
jjanes