SQL Remote 用の効率的な抽出手順の設計

概要:この文書では、複数のデータベースまたはリモート・データベースを非常に稼働率の高い統合サーバから効率的に抽出する方法を説明します。

複数のデータベースまたはリモート・データベースを、一日中非常に稼働率の高い統合サーバから効率的に抽出する方法は、次のとおりです。

1. リモート・ユーザを作成し、リモート・ユーザのサブスクリプションをすべてのパブリケーションに作成します。

2. checkpoint 文を発行します。

3. 統合サーバを停止し、サーバが正常に停止したかどうかを確認します。

4. dbbackup -c と自分の接続文字列を使用して、統合データベースのコピーを作成します。 これで、データベース・ファイルとログ・ファイルのバックアップ・コピー (c:\back\yourdatabasefilename.db と c:\back\yourdatabasefilename.log など) が作成されます。

5. 統合サーバを起動します。

6. ライブ・データベースからサブスクリプションを開始します。リモート・ユーザのすべてのサブスクリプションを 1 つのトランザクションで開始するには、REMOTE RESET 文 (Adaptive Server Anywhere (SQL Anywhere)の場合) を使用します。サブスクリプションは、リモート・ユーザごとに開始します。REMOTE RESET 文は、START SUBSCRIPTION 文の代わりに使用できます。 サブスクリプションの開始後は、サブスクライバにはデータベースがなく、まだメッセージを受信しませんが、メッセージはすべてのサブスクライバに送信されます。

7. データベースのコピーからリモート・データベースを抽出します。データベースがコピーであるため、ロックや同時実効性の問題は発生しません。リモート・データベース数が多い場合は、このプロセスに数日かかることがあります。

作成された各リモート・データベースは最新ではありませんが、そのユーザ (dbremote) は、ライブの統合データベースから送信されたメッセージの受信と適用により、データベースを最新にできます。