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

15.1 コピーコマンドの構成

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

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

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

注意

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

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

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

参考

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

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

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

注意

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

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

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

ポイント

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

bashのスクリプト形式で作成する場合

case $1 in
    prepare)
        prepareモードで行う処理を実装します。
        ;;
    backup)
        backupモードで行う処理を実装します。
        ;;
    finalize)
        finalizeモードで行う処理を実装します。
        ;;
    restore)
        restoreモードで行う処理を実装します。
        ;;
esac

ポイント

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

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

    /インストールディレクトリ/share/copy_command.archive.sh.sample
  • Fujitsu Storage ETERNUSディスクアレイのアドバンスト・コピー機能であるOPCを利用したサンプルスクリプトを提供しています。詳細は“付録J ETERNUSディスクアレイのアドバンスト・コピー機能を利用したコピーコマンドのサンプル”を参照してください。

    本サンプルスクリプトは、SLES 12およびSLES 15では使用できません。