|
オンライン取引コピーのサブスクリプションが進行中の場合、新しいテーブルを追加する必要があります。 いくつかの方法が考えられます
1. 最も簡単な方法はもちろん再初期化です。 テーブルを追加(sp_addarticleするかコピーウィザードを使えば)右クリックで再初期化し、新しいスナップショットを生成します。 この方法には多くの利点がありますが、欠点の一つは、レプリケーションサブスクリプションチェーンのすべてのテーブルが一度だけ再初期化され、初期化時に読み込まれたテーブルにはデータが存在しないことです。 また、より長持ちすることもあります
2. 新しいリリースを作成し、更新されたテーブルに別途コピーのサブスクリプションを登録します この方法は比較的安全であり、既存のレプリケーションサブスクリプションチェーンには影響を与えず、新たに追加されたテーブルは任意に初期化可能です。 欠点は、前のテーブルでリリースをビルドできないことが多く、より確実な方法は、この新しいリリースのプロジェクト(テーブル)を公式リリースのサブスクリプションチェーンに定期的に移行することです。 もちろん、問題が起きたときに新しいテーブルを解決できるという利点もあります。
3. 3段階で: A. 新しいテーブルに読み書き可能な完全なデータベースのデータで埋める(データの一貫性が必要です) B. ログエージェントの読みをやめてください C. 新しいテーブルを公開購読に追加する D. ログ読み取りエージェントを有効にする この方法は(方法1と比べて)オンライン公開に大きな影響を与えませんが、動作中にデータの読み込みやコピーを停止し、読み書きのレプリケーション遅延が増加します。 読み書き遅延に厳しくなければ、自分で選べます。 事前に脚本を準備することを強くお勧めします。 迅速な戦いと迅速な決断
思い浮かぶのはこれら3つの方法です 理論的には3番目のタイプが最も妥協的ですが、現在管理しているレプリケーションサブスクリプション環境の要件に関しては、方法2の方がよく使われています。 ただし、サーバーパフォーマンスにわずかな悪影響を与えるかもしれません。 しかし同時に、DBAがこの22年間のレプリケーションサブスクリプションを管理するための適切なバッファも作り出します
|