it技術:データベース:postgresql:運用
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:データベース:postgresql:運用 [2019/08/04 11:03] – [WALアーカイブからのリストア] yajuadmin | it技術:データベース:postgresql:運用 [2019/08/06 11:17] – [max_wal_size] yajuadmin | ||
---|---|---|---|
行 111: | 行 111: | ||
* [[https:// | * [[https:// | ||
+ | ==== wal_keep_segments ==== | ||
+ | バックアップ後にpg_logに下記のエラーが発生 | ||
+ | < | ||
+ | 2019-08-06 02:18:35 JST ERROR: | ||
+ | 要求された wal セグメント * はすでに削除されています。 | ||
+ | </ | ||
+ | |||
+ | 対処として、wal_keep_segmentsをゼロ以外の値に設定する。\\ | ||
+ | これは、ストリームの危険性が追いつかなくなるのを防ぐためです。\\ | ||
+ | ただしpg_basebackupを使用する場合は、 – checkpoint = fastも忘れないでください。\\ | ||
+ | https:// | ||
+ | |||
+ | < | ||
+ | # | ||
+ | ↓ | ||
+ | wal_keep_segments = 128 | ||
+ | |||
+ | backup.bat の見直し | ||
+ | pg_basebackup -U postgres -D " | ||
+ | ↓ | ||
+ | pg_basebackup -U postgres -D " | ||
+ | </ | ||
===== データベース初期化 ===== | ===== データベース初期化 ===== | ||
==== 全てのデータベース初期化 ==== | ==== 全てのデータベース初期化 ==== | ||
行 323: | 行 345: | ||
よって、不要なWALアーカイブの削除は手動で行うこととする。\\ | よって、不要なWALアーカイブの削除は手動で行うこととする。\\ | ||
※postgreSQLサービスを再起動すればリカバリが実行され、recovery.confはrecovery.doneになります。 | ※postgreSQLサービスを再起動すればリカバリが実行され、recovery.confはrecovery.doneになります。 | ||
- | ==== WALアーカイブからのリストア ==== | + | ==== WALアーカイブからのリカバリ ==== |
+ | リストアとリカバリとは区別しないで使うときもあるが、今回は分けました。 | ||
+ | |||
+ | * リストアはバックアップデータを、バックアップを取ったときと同じ状態に物理的に復元すること | ||
+ | * リカバリはリストアしたデータに何かの処理をして最新の状態や正常な状態に復旧させること | ||
+ | |||
+ | === PITRの仕組み | ||
+ | PITR(Point In Time Recovery)は、WALレコード適用によるリカバリが前提となっている。 | ||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
+ | **WALレコードの適用までの流れ**\\ | ||
+ | リカバリを開始してWALレコードを適用するまでの流れは次のようになっている。 | ||
+ | |||
+ | - pg_controlファイルを読み込む | ||
+ | - recovery.confを読み込む | ||
+ | - backup_labelを読み込む | ||
+ | - pg_controlファイルを更新し、backup_labelを削除する | ||
+ | - 必要なWALを繰り返し適用する | ||
+ | |||
+ | ※backup_labelファイルから適用を開始すべきWALの位置を取得できなかった場合は、pg_controlファイルの情報を元にリカバリを開始します。 | ||
+ | |||
+ | pg_controlファイルは、バイナリファイルなので通常のエディタでは内容を確認できません。そのために pg_controldata コマンドが用意されています。\\ | ||
pg_controldata コマンドで最終チェックポイントのREDO WALファイルが分かる。 | pg_controldata コマンドで最終チェックポイントのREDO WALファイルが分かる。 | ||
it技術/データベース/postgresql/運用.txt · 最終更新: 2024/04/24 11:07 by yajuadmin