3

1 年前に海外でのマージ レプリケーションを開始しましたが、今のところすべて順調に進んでいます。私の問題は、システムに非常に多くのデータがあるため、サブスクライバーのサーバーのいずれかがクラッシュすると大惨事になることです: 標準的な方法でサブスクリプションを再初期化するには数日かかります (私たちの接続は確かに遅いですが、すでに非常に高価です)! 私がフォローアップしているアイデアの中には、次のようなものがあります。

  1. 元のデータベースのコピーを作成し、それをフリーズし、プレーンでファイルをサブスクライバーに送信し、スナップショットを使用せずにレプリケーションを開始します。これは、古いバージョンの SQL で伝統的に行われてきたことですが、私には少し面倒に思えます:パブリッシャーのデータを読み取り専用モードにし、操作が完了するまですべてのレプリケーションを停止する必要があります。
  2. データのスナップショットを作成し、スナップショット ファイルを海外に送信し、サブスクライバーにインストールして、レプリケーション プロパティで新しいスナップショットの場所を別の場所として指定します。これは私には公平に思えます (進行中のレプリケーションを中断する必要はなく、データのフリーズもありません) が、この点では、Microsoft のヘルプは役に立ちません。

そんな状況を経験したことがある方もいらっしゃると思います。あなたの選択は何ですか?

編集:もちろん、「あなたのアイデアを試してみませんか」と言うことができますが、それには数時間かかります(SQLサーバー、仮想マシン、およびそのすべての複数のインスタンス...)、そして私それをやった人が自分の考えを説明するのに2分しかかからないだろうと思っていました. そして、誰かが私に何時間ものハードワークを割いてもらうために、2分間の時間を割いてくれるなら、私は最高に幸せです...

4

2 に答える 2

1

カリフォルニア州ロサンゼルスから中国にデータをレプリケートするときに、これと似たようなことをしなければなりませんでした。通常の方法を使用すると、スナップをロードするのに 44 日かかります。

私が行ったことは、スナップショットへのローカル パスを使用するように SQL レプリケーションを構成することでした。次に、トランザクション ジョブを無効にしました (この場合はマージ ジョブ)。次に、スナップを実行しました。スナップを圧縮して、ファイルをカリフォルニアから中国に FTP 送信しました。彼らが中国に到着したとき、私はそれらを解凍し、カリフォルニアで使用したのと同じフォルダー パスに入れました。

次に、中国のサーバーでコマンド ラインから distrib.exe を実行しました。これにより、中国のテーブルにデータがロードされました。スナップがロードされたら、中国のサーバーでディストリビューターをシャットダウンし、カリフォルニアのサーバーで通常のディストリビューターを起動しました。

この方法では、1 か月以上かかるのではなく、約 28 時間しかかかりませんでした。

データが宛先に到達するまでに数日以上かかる場合は、パブリケーションを編集して、キューに入れることができるデータの量を増やす必要があります。そうしないと、サブスクライバーがタイムアウトになり、新しいスナップショットを作成する必要があります。取られました。

于 2009-01-06T08:01:26.397 に答える
1

私たちはちょうどこのようなことを経験しましたが、それはきれいではありません. 関連するサーバーはすべてローカルでしたが、それでも長い時間がかかりました。

さらに厄介なことに、少なくとも SQL 2000 では、圧縮されたキャブが 4 ギガを超えると、スナップショットが失敗します。

私が提供できる最善のアドバイスは、各サイトで適切なバックアップが利用可能であることを確認することです. これにより、少なくともデータを加入者に手渡す必要がなくなります。

于 2008-09-24T21:01:05.000 に答える