バックアップの定期実行について説明します。
オンラインバックアップは、PostgreSQLのPITR(Point In Time Recovery)の仕組みを使用しています。
PITRを使用したデータベースのバックアップ・リストアでは、以下の2つの資産をバックアップおよびリストアします。
ベースバックアップは、データベースクラスタ(データベースのデータが記録されるファイル群)全体をバックアップしたものです。ベースバックアップコマンド(swctmg_backupdb)を実行し取得します。
WAL(Write Ahead Logging)ファイルとは、データベースへの更新内容が記録されるファイルです。この更新内容は16MBのサイズごとに複数のファイルに出力されます。
通常、16MB書き込まれるごとに、書込み対象のWALファイルが切り替わり、書込みが完了したWALファイルはバックアップディレクトリ配下の「wal」ディレクトリに退避されます。
WALファイル切替えコマンド(swctmg_switchwal)を定期的に実行することで、退避されたWALファイルに記録されるデータベースの更新内容を一定期間維持することができます。たとえば、1時間ごとにWALファイル切替えコマンドを実行すると、最新の1時間以内の更新内容まで退避されることになります。
データベースのリストアは、ベースバックアップに、ベースバックアップ取得以降に出力されたWALファイルのデータベース更新内容を適用することにより復旧します。リストア時に日時を指定することにより、任意の時点のデータベースの状態に復旧することも可能です。リストアにはリストアコマンド(swctmg_restoredb)を使用します。
ベースバックアップコマンド(swctmg_backupdb)およびWALファイル切替えコマンド(swctmg_switchwal)を定期実行させることで、バックアップ作業を軽減することができます。バックアップの定期実行の設定手順については、“2.4.3 バックアップの定期実行の設定”を参照してください。