web-dev-qa-db-ja.com

SQL Serverデータベースの読み取り専用コピー

メインデータベースがあり、一日中、メインアプリケーション(Windows)を介してこのDBを挿入/更新します。メインDBからのコンテンツを表示することを想定した別のWebアプリケーションがありますが、代わりに新しいDBを作成し、手動またはコードから終日更新しています。

あるDBを別のDBに更新するこの手動/コードプロセスを取り除きたいのですが。オプションは何ですか? 2番目のDBを削除して、メインDBから読み取るだけですか?レプリケーション?ミラーリング?

リアルタイムで更新する必要があります。おかげで、

4
user570715

読み取りたいデータのサブセットがある場合は、レプリケーションを実装できます。レプリケーションはサブスクライバーに記事を公開します。これは、最近のデータである必要があるデータのサブセットに最適な方法です。

wholeデータベースの読み取り専用コピーを探していて、データにリアルタイムの精度が必要ない場合は、ジョブを使用して毎朝スナップショットを作成できます。こうすることで、OLAPをスナップショットに対して実行できます。または、データを最大4時間古いものにする必要がある場合は、それを実行できます。 " データ)

2
Thomas Stringer

これは、データベースの「読み取り専用」コピーを更新するプロセス中に何が起こるかに本当に依存すると思います。

単純なコピーの場合、ログ配布は物事を行うための優れた方法です。

プロセスがサイトのデータの異なるビューを作成するために何らかの計算を行う場合は、もう少し柔軟性のあるものが必要になります。

たとえば、すべてが入力された1つのデータベースと、アーカイブ先の「データウェアハウス」と呼ばれる別のデータベースがあるとします。アーカイブプロセスの一環として、レポートを簡略化するためにデータのロールアップが多数行われています。

通常、SSISパッケージは、そのデータを移動し、適切なデータ変更を実行するために作成されます。 SSISパッケージは、必要な頻度で実行するようにスケジュールすることができ、実行可能な操作に非常に大きな柔軟性を提供します。

1
NotMe