36

最新のデータを含む 1 つのデータベースがあり、データベースの内容を他のサーバーに複製したいと考えています。技術的な理由ではないため、レプリケート機能または同期機能を直接使用して他の SQL Server インスタンスと同期することはできません。

現在、2 つの解決策があり、それぞれの解決策の長所と短所を学びたいと考えています。ありがとう!

解決策 1: 最新のデータを含むソース データベースをデタッチし、最新のデータを必要とする宛先サーバーにコピーして、宛先サーバーでデータベースをアタッチします。

解決策 2: データベース全体のソース サーバーの完全バックアップを作成してから、データを宛先サーバーにコピーし、宛先サーバー側で完全復旧を行います。

前もって感謝します、ジョージ

4

3 に答える 3

26

デタッチ/アタッチ オプションは、新しいファイルを作成する必要がないため、多くの場合、バックアップを実行するよりも高速です。したがって、サーバー A からサーバー B までの時間は、ほぼ純粋にファイルのコピー時間です。

バックアップ/復元オプションを使用すると、完全バックアップを実行し、それを復元してから差分バックアップを実行できます。つまり、2 つの間のダウンタイムを短縮できます。

求めているのがデータ レプリケーションである場合、データベースを両方の場所で機能させたいということですか? その場合、現在のデータベースを完全に機能させるため、おそらくバックアップ/復元オプションが必要です。

編集:いくつかの点を明確にするために。ダウンタイムとは、あるサーバーから別のサーバーにデータベースを移行している場合、通常、移動中にデータベースを使用している人々を停止させることを意味します。したがって、サーバー A の「停止」ポイントからサーバー B の「開始」ポイントまでは、ダウンタイムと見なすことができます。そうしないと、転送中にサーバー A のデータベースで実行されたアクションがサーバー B にレプリケートされません。

「新しいファイルを作成する」に関して。データベースをデタッチすると、MDF ファイルをすぐにコピーできます。コピーする準備ができています。ただし、バックアップを実行する場合は、.BAK ファイルが作成されるのを待ってから、復元のために新しい場所に移動する必要があります。繰り返しになりますが、これはスナップショットのコピーまたは移行に帰着します。

于 2009-03-04T11:08:25.793 に答える
8

バックアップと復元は、代わりに接続解除オプションから数分余分に時間を費やす可能性があるとしても、はるかに理にかなっています. デタッチする前に、元のデータベースをオフラインにする (全員を切断する) 必要があります。その後、再アタッチするまでデータベースは使用できません。また、すべてのファイルを追跡する必要がありますが、バックアップではすべてのファイルがグループ化されます。また、最新バージョンの SQL Server では、バックアップが圧縮されています。

そして、何かを修正するだけです。DB バックアップと差分バックアップは、ログを切り捨てず、ログ チェーンを壊しません。

さらに、COPY_ONLY 機能は、LOG ではなく、差分ベースに対してのみ重要です。ログ チェーンに切れ目がないことを前提として、すべてのログ バックアップを任意のバックアップから順番に適用できます。アーカイブ ポイントとは若干の違いがありますが、どこが重要なのかわかりません。

于 2012-09-17T14:18:56.940 に答える
4

解決策 2 が私の選択です...主に、ソース データベースにダウンタイムが発生しないためです。私が見ることができる唯一の欠点は、データベースの復旧モデルによっては、トランザクション ログが切り捨てられることです。つまり、トランザクション ログからデータを復元したい場合は、バックアップ ファイルを使用する必要があります。

編集:素敵なリンクが見つかりました。http://sql-server-performance.com/Community/forums/p/5838/35573.aspx

于 2009-03-04T11:10:41.123 に答える