次の手順を使用して、複数のリモート・データベースを効率的に作成します。
統合データベースのコピーを作成し、統合データベースからリモート・ユーザのサブスクリプションを開始します。次に例を示します。
サブスクリプションを開始し、その後直ちに統合データベースと Message Agent (実行されている場合) を停止します。
統合データベースのコピー作成と同時に、サブスクリプションを開始する必要があります。データベースのコピー作成とサブスクリプション開始の間に発生したオペレーションはすべて失われ、これが原因でリモート・データベースでのエラーが発生する恐れがあります。統合データベースでサブスクリプションを開始すると、サブスクライバのデータベースがまだ存在しない場合でも、メッセージをパッケージしてサブスクライバに送信できます。START SUBSCRIPTION 文 [SQL Remote]とサブスクリプションの開始を参照してください。
1 つのトランザクション内でいくつかのサブスクリプションを開始するには、REMOTE RESET 文を使用します。REMOTE RESET 文 [SQL Remote]を参照してください。
統合データベースをコピーします。
デフォルトでは、抽出ユーティリティ (dbxtract) とデータベース抽出ウィザードはともに、独立性レベル 3 で実行されます。この独立性レベルでは、抽出されたデータベース内のデータは、データベース・サーバのデータと一致しますが、他のユーザがデータベースを使用できなくなる場合があります。統合データベースのコピーに対してリモート・データベースを抽出することをおすすめします。
統合データベースを再起動します。統合データベースで Message Agent が実行されていた場合は、Message Agent も再起動します。
統合データベースのコピーからリモート・データベースのスキーマを抽出します。データベースはコピーであるため、ロックと同時性の問題は発生しません。ただし、多数のリモート・データベースがある場合は、この処理に時間がかかることがあります。
リモート・データベースのスキーマを抽出する場合、次のオプションを選択します。
リモート・データベースのスキーマのみを抽出する。
デフォルトでは、抽出ユーティリティ (dbxtract) とデータベース抽出ウィザードはともに、各ユーザ用のスキーマとデータを含め、一度にデータベースを 1 つだけ処理します。ただし、ほとんどの配備シナリオでは、各リモート・データベースで使用するデータは異なりますが、スキーマは同じです。抽出ユーティリティ (dbxtract) またはデータベース抽出ウィザードを使用してユーザごとにスキーマとデータの両方を抽出すると、同じスキーマが繰り返し抽出されることになります。抽出ユーティリティ (dbxtract)の -n オプションを参照してください。
プライマリ・キーを基準にデータを順序付ける。
デフォルトでは、各テーブルのデータはプライマリ・キーを基準に順序付けられます。データがプライマリ・キーを基準に順序付けられると、リモート・データベースへのデータのロード処理が高速になります。抽出ユーティリティ (dbxtract)の -u オプションを参照してください。
reload.sql ファイルを使用して空のリモート・データベースを作成します。このデータベース・ファイルをコピーして必要な数のリモート・データベースを作成します。再ロード・ファイルへのリモート・データベースの抽出を参照してください。
リモート・データベースごとに、各リモート・ユーザに固有の SQL Remote 定義を定義します。ユーザ・パーミッションを参照してください。
リモート・ユーザごとに、統合データベースからユーザに対応するデータのみを抽出します。抽出ユーティリティ (dbxtract)の -d オプションを参照してください。
各リモート・ユーザのデータを対応するリモート・データベースにロードします。
各リモート・データベースが作成されると、その情報はライブ統合データベースより古いものになります。
しかし、Message Agent (dbremote) を実行すると、各ユーザはライブ統合データベースから送信されたメッセージを受信して適用し、そのリモート・データベースを最新の情報に更新できます。Message Agent (dbremote) の概要を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |