InterSystems製品のバックアップ方法の中の3つの目方法は、「並行外部バックアップ」についてです。
この方法は外部バックアップと異なり、スナップショットなどのストレージ機能がない環境に向いている方法でオンラインバックアップよりも高速にバックアップできます。(古いバージョンのInterSystems製品でも利用できるバックアップ方法です。)
ただし、バックアップやリストア手順が複雑になります。
並行外部バックアップの利用を検討される際は、事前にリストア手順についてもテスト環境などでご確認いただくことを推奨します。
並行外部バックアップ概要
データベースファイル(.DAT)を通常のコピーコマンドなどで退避します。
データベースファイルのサイズによってはコピー時間が長くなります。外部バックアップの方法を利用するとライトデーモン凍結時間のタイムアウトを迎えてしまうため、バックアップを正しく完了できません。
そのため並行外部バックアップでは、ライトデーモンの凍結を行わずデータベースのダーティコピーを行う方法を採用しています。
ダーティコピーのバックアップファイルだけでは不完全であるため、最後にオンラインバックアップの差分バックアップを行うことで完全なバックアップを取得します。
最後の手順に差分バックアップを行うため、オンラインバックアップと同様にデータベースリストを事前に作成する必要があります。
メモ:通常差分バックアップはオンラインバックアップのフルバックアップを先に実行する必要がありますが、並行外部バックアップではフルバックアップを取らなくてもできる仕組みを取り入れています。(詳細はバックアップ手順をご参照ください。)
バックアップ手順
1. データベースバックアップリストを作成します。
手順詳細は、オンラインバックアップの事前準備をご参照ください。
2.最新のバックアップ以降に変更されたデータベース・ブロックのリストを削除します。
バックアップリスト内のデータベースで変更されているブロックを示すインクリメンタル・バックアップ・ビットマップをクリアします。
%SYSネームスペースで以下実行します。
set $namespace="%SYS" //zn "%SYS"
do CLRINC^DBACK("QUIET")
ObjectScriptObjectScript
3.データベースファイル(.DAT)を退避します。
普通のファイルコピーを行う方法で退避できます。
4.並行外部バックアップでバックアップしたこと示すためシステムルーチンを実行します。
%SYSネームスペースで以下実行します。
Set x=$$BACKUP^DBACK("","E","並行外部バックアップの実行:リストア時差分バックアップの適用を忘れずに","","","")
ObjectScriptObjectScript
- 第1引数:未使用のため空("")を指定します。
- 第2引数:並行外部バックアップのタイプ:Eを指定します。
- 第3引数:バックアップ履歴のグローバルに保存される説明文を指定できます。
- 残りの引数は全て空("")を指定します。
5.差分バックアップを実行します。
差分バックアップによって、データベースファイル(.DAT)のコピー中に変更されたブロックがすべてコピーされます。 %SYSネームスペースで以下実行します。
Set x=$$BACKUP^DBACK("","I","並行外部バックアップの後に実行する差分バックアップ","/backup/test.bck","N","/backup/testbck.log","QUIET","N","Y")
ObjectScriptObjectScript
- 第1引数:未使用のため空("")を指定します。
- 第2引数:差分バックアップのタイプ:I を指定します。
- 第3引数:バックアップ履歴のグローバルに保存される説明文を指定できます。
- 第4引数:バックアップファイル名をフルパスで指定します。
- 第5引数:ジャーナルファイルを切り替えるかどうか(Nは切り替えません)
- 第6引数:バックアップログのフルパスを指定します。
- 第8、9はジャーナルを切り替えるかどうかの指定。("Y"は、切り替える/"N"は、切り替えない。)
- 第7引数は、実行時のカレントデバイスへの出力指定
この手順で作成されるバックアップファイルは以下の通りです。
- バックアップ対象の全データベースファイル(.DAT)
- 差分バックアップファイル(1ファイル)
リストア手順
ここでは、単一のデータベースのリストアについて説明します。
システム全体のリストアについては、ドキュメントの システム全体のリストア:オンライン・バックアップまたは並行外部バックアップからのシステム全体のリストアをご参照ください
単一のデータベースのリストアでは、他のデータベースを正常な状態にするため、障害発生時のWIJを使用してInterSystems製品を開始し、ロールフォーワードを行います。
InterSystems製品が開始できない場合もありますのでその際はサポートセンターまでお問い合わせください。
この時点でInterSystems製品が開始しているとします。
1.リストア対象データベースをディスマウントします。
ほとんどデータベースをリストアする場合は、InterSystems製品を停止します。
2.バックアップ中に退避したダーティコピーのデータベースファイル(.DAT)を対象データベースにコピーします。
3.リストア対象データベースをマウントします。(またはInterSystems製品を開始します)
4.差分バックアップをリストアします。
%SYSネームスペースで^BACKUPルーチンを利用してリストアします。 バックアップリストア方法は「オンラインバックアップとリストア:8、バックアップからのリストアを実行する」をご参照ください。
5.ジャーナルリストアを行います。
バックアップ開始時に切り替わったジャーナルファイルからリストアを開始します。 ジャーナルファイルのリストア方法は「外部バックアップの仕組みとバックアップとリストア方法について:10、ジャーナルリストア」をご参照ください。