以下の4つの方法があります。
pg_basebackupを使用する
pg_dumpallを使用して、データベースクラスタ全体をスクリプトファイルとしてバックアップする
pg_dumpとpg_restoreを使用して、一部のデータベースだけをバックアップおよびリストアする
pg_dumpとpg_restoreを使用して、一部のテーブルやスキーマだけをバックアップおよびリストアする
このうち、pg_basebackupを使用する方法を採用するならば、特別に注意するべきことはありません。他の方法を採用するときには、以下に示す特別な注意が必要です。
pg_dumpallを使用して、データベースクラスタ全体をスクリプトファイルとしてバックアップする
以下に注意してください。
pg_dumpallコマンドの-Oオプションを使用しないでください。機密オブジェクトの所有者が変わると、この機能が正しく動作しないからです。
pg_dumpallコマンドの-xオプションを使用しないでください。当然ですが、厳密に管理されていた権限が変更されてしまうからです。
スーパーユーザーが、バックアップされたスクリプトファイルを実行してください。バックアップされたスクリプトファイルには、この拡張のCREATE EXTENSION文が含まれています。このCREATE EXTENSION文を、スーパーユーザーで実行しなければならないからです。
pg_dumpとpg_restoreを使用して、一部のデータベースだけをバックアップおよびリストアする
以下に注意してください。
pg_dumpallコマンドの-rオプションを使って、ロールの情報もバックアップおよびリストアしてください。当然ですが、機密管理にはロールが不可欠だからです。
pg_dumpコマンドの-Oオプションを使用しないでください。機密オブジェクトの所有者が変わると、この機能は正しく動作しないからです。
pg_dumpコマンドの-xオプションを使用しないでください。当然ですが、厳密に管理されていた権限が変更されてしまうからです。
スーパーユーザーが、リストアしてください。この拡張を作成しなければならないからです。
pg_dumpのpg_restoreを使用して、一部のテーブルやスキーマだけをバックアップおよびリストアする
以下に注意してください。
pg_dumpコマンドの-eオプションを使用して、この拡張もバックアップおよびリストアしてください。この拡張に含まれるテーブルに、機密管理に必要な情報が格納されているからです。
pg_dumpallコマンドの-rオプションを使って、ロールの情報もバックアップおよびリストアしてください。当然ですが、機密管理にはロールが不可欠だからです。
pg_dumpコマンドの-Oオプションを使用しないでください。機密オブジェクトの所有者が変わると、この機能は正しく動作しないからです。
pg_dumpコマンドの-xオプションを使用しないでください。当然ですが、厳密に管理されていた権限が変更されてしまうからです。
スーパーユーザーが、リストアしてください。この拡張を作成しなければならないからです。