1

比較的遅いVPN接続の異なる端にある2つのSQLServer間にトランザクションレプリケーションを設定しました。セットアップは、サブスクリプションの初期化後に最初に行うのは、サブスクライバー側のすべてのテーブルを削除して再作成し、すべてのデータのBCPの実行を開始する、標準の「スナップショットをすぐにロードする」種類のことです。問題は、数百万行のテーブルがいくつかあり、そのプロセスがa)非常に長い時間がかかるか、 b)完全に失敗することです。Replication Monitorを調べたときに表示され続けるメッセージは、次のとおりです。

  • プロセスは実行中であり、サーバーからの応答を待っています。
  • クエリタイムアウトの期限が切れました
  • 初期化中

次に、一括読み込みプロセスを再開しようとします(すでに読み込まれているBCPファイルをスキップします)。

私は現在、これを何度も何度も繰り返しているところに行き詰まっています。数日間稼働しています。

私の質問は次のとおりです。

  1. ネットワーク接続が非常に遅い場合、この状況を改善するために私ができることはありますか?多分いくつかの設定か何か?プロセスがタイムアウトし続けない限り、長時間待ってもかまいません。

  2. これを行うためのより良い方法はありますか?おそらく、バックアップを作成し、それを圧縮し、コピーしてから復元しますか?もしそうなら、レプリケーションプロセスは、トランザクションの適用を開始するときにどこを取得するかをどのように知るのでしょうか。バックアップを作成してから復元して反対側で実行するまでの間に更新が行われるためです。

4

2 に答える 2

3

はい。初期スナップショットは手動で適用できます。

私にはしばらく時間がかかりましたが、(BOL への) リンクにはサブスクライバーをセットアップするための代替手段があります。

編集: BOL ハウツーから、バックアップからトランザクション サブスクライバーを初期化する

于 2008-12-05T21:34:28.423 に答える
1

SQL 2005 には、スナップショットの合計サイズを削減できる「コンパクト スナップショット」オプションがあります。ネットワーク経由で適用されると、スナップショット アイテムは圧縮されてサブスクライバーに「移動」し、そこで展開されます。

標準スナップショットと圧縮スナップショットのサイズを比較することで、潜在的な速度向上を簡単に把握できると思います。

ちなみに、マージレプリケーションについても(かなり)似たような質問がこちらにありますが、スナップショットレベルでは違いはないと思います。

于 2008-12-07T17:14:10.443 に答える