2017-03-11 9 views
0

私はサーバー上に300 GBのMSSQL 2016運用データベースを持っています。私はこのデータベースを別のサーバーにコピーして報告する必要があります。SQLからSQLへのデータ複製

本番データベースでは、通常のクラスター化インデックスまたは非クラスター化インデックスが存在し、毎日の読み書き操作が行われています。

報告側では、列ストアインデックスと同じデータベーステーブルを使用しますので、レポートクエリの結果をライブデータベースよりも速く得るためにoppurtunityを取得します。

アイデアは、私はこれらの2つのデータベースを複製し、同期でそれらを保つために適切な方法を見つけることができませんでしまで、大丈夫だった(最大で同じように。5 mntsトレランス)

私はいくつかのログ配布トポロジを試してみましたが、didntの仕事よく

これらの2つのデータベース間でSQLレプリケーションを試しましたが、%100のデータ整合性が得られず、テーブルに列を追加または削除するときや新しいテーブルを報告データベース等

PS。私は同期して(データベースのレポートの横に)私のprodデータベースの1つのレプリカを持っていると考えています(ログ配送はセカンダリのみ)。したがって、適切なトポロジを見つけることができれば、二次レプリケートされたデータベース(1-プロード、1-レプリカ、1-レポーティング)の別のサーバー(完全に3つのサーバー)を作成する準備ができました。

私の場合は?

ありがとうございます。

答えて

0

DDLの変更を複製するには、ログ配布または何らかのミラーリングを使用する必要があります。つまり、読み取り専用のデータベースで同じデータベース(ページレベルまで)コピーのみ。異なるインデックス定義を持つことはできません。

インデックス定義が異なるようにするには、データを複製する方法が必要です。手動のスクリプトがおそらく最適ですが、新しいレコードの追跡は難しいです、更新され、特に削除されます(rowversion列を追加し、すべてのテーブルの主キーが有効になるかどうかを確認する)。また、本番データベースからのDDL変更を読み取り専用コピーに手動で複製する必要があります。それに合わせてデータレプリケーションスクリプトを更新します。

利用可能なミラーリング技術(ログ配布、AGは読み取り専用ミラーなど)を使用し、データベースを正確に同一に保つことをお勧めします。

関連する問題