ページの先頭行へ戻る
Enterprise Postgres 17 SP1 運用ガイド

第3章 データベースのバックアップ

本章では、データベースのバックアップに関して説明します。


バックアップの方法

以下のバックアップ方法でバックアップすることにより、ディスク装置の物理的破損やデータの論理的破損が発生する直前や、バックアップ時点にリカバリできます。

  • 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 バックアップとリカバリ

機密管理支援機能:“セキュリティ運用ガイド”の“バックアップ/リストア”

データベース多重化:“クラスタ運用ガイド(データベース多重化編)”の“バックアップ運用”