データベースを(全体として)別のサーバーに転送して、別のテスト環境をセットアップするための複製データベースを作成する必要があります。
私には2つの選択肢があります。
私の要件によると、2つのソリューションの長所と短所は何ですか?
SQL Server 2008 Enterpriseを使用しています。
バックアップ/復元は通常、選択する方法です。それはほとんどの状況でより速くなります。
また、本番環境でのテストにも使用できます。
この関連する質問も参照してください。バックアップ/復元とデタッチ/アタッチが言及されています。
SQL Server Migration Restoreバックアップvsコピーデータとログファイル
バックアップにWITH COPY_ONLY
オプションを追加して、既存の保守計画のバックアップチェーンが壊れないようにしてください。
バックアップ/復元する場合は、バックアップ中にWITH COPY_ONLYオプションを使用して、既存の保守計画のバックアップチェーンが壊れていないことを確認します。
.bakファイルは適切に圧縮されるため、バックアップを作成することにした場合は、移動する前にバックアップを圧縮することで、転送時間を節約できます。
元のデータベースを操作可能な状態にしておくので、バックアップ/復元を行います。
特に、「本番からテスト」への変換を行う場合は、本番データベースをオンラインにしておくことが重要です。
バックアップ/復元もsaferオプションです。デタッチ、コピー、アタッチなどの開始の間にファイルが破損するとどうなりますか?少なくともバックアップを実行してファイルが破損した場合は、最初からやり直すことができます。デタッチでそれが発生した場合、データベースは失われます。
また、私にとっては(他の何よりも感じがいいですが)、バックアップ/復元は「日常の仕事」ですが、分離/アタッチは例外的な状況で行うものです。私がどこでこのアイデアを得たのか私に尋ねないでください;-)
バックアップ/復元の「復元」の部分で常に問題がありました。最終的にそれをあきらめ、それ以来、切り離し/コピー/アタッチを行ってきたので、詳細を引用することはできません。
デタッチについての唯一のことは、DBMSがデータベースも削除しないことを確認する必要があることです。これが起こった、そしてそれはかなりの光景ではありません。
DOSシェルからこの方法を使用してcopy_only
バックアップをお勧めします(トランザクションログを中断しないように):
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup
ディレクトリから実行:
backup.bat SQLDBNAME
ここで、backup.bat
には(読みやすくするために改行が追加されています)が含まれています。
sqlcmd.exe -U username -P xxxxxxx -S SQL-SERVERNAME
-Q "BACKUP DATABASE %1 TO DISK = '%1_COPYONLY.BAK' WITH COPY_ONLY,INIT;"