2016-04-24 7 views
0

状況は次のとおりです。私たちは、データウェアハウスを作成するソースとして使用する当社のコアOLTPシステムの1つからレプリケートされたデータを受け取るSQL Serverレプリケーションサブスクライバデータベースを持っています。 (また、OLTPデータベースは第三者ベンダーによってホストされています)。レプリケーションを中断することなく、SQL Serverレプリケーションサブスクライバデータベースから特定のデータを削除できますか?

サブスクライバのパフォーマンスを向上させるため、私たちが確立したデータ保持制限よりも古いデータ行を削除したいと考えています。パブリッシャデータベースでこれを行うことはできません。これはコストがかかりすぎるため(ベンダー)、フロントエンドを使用して他のビジネスユニットを悪化させる可能性があるため、削除を複製してください。

(a)何らかの理由でレプリケーションを中断したり、(b)レプリケートして削除済みの行を再投入しなくても、サブスクライバデータベースでデータ保持の削除を実行できるかどうかを知りたいと思います。これは可能ですか?

答えて

0

はい、可能です。サブスクライバで削除した行はそのまま残ります。最悪の場合、DELETEまたはUPDATEステートメントが複製され、何も削除/更新されない(これはエラーではない)ため、レプリケーションは中断しません。

サブスクリプションを再初期化する必要がある場合(さまざまな理由で必要になる場合があります。たとえば、サブスクライバでデータ破損が発生した場合や、* CENSORED *が挿入されてはならないデータを挿入する場合など)複製が中断した場合)、削除された行を含む新しいスナップショットが生成され、その複製がサブスクライバに再び表示されます。削除する行がたくさんある場合(大抵の場合、バッチ処理することによって)、巨大な負荷が発生しないように、削除を再実行してください。

関連する問題