本章では、データベースのバックアップに関して説明します。
以下のバックアップ方法でバックアップすることにより、ディスク装置の物理的破損やデータの論理的破損が発生する直前や、バックアップ時点にリカバリできます。
WebAdminによるバックアップ
GUIにより直感的な画面操作でバックアップできます。
リカバリを行うときは、WebAdminでリカバリします。
pgx_dmpallコマンドによるバックアップ
スクリプトからpgx_dmpallコマンドを実行して、自動的にバックアップできます。自動的にバックアップするためには、OSの自動化ソフトウェアに登録する必要があります。各OSのドキュメントに従って実施してください。
また、外部の任意のスケジューラを利用することで、定期的にバックアップを取得することができます。
リカバリを行うときは、pgx_rcvallコマンドでリカバリします。
選択したバックアップ方法を継続して使用してください。各バックアップ方法は、保存するデータ形式などに差異があります。そのため、以下の制約があります。
バックアップデータを使用して、異なる方法でリカバリすることはできません。
バックアップデータを異なる方法のバックアップデータに移行できません。
参考
pgx_dmpallコマンドとpgx_rcvallコマンドでは、ユーザーが作成したコピーコマンドを使用することで、データベースクラスタやテーブル空間に対する任意のバックアップ先へのバックアップおよび任意のバックアップ先からのリカバリを、任意のコピー方法で実施することができます。“第16章 コピーコマンドを使用したバックアップ/リカバリ”を参照してください。
WebAdminまたはpgx_dmpallコマンドを使用した場合の、バックアップ目安時間の導出式を示します。
バックアップ時間 = データ格納先の使用量 ÷ ディスク書込み性能 × 1.5
データ格納先の使用量:データ格納先のディスク使用量
ディスク書込み性能:運用を行うシステム環境における、1秒間あたりに書き込み可能な最大のデータ量(バイト/秒)の実測値
1.5:最も時間のかかるディスク書き込み以外の時間を見込んだ係数
pgx_dmpallコマンドでコピーコマンドを使用する場合、バックアップ時間はコピーコマンドの実装内容に依存します。
テーブル空間を定義した場合、バックアップを行ってください。バックアップを行わなかった場合、リカバリ実行時にテーブル空間のディレクトリ作成が行われず、リカバリが失敗することがあります。リカバリに失敗した場合は、システムログを参照してテーブル空間のディレクトリ作成後、リカバリを再実行してください。
キーストアのバックアップやバックアップにおける留意事項があります。詳細は、以下を参照してください。
参考
以下の方式によるバックアップも可能です。これらの方法でバックアップをすることにより、バックアップを行った時点に復旧できます。
SQLによるダンプを用いたバックアップ
SQLを使用してデータをダンプします。データの移行にも使えるバックアップ方法です。
ファイルシステムレベルのバックアップ
インスタンスを停止し、OSコマンドなどを使用してデータベース資源をファイルとしてバックアップする方法です。
継続的アーカイブによるバックアップ
PostgreSQLの標準的なバックアップ方法です。
これらのバックアップ方法の詳細は、“PostgreSQL Documentation”の“Server Administration”の“Backup and Restore”を参照してください。
Enterprise Postgresが提供する機能では、以下のバックアップ方法が利用できます。
分類 | バックアップ方法 | バックアップ対象 | Enterprise Postgresの機能 | |||||
---|---|---|---|---|---|---|---|---|
透過的データ暗号化 | ポリシーに基づいたログインセキュリティの管理 | データ秘匿化 | 機密管理支援機能 | 監査ログ | データベース多重化 | |||
物理バックアップ | WebAdmin | データベースクラスタ | ○ | ○ | ○ | ○ | ○ | ○ |
pgx_dmpallコマンド | ○ | ○ | ○ | ○ | ○ | ○ | ||
継続的アーカイブによるバックアップ | ○ | ○ | ○ | ○ | ○ | ○ | ||
ファイルシステムレベルのバックアップ | ○ | ○ | ○ | ○ | ○ | ○ | ||
論理バックアップ | pg_dumpallコマンド | × | ○ | × | ○ | × | ○ | |
pg_dumpコマンド | データベース | × | × | × | ○ | × | ○ | |
COPYコマンド | テーブル | × | × | × | × | × | × |
○:利用可
×:利用不可
論理バックアップでは、リストアするプロセスでインデックスが再作成されます。例えば、pgvectorで扱うベクトルデータのようにインデックスのサイズが大規模となる場合、リストア時間が長くなる可能性があります。短時間でリストアしたい場合は、物理バックアップを使用してください。
複数のテーブルから大量のデータを高速に抽出する場合は、多重実行により並列でデータを抽出してください。
一部の機能では、バックアップ時に留意すべき事項があります。各機能における留意事項については、以下を参照してください。
透過的データ暗号化:“5.7 データベースのバックアップとリストア/リカバリ”
ポリシーに基づいたログインセキュリティの管理:“7.6 バックアップとリカバリ”
機密管理支援機能:“セキュリティ運用ガイド”の“バックアップ/リストア”
データベース多重化:“クラスタ運用ガイド(データベース多重化編)”の“バックアップ運用”