pgx_dmpallコマンド、およびpgx_rcvallコマンドを使用して、バックアップの実行、およびバックアップ状態の確認を行います。
バックアップの準備
バックアップを実施する前に、バックアップの準備を実施する必要があります。
以下の手順で実施してください。
参照
バックアップに必要となるディレクトリの配置や注意事項については、“導入ガイド(サーバ編)”の“資源配置用のディレクトリの準備”を参照してください。
バックアップデータ格納ディスクの用意
データ格納ディスクとは別のディスク装置をバックアップのために用意し、OSの機能を使用してマウントします。
バックアップデータ格納先のディレクトリの作成
空のディレクトリを作成します。
Windows(R)のエクスプローラの[プロパティ]で、作成したディレクトリにインスタンス管理者のみがアクセスできるように許可を設定します。
参照
[プロパティ]の詳細は、Windows(R)の[ヘルプとサポート]を参照してください。
バックアップに必要な設定
インスタンスを停止し、postgresql.confファイルに以下のパラメータを設定してください。postgresql.confファイルを編集後は、インスタンスを起動してください。
パラメータ名 | 設定値 | 説明 |
---|---|---|
backup_destination | バックアップデータ格納先のディレクトリ名 | バックアップデータを格納するディレクトリ名を指定します。 指定するディレクトリは、インスタンス管理者のみがアクセスできるように権限を設定する必要があります。 なお、バックアップデータ格納先のディレクトリは、データ格納先のディレクトリ、テーブル空間ディレクトリ、およびトランザクションログ格納先のディレクトリの外に配置してください。 |
archive_mode | on | アーカイブログモードを指定します。 on(行う)を指定してください。 |
archive_command | 'cmd /c ""インストールディレクトリ\\bin\\pgx_walcopy.cmd" "%p" "バックアップデータ格納先ディレクトリ\\archived_wal\\%f""' | トランザクションログを保存するコマンドと格納先パス名を指定します。 なお、パスを指定するときは以下に注意してください。
|
パラメータの詳細については、“付録A パラメータ”、および“PostgreSQL Documentation”の“Server Administration”の“Write Ahead Log”を参照してください。
pgx_dmpallコマンドを使用して、ファイルバックアップを実行します。また、pgx_dmpallコマンドをOSの自動化ソフトウェアに組み込んでバックアップを実行することもできます。
バックアップデータは、postgresql.confのbackup_destinationパラメータに指定したディレクトリに格納されます。
-Dオプションは、データ格納先のディレクトリを指定します。-Dオプションを省略した場合、PGDATA環境変数の値が使用されます。
例
> pgx_dmpall -D D:\database\inst1
注意
バックアップを実行した際には、実行時に取得したデータと、前回取得したデータのバックアップデータが保管されます。
データベースに格納するデータを暗号化している場合、以下を参照してキーストアのバックアップを実施してください。
pgx_rcvallコマンドを使用して、バックアップの状況を確認します。
pgx_rcvallコマンドには、以下を指定します。
-lオプションは、バックアップデータの情報を表示します。
-Dオプションは、データ格納先のディレクトリを指定します。-Dオプションを省略した場合、PGDATA環境変数の値が使用されます。
> pgx_rcvall -l -D D:\database\inst1 Date Status Dir 2017-05-01 13:30:40 COMPLETE E:/backup/inst1/2017-05-01_13-30-40
何らかの問題が発生してバックアップに失敗していると、イベントログにメッセージが出力されます。
この場合、バックアップデータは最適化されません。バックアップを実行した際には、必ずバックアップの実行結果を確認してください。バックアップに失敗した場合は、失敗の原因を取り除き、再度バックアップを実行してください。
参照
pgx_dmpallコマンド、およびpgx_rcvallコマンドの詳細は、“リファレンス”の“pgx_dmpall”、および“pgx_rcvall”を参照してください。
データベースを、ある決めた時点にリカバリしたい場合に備え、リカバリによってデータを戻したい時点に名前を付けることができます。この時点をリストアポイントと呼び、psqlコマンドにより設定することができます。
アプリケーションの実行前などに設定しておくと、データの内容がいつの時点に戻るかがわかりやすくなり便利です。
リストアポイントは、バックアップ実行後の任意の時点に設定することができます。一方、バックアップの実行前にリストアポイントを設定した場合は、その時点にリカバリすることはできません。リストアポイントはアーカイブログに記録され、アーカイブログはバックアップの実行により破棄されるためです。
例
以下は、psqlコマンドでデータベースに接続し、SQL文を実行してリストアポイントを設定する場合の例です。
ただし、アプリケーションの互換性を維持することを考慮し、SQL文中の関数を直接使用しないようにしてください。詳細は、“アプリケーション開発ガイド”の“アプリケーションの互換に関する注意事項”を参照してください。
postgres=# SELECT pg_create_restore_point('batch_20170503_1'); LOG: restore point "batch_20170503_1" created at 0/20000E8 STATEMENT: select pg_create_restore_point('batch_20170503_1'); pg_create_restore_point ------------------------- 0/20000E8 (1 row)
リストアポイントを利用してデータベースをリカバリする場合、“13.3.2 pgx_rcvallコマンドを使用する場合”を参照してください。
注意
リストアポイントは、データベース内で一意となるように命名してください。以下の例に示すようにリストアポイントを設定する年月日や時刻を付加し、他のリストアポイントと混同しないようにしてください。
YYMMDD_HHMMSS
YYMMDD : 年月日を表します。
HHMMSS : 時刻を表します。
設定したリストアポイントを確認する方法はありません。任意のファイルなどに記録しておいてください。
参照
pg_create_restore_pointの詳細は、“PostgreSQL Documentation”の“Functions and Operators”の“System Administration Functions”を参照してください。