PostgreSQL は、SQL 言語を使用して拡張し、最も複雑なデータ ワークロードを安全に保存してスケーリングする多くの機能と組み合わせた、強力なオープンソースのオブジェクト リレーショナル データベース システムです。
バックアップと DR で使用される PostgreSQL バックアップ API
ボリューム レベル(Linux 変更ブロックのトラッキングと LVM スナップショット)バックアップ: バックアップと DR は、Linux 変更ブロックのトラッキングと LVM スナップショットでバックアップを実行するときに PostgreSQL の
pg_start_backup(label)
コマンドとpg_stop_backup()
コマンドを使用します。完全バックアップと増分バックアップ(ファイルベースの従来のバックアップ): バックアップと DR では、PostgreSQL
pg_dump
ファイルベースのバックアップ コマンドを使用します。pg_dump
コマンドにはデータベースの増分変更をキャプチャするオプションがないため、各バックアップはデータベースの完全なダンプ バックアップになります。データベースの復元は、データ領域を物理的に上書きすることでデータベースを復元します。
PostgreSQL ログのバックアップ: ログバックアップ中、バックアップと DR はすべての PostgreSQL WAL(
WriteAheadLog
)を物理的にコピーします。ログをパージするために、バックアップと DR は OS レベルのコマンドを使用します。
仕組み: Linux CBT を使用したバックアップと DR のボリュームベースのバックアップ
変更されたブロックのみがビットマップで追跡されます。コピーオンライトや I/O 負荷の高いオペレーションはありません。
次の手順では、データのバックアップと復元のプロセスについて説明します。
バックアップと DR エージェントには、データベース データ領域内の変更されたブロックを追跡する CBT があります。
エージェントはデータベース API を呼び出して、データ バックアップのためにデータベースをフリーズまたは一時停止します。
エージェントがデータベース データ領域の LVM スナップショットを作成し、ビットマップを合成します。
エージェントがデータベース API を呼び出してデータベースの凍結を解除します。
エージェントは変更されたブロックをバックアップ/リカバリ アプライアンスにコピーします。アプライアンスはスナップショットを削除し、バックアップをカタログ化します。
アプライアンスは内部スナップショットを発行し、特定時点の仮想完全バックアップを合成します。
データ復旧の場合、バックアップと DR は書き換え可能なステージング ディスクを即座にマウントし、データベースをオンラインにします。
quiesce または unquiesce コマンドは、ボリュームレベルの Snapshot ジョブのプライマリで実行されます。
select pg_start_backup(<label>);
select pg_stop_backup();
quiesce コマンドと unquiesce コマンドは、ボリュームレベルのスナップショット ジョブのスタンバイ ノードで実行されます。
PostgreSQL バージョンが 10.x 以降の場合:
select pg_wal_replay_pause();
select pg_wal_replay_resume();
PostgreSQL のバージョンが 9.x の場合:
select pg_xlog_replay_pause();
select pg_xlog_replay_resume();
仕組み: ファイルベースのバックアップ
次の手順では、ファイルベースのバックアップ イメージを使用してデータのバックアップと復元を行うプロセスについて説明します。
バックアップと DR エージェントがデータベース サーバーにデプロイされている。
ステージング ディスクをデータベース サーバーにマウントします。
ダンプ バックアップ コマンドを使用して完全バックアップを呼び出し、バックアップをマウント済みディスクに書き込みます。
バックアップと DR が内部スナップショットを取得します。ログのバックアップは、構成したスケジュールに従い、ファイル システムから直接行われます。
データ復元の場合、バックアップと DR はステージング ディスクをデータベース サーバーに即座にマウントし、データベース復元オペレーションを開始します。ログは、データベースの復元後の任意の時点まで再生できます。
次のステップ
PostgreSQL のバックアップと DR に関するその他のドキュメント
- PostgreSQL のバックアップと DR
- バックアップと DR 用にデータベースを準備する
- PostgreSQL データベース ホストを追加してデータベースを検出する
- ポリシー テンプレートとリソース プロファイルを定義する
- アプリの詳細と設定を設定する
- ステージング ディスクの形式とバックアップ方法を確認する
- PostgreSQL データベースとそのログを保護する
- PostgreSQL データベースをマウントする
- PostgreSQL バックアップを復元する
- PostgreSQL のバックアップと DR ワークフローを作成する