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