比較的遅いVPN接続の異なる端にある2つのSQLServer間にトランザクションレプリケーションを設定しました。セットアップは、サブスクリプションの初期化後に最初に行うのは、サブスクライバー側のすべてのテーブルを削除して再作成し、すべてのデータのBCPの実行を開始する、標準の「スナップショットをすぐにロードする」種類のことです。問題は、数百万行のテーブルがいくつかあり、そのプロセスがa)非常に長い時間がかかるか、 b)完全に失敗することです。Replication Monitorを調べたときに表示され続けるメッセージは、次のとおりです。
- プロセスは実行中であり、サーバーからの応答を待っています。
- クエリタイムアウトの期限が切れました
- 初期化中
次に、一括読み込みプロセスを再開しようとします(すでに読み込まれているBCPファイルをスキップします)。
私は現在、これを何度も何度も繰り返しているところに行き詰まっています。数日間稼働しています。
私の質問は次のとおりです。
ネットワーク接続が非常に遅い場合、この状況を改善するために私ができることはありますか?多分いくつかの設定か何か?プロセスがタイムアウトし続けない限り、長時間待ってもかまいません。
これを行うためのより良い方法はありますか?おそらく、バックアップを作成し、それを圧縮し、コピーしてから復元しますか?もしそうなら、レプリケーションプロセスは、トランザクションの適用を開始するときにどこを取得するかをどのように知るのでしょうか。バックアップを作成してから復元して反対側で実行するまでの間に更新が行われるためです。