Real-Time Backup 配置モデル
Real-Time Backup の配置モデル
以下のトピックでは、Real-Time Backup レプリケーションの配置方法について説明するほか、レプリケートされたデータベースを復元する必要が生じた場合などの障害回復手順についても説明します。
Real-Time Backup 構成
このトピックでは、DataExchange Real-Time Backup の 2 種類の構成について説明します。
1 つ目の方がはるかによく使用されます。
2 台のマシン構成
2 台のマシン構成では、Real-Time Backup は Zen データベースからスタンバイ サーバーへデータをリアルタイムにレプリケートします。システム障害時に、クライアントをスタンバイ サーバーに割り振ることができます。このタイプの構成を用いると、DataExchange ではディスク ベースのレプリケーション ツールで起こりがちな、壊れたデータのレプリケート、ウイルスの感染拡大、必要なデータの削除などのエラーを回避することができます。DataExchange によってスタンバイ サーバーを作動させれば、システム障害、ハードウェア障害、およびサイト災害時に、データの損失およびダウン タイムが大幅に軽減されます。
次の図は、一方向のレプリケーション バックアップを示しています。
図 1 2 台のマシンを使用した Real-Time Backup
このシナリオでは、サーバー A はバックアップ サーバーにネットワーク接続されています。サーバーは、それ独自のデータベースである dbA を実行しています。DataExchange は dbA データベースのコピーをスタンバイ バックアップ サーバーに保持し、サーバー A でデータベースの変更が発生すると、サーバー A とレプリケートします。
2 台のマシン間の単純な一方向レプリケーション配置が、Real-Time Backup の標準的な使用例です。図
1 に示すように、このシナリオではプライマリ サーバーとバックアップ サーバーを必要とします。
多対 1 構成
Real-Time Backup で使用されるもう 1 つの構成は、異なる場所にある何台かのデータベース サーバーが、複数のバックアップ データベースを管理する 1 台のバックアップ用スタンバイ サーバーにデータをレプリケートする構成です。これは、多対 1 構成と呼びます。次の図はこの構成を示しています。
図 2 対 1 構成の Real-Time Backup
このシナリオでは、3 つのサーバー A、B、C があり、それぞれがバックアップ サーバーにネットワーク接続されています。各サーバーはそれぞれ独自のデータベース dbA、dbB、dbC を実行しています。DataExchange は各データベースのコピーをスタンバイ バックアップ サーバーに保持し、サーバー A、サーバー B、およびサーバー C で発生した変更をそれらのバックアップ コピーにレプリケートします。
DXdeploy を使用して多対 1 構成で Real-Time Backup を実装する方法については、
DXdeploy を使用した多対 1 の配置を参照してください。
DXdeploy を使用した多対 1 の配置
多対 1 構成では、複数のサイトが 1 つのサイトにデータをバックアップします。このような構成の第 1 サイトにふさわしいのは、多くの場合、バックアップの場所です。次の例のシナリオを考えてみましょう。
図 3 複数サイトのデータのバックアップ
それぞれにネットワークを有する A、B、C という 3 つのサーバーがあります。各サーバーはそれぞれ独自のデータベース dbA、dbB、dbC を実行しています。ここに、各データベースの複製されたコピーをすべて 1 つのバックアップ マシンに保持するというソリューションを導入するとします。
このようなシナリオの場合、第 1 サイトとして最も合理的な選択はバックアップの場所です。なぜでしょうか。理由の 1 つは、レプリケーション ネットワークが第 1 サイトを 1 つしか持てないことです。さらに、バックアップの場所は以下の条件を満たす必要があります。
•各パートナー サイトへのネットワーク接続を含んでいる。
•一連のデータ全部のための物理ストレージを提供できる。
•ファイル コピーの必要が最も少ない場所として適している。レプリケーション デザインでは、いくつかのファイルが各パートナー サイトにコピーされることを必要とします。
次の図は、上の図と同じ構成で、DataExchange のインストール後の状態を示しています。パートナー サイトがデータのソースとなっていて、第 1 サイトがバックアップの場所となっていることに注目してください。
図 4 DataExchange がインストールされた多対 1 構成
メモ:多対 1 の逆の構成では、1 つの第 1 サイトのソースが複数のパートナー サイトのバックアップにレプリケートされます。
開始の前に
この作業を実行する前に、第 1 サイトとパートナー サイトに DataExchange をインストールしておく必要があります。
ヒント: この例を試した後にデータベースを元の状態に復元できるよう、操作を始める前に Demodata データベース ファイルのコピーを保存しておくことをお勧めします。
説明のため、この作業では以下のことを前提としています。
•図
3 に示すように、サーバー A(ServerA)、サーバー B(ServerB)、およびサーバー C(ServerC)の 3 つのパートナー サイトがあること。
•Demodata は 3 つのパートナー サイトすべてのアプリケーション データベースであること。
注意: データベースを使用するすべてのアプリケーションは、この配置方法を使用する前にシャット ダウンしておく必要があります。
DXdeploy を使用した配置
►データベースを多対 1 構成で配置するには
1 レプリケーション可能にするデータベースがアプリケーションからアクセスされていないことを確認してください。
たとえば、Demodata は Myapp.exe で使用されるデータベースであるとします。Demodata の配置を行う間、Myapp が Demodata にアクセスしないようにしてください。
2 バックアップ(第 1)サイトで、テキスト エディターを使用して XML 記述子ファイル EXPRESS.XML を開きます。64 ビット システムでは、このファイルは C:\Program Files (x86)\Actian\Zen\Replication\Docs にあります。
3 XML 記述子ファイルを編集して、ServerA とバックアップ(第 1)サイトの適切な情報を指定します。
パートナー サイトごとに異なる記述子ファイルを使用して編集することに注意してください。バックアップ(第 1)サイトは共有の場所であるため、記述子ファイル内のいくつかの情報は、そのファイルを使用するたびに一意である必要があります。これについて以下の表で説明します。
XML 記述子ファイルの属性 | パートナー サイトごとに一意である必要性 | 注記 |
---|
Project | Yes | |
Network | Yes | |
Release | No | |
First ServerName | No | バックアップ(第 1)サイトの名前です。各パートナー サイトで共通です。 |
First Site DSN | Yes | DSN もバックアップ(第 1)サイトで一意である必要があります。 |
First Site DataDirectory | Yes | バックアップ(第 1)サイト上の、各パートナー サイト固有のバックアップの場所です。 |
Relative Include Path | No | たとえば、各パートナー サイトから "*.mkd" ファイルを含めることができます。 |
Absolute Include Path | Yes | 絶対パスはバックアップ(第 1)サイトで競合しないようにする必要があります。たとえば、ServerA、ServerB、および ServerC のそれぞれが同じ絶対データ パス C:\mydata\table1.mkd を使用しているとします。このパスはバックアップ(第 1)サイトに 1 つしか存在できません。これにより競合が発生します。異なるパートナー サイトの table1.mkd ファイルがバックアップ(第 1)サイトで上書きされるからです。 |
Partner ServerName | Yes | |
Partner DSN | No | 各パートナーは、そのパートナー サイト上で一意であれば同じ DSN を使用することができます。 |
Partner DataDirectory | No | バックアップ(第 1)サイトのバックアップの場所は、パートナー サイト上のデータの場所と同じである必要はありません。 |
4 EXPRESS.XML を任意の場所に ServerA.xml として保存します。この例では、C:\ と仮定します。
5 Demodata ディレクトリを ServerA からバックアップ(第 1)サイト上の希望するバックアップ フォルダーにコピーします。
バックアップの場所は一意で、かつ、XML 記述子ファイルに指定された第 1 サイトの DataDirectory の場所と一致する必要があります。この作業では、バックアップの場所が C:\Demodata_Backup_ServerA であると仮定します。
6 バックアップ(第 1)サイトでコマンド プロンプトを開き、次のコマンドを入力します。
dxdeploy /Site=First C:\ServerA.xml
7 Enter キーを押します。
DXdeploy はその操作を完了すると画面に高レベルな状態メッセージを表示します。DXdeploy が完了すると、コマンド プロンプトが再度表示されます。
8 DXdeploy が完了したら、以下のように入力します。
dxdeact <First Site DSN>
<First Site DSN> は第 1 サイトの ServerA.xml で指定した DSN です。
9 Enter キーを押します。
10 DataExchange ディレクトリの内容をバックアップ(第 1)サイトの C:\Demodata_Backup_ServerA から ServerA の Demodata ディレクトリにコピーします。
メモ:多対 1 設定の場合は、バックアップ(第 1)サイトで作成されたレプリケーション テンプレートは無視してください。その代わりに、DataExchange ディレクトリにあるアクティブ化されたデータベースのファイルを使用します。
11 ServerA.xml をバックアップ(第 1)サイトから ServerA にコピーします。
12 バックアップ(第 1)サイトでコマンド プロンプトを開いて、以下のように入力します。
dxact /FIRSTSITE <First Site DSN>
<First Site DSN> は第 1 サイトの ServerA.xml で指定した DSN です。
13 Enter キーを押します。
14 ServerA でコマンド プロンプトを開き、以下のように入力します。
dxdeploy /Site=Partner C:\ServerA.xml
15 Enter キーを押します。
DXdeploy はその操作を完了すると画面に高レベルな状態メッセージを表示します。DXdeploy が完了すると、コマンド プロンプトが再度表示されます。
16 ServerA でレプリケーション スケジュールを設定します。
レプリケーション スケジュールの設定方法については、
レプリケーション スケジュールの管理を参照してください。
17 アプリケーションをオンラインに戻します。
18 ほかのパートナー サイトすべてで手順
1 から
17 を繰り返します。
ServerB で手順を繰り返す場合は、ServerA を ServerB に置き換えます。ServerC で手順を繰り返す場合は、ServerA を ServerC に置き換えます。
障害回復
このトピックでは、1 つのレプリケーション サイトの障害からの回復方法を説明します。ここでは、プライマリ サイトで障害が発生し、一時的にバックアップ サイトへ生産を切り替える必要が生じたと仮定します。プライマリ サイトが再度準備できたら、プライマリ サイト/バックアップ サイトのレプリケーション ネットワークを再確立する必要があります。
もちろん、障害はバックアップ サイトで起こることもあります。その場合も、プライマリをバックアップに置き換えるだけで、この情報が適用されます。説明を簡単にするため、また、障害回復で一般的に使用される用語と一致させるため、このトピックではプライマリ サイトとバックアップ サイトと呼ぶことにします。これらは、それぞれ第 1 サイトとパートナー サイトであると考えてください。
ここでの情報は、リアルタイム バックアップまたは一方向の状況のみに適用されます。リアルタイム バックアップの配置の説明については、
配置処理を参照してください。一方向の配置の作業例については、
DXdeploy を使用した一方向の配置を参照してください。
フェールオーバー
障害が発生した場合、ユーザーがバックアップ サイトにアクセスするように切り替える必要があります。別のサーバーへの切り替えを行うには、ご自身の会社に適した方法を選んでください。それらの方法は多岐に渡っているため、このマニュアルで扱う範囲を超えています。
バックアップ サイトには現在のデータが存在するので、アプリケーションはそれまでと同様に機能し続けます。
ユーザーがバックアップ サイトにアクセスしたら、第 1 サイトを再確立します。プライマリ サイトのデータに関する 2 つの障害シナリオを立てられます。
•プライマリ サイトは壊滅的に破壊され、そこからのデータの回復はまったく不可能である。
•プライマリ サイトはサービスを再開してそのデータも使用できるが、最新の状態ではない。
データの回復不能
プライマリ サイトの再確立を行うには、以下の手順を使用します。
►新しいプライマリ サイトを設定するには
1 Zen データベース製品を新しいマシンにインストールします。
2 DataExchange を新しいマシンにインストールします。
そのシステムが以前第 1 サイトだった場合は、第 1 サイトをインストールします。パートナー サイトであった場合は、パートナー サイトをインストールします。
3 以前インストールされていたアプリケーションを新しいシステムにインストールします。
これにより、新しいマシンにアプリケーション データベースの最新のコピーが作成されます。
4 バックアップ サイト上のレプリケーション データベースに使用されているのと同じデータ ソース名(DSN)で、プライマリ サイト上に DSN を作成します。
5 バックアップ サイト上のアプリケーションをオフラインにします。
必ず、プライマリ サイトとバックアップ サイトの同期をとるまではデータベースにアクセスされないようにしてください。
6 バックアップ サイトのレプリケーション データベースを非アクティブにします。
7 バックアップ マシンから以下のファイルをプライマリ マシンの同じ場所にコピーします。
•すべてのユーザー データベース テーブル。
•すべてのデータ辞書ファイル(DDF)。
•すべてのレプリケーション制御テーブル。各データ テーブルの名前の先頭には、プレフィックス PDC が付いています。デフォルトの場所は C:\ProgramData\Actian\Zen\<データベース名>\DX_<プロジェクト名> です。
•次の一覧に示される、すべてのレプリケーション システム テーブル。これらのデフォルトの場所は C:\ProgramData\Actian\Zen\Replication\Data です。
dacthist.mkd | dactsite.mkd | dacttbl.mkd |
dcmd.mkd | dcmdsite.mkd | dcnf.mkd |
dfkey.mkd | dfragf.mkd | dfragi.mkd |
dgrp.mkd | didb.mkd | didbdef.mkd |
dkey.mkd | dlang.mkd | dmsg.mkd |
dmsglang.mkd | dpkey.mkd | dprm.mkd |
dprmgrp.mkd | dprmtyp.mkd | dqueue.mkd |
dsched.mkd | dschema.mkd | dset.mkd |
dsfsite.mkd | dsite.mkd | dsiteext.mkd |
dsitelnk.mkd | dsiteset.mkd | dsort.mkd |
dtblchg.mkd | dtrn.mkd | dusr.mkd |
dusrgrp.mkd | dusrprf.mkd | dver.mkd |
dwsts.mkd | | |
8 プライマリ サイトのレプリケーション データベースをアクティブにします。
9 バックアップ サイトのレプリケーション データベースをアクティブにします。
dxact を参照してください。バックアップ サイトをアクティブにすると、プライマリ サイトとの初期レプリケーションが実行されることに注意してください。初期レプリケーションは完全なレプリケーションで、2 台のマシン間ですべてのデータが同期化されます。
これで、プライマリ サイトとバックアップ サイトは同一データを保持します。
10 プライマリ サイトからバックアップ サイトへのレプリケーション スケジュールを再作成してください。
11 ユーザーがプライマリ サイトにアクセスするように切り替え、アプリケーションをオンラインに戻します。
回復可能だが最新ではないデータ
プライマリ サイトの再確立を行うには、以下の手順を使用します。
►既存のプライマリ サイトをレプリケーションに戻すには
1 プライマリ マシンをオンラインに戻します。
2 アプリケーションをオフラインにします。
必ず、プライマリ サイトとバックアップ サイトの同期をとるまでは、データベースにアクセスされないようにしてください。
3 プライマリ サイトのレプリケーション スケジュールをすべて削除します。
4 プライマリ サイトとバックアップ サイトの両方のレプリケーション データベースを非アクティブにします。
5 プライマリ サイトのレプリケーション データベースをアクティブにします。
6 バックアップ サイトのレプリケーション データベースをアクティブにします。
dxact を参照してください。バックアップ サイトをアクティブにすると、プライマリ サイトとの初期レプリケーションが実行されることに注意してください。これは完全なレプリケーションで、2 つのシステムですべてのデータが同期化されます。
これで、プライマリ サイトとバックアップ サイトは同一データを保持します。
7 プライマリ サイトからバックアップ サイトへのレプリケーション スケジュールを再作成してください。
8 アプリケーションをオンラインに戻します。