ページの先頭行へ戻る
Enterprise Postgres 11 運用ガイド
FUJITSU Software

12.1 コピーコマンドの構成

バックアップおよびリカバリ運用を考慮したコピーコマンドの構成について説明します。

バックアップ領域循環利用

コピーコマンドで使用するバックアップ領域は、万が一、バックアップ処理中にデータ格納先に異常が発生した場合に備えて2つ用意します。コピーコマンドでは、これらのバックアップ領域を循環利用しながら、バックアップ処理を行います。

注意

コピーコマンドによるバックアップ先にバックアップデータ格納先のディレクトリを使用することはできません。

バックアップ情報ファイルを利用したバックアップ処理

コピーコマンドではバックアップ領域を循環利用する必要があるため、バックアップのたびにバックアップ先を決定しなければなりません。そのため、バックアップ先に関する任意の情報が登録可能なバックアップ情報ファイルを利用することで、バックアップ運用を自動化することができます。

参考

バックアップ情報ファイルは、pgx_dmpallコマンドがバックアップデータ格納先のディレクトリに用意したファイルであり、コピーコマンド内から自由に参照や更新が可能です。本ファイルは、pgx_dmpallコマンドが成功した最新のバックアップに関連付けて管理されるため、利用者が登録したコピーコマンドに関する最新のバックアップ情報を得ることができます。また、バックアップ情報ファイルの内容は、pgx_rcvallコマンドから表示することもできます。

バックアップ用コピーコマンドの構成

pgx_dmpallコマンドは、以下の3つモードで順番にバックアップ用コピーコマンドを呼び出します。そのため、バックアップ用コピーコマンドはそれぞれのモードで行うべき処理が実装されている必要があります。

注意

コピーコマンド内の各モード間のバックアップ情報の引継ぎは、一時ファイルを作成するなど、利用者の任意の方法で行ってください。

リカバリ用コピーコマンドの構成

pgx_rcvallコマンドは、以下のモードでリカバリ用コピーコマンドを呼び出します。そのため、リカバリ用コピーコマンドはそのモードで行うべき処理が実装されている必要があります。

ポイント

コピーコマンドに引数として与えられるモードを参照することで、バックアップとリカバリを1つのコピーコマンドで実装することも可能です。

バッチファイル形式で作成する場合

if "%1" == "prepare"  goto prepare
if "%1" == "backup"   goto backup
if "%1" == "finalize" goto finalize
if "%1" == "restore"  goto restore
:prepare
    prepareモードで行う処理を実装します。
    exit /b
:backup
    backupモードで行う処理を実装します。
    exit /b
:finalize
    finalizeモードで行う処理を実装します。
    exit /b
:restore
    restoreモードで行う処理を実装します。
    exit /b

ポイント

コピーコマンドの開発を理解していただくことを目的としたサンプルとして、特定のディレクトリにデータベースクラスタとテーブル空間の配置先ディレクトリをバックアップするバッチファイルを提供しています。

サンプルは以下のディレクトリに格納されています。

インストールディレクトリ\share\copy_command.bat.sample