pgx_dmpallコマンドおよびpgx_rcvallコマンドで利用するコピーコマンドのサンプルとして、Fujitsu Storage ETERNUSディスクアレイ(以降、ETERNUSディスクアレイ)のアドバンスト・コピー機能であるOPCを利用したバックアップ兼リカバリ用のスクリプトを提供しています。
本サンプルを任意のファイルに複写して、利用者の環境や運用に適した変更を行うことができます。
サンプルは以下のディレクトリに格納されています。
概要版
/インストールディレクトリ/share/copy_command.esf_acm1.sh.sample
詳細版
/インストールディレクトリ/share/copy_command.esf_acm2.sh.sample
参照
本サンプルでは、ETERNUSディスクアレイのアドバンスト・コピー機能を操作するために、Fujitsu Storage ETERNUS SF AdvancedCopy Manager(以降、ACM)のレプリケーション管理のコマンドを利用しています。ETERNUSディスクアレイのアドバンスト・コピー機能やACMについては、それぞれのマニュアルを参照してください。
サンプルを利用するための前提
本サンプルを利用するためには、ETERNUSディスクアレイのアドバンスト・コピー機能の事前設定が必要です。サンプルでは、レプリケーション対象となる複製元/複製ボリュームの設定や複製ボリュームへの物理コピーが完了し、トラッキング処理が開始されている状態からのバックアップを前提としています。
サンプル(詳細版)の内容
サンプルでは、データベースクラスタおよびテーブル空間を配置している複製元ボリュームに対し、2つの複製ボリュームを割り当て、バックアップごとに交替利用し、最新のバックアップで利用した複製ボリューム(グループ)をバックアップ情報ファイルに登録しています。
また、リカバリ時には、このバックアップ情報ファイルから複製ボリュームを決定してリストアを行います。
各操作モードごとの処理は以下です。
バックアップ情報ファイルを読み込んで今回のバックアップで使用する複製ボリュームを決定します。
すべての複製ボリュームへの物理コピーの完了状態をACMのswsrpstatコマンドにより確認します。
手順1で決定した複製ボリュームをbackupモードに引き継ぐため一時ファイルへ書き込みます。
一時ファイルを読み込んで複製ボリュームの情報を取得します。
ファイルシステムのバッファ書き込みをOSのsyncコマンドにより行います。
バックアップ対象のファイルシステムをOSのfsfreezeコマンドにより凍結します。
スナップショットの取得(論理コピーの実施)をACMのswsrpmakeコマンドにより行います。
手順3で行ったファイルシステムの凍結をOSのfsfreezeコマンドにより解除します。
手順3から手順5をすべてのバックアップ対象のファイルシステムについて行います。
すべての複製ボリュームに対する物理コピーの完了状態をACMのswsrpstatコマンドにより確認します。
バックアップ情報ファイルに今回のバックアップで使用した複製ボリュームの情報を書き込みます。
バックアップ情報ファイルを読み込んでリカバリで使用する複製ボリュームを決定します。
リカバリ対象のファイルシステムをOSのumountコマンドによりアンマウントします。
複製ボリュームからの物理コピーをACMのswsrpmakeコマンドにより行います。
リカバリ対象のファイルシステムをOSのmountコマンドによりマウントします。
複製ボリュームからの物理コピーの完了状態をACMのswsrpstatコマンドにより確認します。
手順2から手順5をすべてのリカバリ対象のファイルシステムについて行います。
アーカイブリカバリに不要なファイルやディレクトリを削除します。
注意
本サンプルは、SLES 12およびSLES 15では使用できません。
本サンプルでは、ACMのコマンドやファイルシステムの操作をOSのスーパーユーザで実行するために、OSのsudoコマンドを利用しています。そのため、これらの実装がデータベースサーバでのセキュリティ基準を満たせるか否かを判断し、必要な場合には他の手段により実施するようにしてください。
本サンプルでは、ETERNUSディスクアレイのアドバンスト・コピー機能によるコピー処理からファイルシステムを保護するために、データ格納先(複製元ボリューム)のファイルシステムを一時的に凍結させています。そのため、バックアップ処理中は以下を考慮してください。
SQL文のタイムアウト時間に凍結時間を考慮する。
データ格納先にアクセスするクラスタ機能などのデータベースと連携する機能を利用する場合は、これらのタイムアウト時間に凍結時間を考慮する。
データベース多重化運用を行う場合
異常監視が誤検知する可能性があるため、異常監視の監視間隔/タイムアウト時間/リトライ回数への考慮や、バックアップ中のMirroring Controllerプロセスのみの一時停止などの考慮が必要です。
PRIMECLUSTERを利用したフェイルオーバ運用を行う場合
ファイルシステムの凍結中に障害が発生した場合、PRIMECLUSTERが異常を検出すると切替えを開始しますが、凍結が解除されてから切替えが行われます。また、凍結解除までに時間がかかった場合は、運用系ノードがOSパニックを起こして切替えを行う場合があります。