このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

InterBase XE7オンラインダンプでバックアップを実装する方法

Dmitry Kuzmenko、2016年9月8日

InterBaseはバージョン2007以降、オンラインダンプ(オンラインでのデータベースファイルコピー)をサポートしています。gbak -b/-cの代わりに、これによりコピー後にすぐ使用可能なデータベースを取得でき、バックアップから「リストア」する(データベースではないもの)必要がありません。オンラインダンプは非常に高速で、オペレーティングシステムによるファイルコピーとほぼ同じです。

以下のコマンドを使用してデータベースのオンラインダンプを作成します。

gbak -d [オプション] データベース ターゲット

(完全なダンプの説明はドキュメント(Doc\OpGuide.pdf)またはこちらにあります)

データベースファイルと同様に、ターゲットには任意の名前と拡張子を付けることができます。このコマンドの結果は、元のデータベースと同等ですが読み取り専用モードのダンプファイルになります。

このコマンドの初回実行時間は、ソースデータベースのスキャン(読み取り)時間とターゲットファイルへの書き込み時間です。

ターゲットが読み取り専用モードである間、ターゲットはデータベースファイルにリンクされています。最初のダンプでは、データベースファイル全体が読み取られ、ターゲットにコピーされます。2回目以降は、変更されたページのみがターゲットに書き込まれます。これは「増分ダンプ」と呼ばれます。

重要! InterBase XE7は、繰り返しダンプコマンドを実行するたびに(もちろん同じファイル名で)、データベースの変更されたページのみを読み取り、ターゲットに書き込みます。XE7より前の他のバージョンは、ソースデータベース全体を読み取ります。したがって、パフォーマンスが異なり、XE7の方がはるかに高速です。ソースデータベースで変更されたページがない場合、XE7の増分ダンプは約1秒かかりますが、InterBase2007-XE3はデータベースファイル全体を読み取るのに必要な時間がかかります。時間はソースデータベースのサイズとストレージ速度によって異なります。たとえば、ストレージ速度が約400MB/秒の場合、100GBのデータベースは250秒(4分10秒)でスキャンされます。

注記。 InterBase XE7は、XE7(ODS 16)、XE/XE3(ODS 15)、2009(ODS 13)のデータベースファイル形式をサポートしています。前述のスマートスキャン機能は、XE7(ODS 16)データベース形式でのみ機能します。

ターゲットを読み取り/書き込みモード(通常モード)に変更する必要がある場合は、次のコマンドを使用します。

gfix ターゲット -mode read_write

ただし、その後ターゲットはデータベースへのリンクを失い、ターゲットが「別の」データベースと見なされるため、gbak -d データベース ターゲットの後続実行は不可能になります。

増分ダンプの代わりにターゲットを完全に上書きする場合は、-ovオプションを使用します。

gbak -d -ov データベース ターゲット

ダンプのダンプ

ダンプのダンプの最初の実行は機能しますが、その後の増分は機能しません。たとえば、最初に

gbak -d データベース ターゲット1

ここでは、読み取り専用モードの完全ダンプデータベースとしてターゲット1を取得します。

次に、

gbak -d ターゲット1 ターゲット2

ご覧のとおり、ダンプのダンプを作成します。そして、このコマンドはターゲット1をターゲット2にコピーします。両方のターゲットは読み取り専用モードになります。しかし、これらの2つのコマンドを再度繰り返しても、データベースからターゲット1に送られた変更はターゲット2にコピーされません。したがって、ターゲット2は最初の初期コピー後の状態のままです。また、エラーメッセージや警告メッセージは一切表示されません。

したがって、ダンプのダンプを作成したい場合は、完全ダンプのみを使用する必要があります。

gbak -d -ov ターゲット1 ターゲット2

ターゲット2がターゲット1のソースで書き込まれる(そして上書きされる)ことを保証するために、-ovオプションは必須です。

バックアップスキーム1

異なる時間間隔でのダンプの例

gbak -d データベース ターゲット

たとえば、1時間ごとに実行されます。ここでは、本番ソースデータベースと1時間遅れの「バックアップ」コピーであるターゲットがあります。

また、さらに24時間ごとに実行できます。

gbak -d データベース ターゲット2

ここでは、本番データベース、1時間遅れのターゲットコピー、24時間遅れのターゲット2コピーがあります。

1つのデータベースから任意の数のダンプを作成できます。

言うまでもなく、ターゲットダンプは、実際のデータベースを参照する必要のないタスク(レポート、分析など)のために、任意の目的で読み取り専用データベースとして使用できます。

長所:各ダンプを個別にスケジュールできます。

短所:最新のダンプと最も古いダンプの間にラグがあります。

バックアップスキーム2

異なるターゲットへの順次ダンプ。この場合、指定された時間間隔ごとに次のコマンドを1つ実行するように、何らかのスケジューラ(OSまたはカスタム)を調整する必要があります。

gbak -d データベース ターゲット1

gbak -d データベース ターゲット2

gbak -d データベース ターゲット3

これらのコマンドの間隔を1時間にすると、次のようなダンプ(バックアップ)が作成されます。

ターゲット1は12:00、ターゲット2は13:00、ターゲット3は14:00。次のダンプ実行では、ターゲット1が15:00に更新され、以降同様です。結果として、過去3時間分のデータベースのコピーが得られます。

長所:元のデータベースに近い数時間分のダンプがあります。

短所:これらのコマンドのスケジュールが少し難しい。つまり、この例ではダンプコマンドを正確な時刻にスケジュールする必要があります。

ターゲット1へのダンプ:00:00、03:00、06:00…

ターゲット2へのダンプ:01:00、04:00、07:00…

ターゲット3へのダンプ:02:00、05:00、08:00…

まとめ

Gbak -dは、ローカルストレージへのダンプとネットワーク経由のダンプに使用できます。増分ダンプは変更されたページのみをターゲットに送信するためです。したがって、ターゲットをリモートネットワークストレージに配置できます。ただし、もちろん、ローカルストレージと同等の速度を実現するには、ネットワークに十分な帯域幅が必要です。そうでない場合、ターゲットへの書き込みが遅くなります。

オンラインダンプは、データベースのオンラインバックアップコピーを作成するツールとしてだけでなく、システムの「水平スケーリング」を行い、本番、レポート、分析アプリケーションの負荷を分散するツールとしても使用できます。

オンラインダンプはオンラインデータベースコピーを取得する最速の方法(gbak -b/-cの代わりに)ですが、ダンプはページ単位で動作するため、データベースが破損している場合、ページ上の一部の損傷をスキップする可能性があります。したがって、従来のgbak -b/-cによるデータベース整合性チェックは引き続き必要ですが、以前よりは頻度を減らすことができます。