この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 12586|答える: 0

[出典] SQLserverトランザクションレプリケーションは再初期化なしで新しいテーブルを追加します

[リンクをコピー]
掲載地 2014/11/26 15:51:12 | | | |
オンライン取引コピーのサブスクリプションが進行中の場合、新しいテーブルを追加する必要があります。

いくつかの方法が考えられます


1. 最も簡単な方法はもちろん再初期化です。 テーブルを追加(sp_addarticleするかコピーウィザードを使えば)右クリックで再初期化し、新しいスナップショットを生成します。
  この方法には多くの利点がありますが、欠点の一つは、レプリケーションサブスクリプションチェーンのすべてのテーブルが一度だけ再初期化され、初期化時に読み込まれたテーブルにはデータが存在しないことです。 また、より長持ちすることもあります


2. 新しいリリースを作成し、更新されたテーブルに別途コピーのサブスクリプションを登録します
  この方法は比較的安全であり、既存のレプリケーションサブスクリプションチェーンには影響を与えず、新たに追加されたテーブルは任意に初期化可能です。 欠点は、前のテーブルでリリースをビルドできないことが多く、より確実な方法は、この新しいリリースのプロジェクト(テーブル)を公式リリースのサブスクリプションチェーンに定期的に移行することです。 もちろん、問題が起きたときに新しいテーブルを解決できるという利点もあります。


3. 3段階で:
A. 新しいテーブルに読み書き可能な完全なデータベースのデータで埋める(データの一貫性が必要です)
B. ログエージェントの読みをやめてください
C. 新しいテーブルを公開購読に追加する
D. ログ読み取りエージェントを有効にする
  この方法は(方法1と比べて)オンライン公開に大きな影響を与えませんが、動作中にデータの読み込みやコピーを停止し、読み書きのレプリケーション遅延が増加します。 読み書き遅延に厳しくなければ、自分で選べます。 事前に脚本を準備することを強くお勧めします。 迅速な戦いと迅速な決断



思い浮かぶのはこれら3つの方法です

理論的には3番目のタイプが最も妥協的ですが、現在管理しているレプリケーションサブスクリプション環境の要件に関しては、方法2の方がよく使われています。 ただし、サーバーパフォーマンスにわずかな悪影響を与えるかもしれません。 しかし同時に、DBAがこの22年間のレプリケーションサブスクリプションを管理するための適切なバッファも作り出します






先の:SQLServerのバックアップはデータベースを復元します
次に:sqlserverが「%keyword%」のような扱いをするときのインデックス利用の問題
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com