web-dev-qa-db-ja.com

データベースをアタッチする目的は何ですか?

SQL Serverでは、データベースのアタッチと呼ばれるこのオプションが常に表示されます。なぜ誰かがデータベースを接続するのですか? .BAKファイルからデータベースを復元しないのはなぜですか?目的が分からないようです。

アタッチするとどうなりますか?復元よりも高速ですが、技術的な結果はどうなりますか?それでもデータベースを変更できますか?データを追加しますか?推奨される方法またはそれをお勧めしませんか?

私は アタッチ/デタッチvs.バックアップ/復元 を見てきましたが、アタッチまたはデタッチの目的を説明するものはありません。それは基本的にそれにさえ触れません。

2
user18139

状況によっては、アタッチ/デタッチの方がバックアップ/復元よりも速い場合があります。

デタッチは瞬時に行われ、すぐにファイルのコピーを開始できます。アタッチもほぼ瞬時に行われます。バックアップには時間がかかり、リストアにも時間がかかります。

コピーする必要があるファイルのサイズは、状況に応じてほぼ同じサイズであったため、この手法はバックアップ圧縮を行う前にはるかに高速でした。

バックアップはデータファイルよりもはるかに小さいため、バックアップの圧縮はそれに影響を与えます。

すべては、IO速度とコピーのソースと宛先に依存します。

計算はかなり簡単です。バックアップの取得、ファイルのコピー、およびバックアップの復元の時間がmdf + ldfファイルのコピーよりも短い場合は、バックアップ/復元の方が高速です。それ以外の場合は、デタッチ/アタッチの方が高速です。

Detach/attachメソッドは、データベースがオフラインになる場合にのみ機能します。

IOサブシステムが高速で、データベースを転送する必要があるネットワークリンクが遅い場合は、圧縮バックアップを転送する方が速い場合があります(バージョン/エディションで利用可能な場合))。 IOサブシステムが遅く、バックアップと復元のプロセスも遅いが、ファイルをすばやくコピーできる場合は、デタッチし、比較的大きな.mdfファイルをコピーして、再アタッチするのが理にかなっています。 。

私の意見では、これは、バックアップ圧縮が利用できるようになる前は、大規模なデータベースではより問題でした。正しく覚えていれば、これは圧縮前にマイクロソフト認定試験で考えられた質問でしたが、最近のバージョンの資料では見ていません。

最終結果は基本的に同じで、データベースの正確なコピーです。

Detach-Attachはさまざまな目的で使用できます。

  1. データ/ログファイルを別のディスクに移動し、空き容量を増やすか、要件に従ってください。
  2. デタッチすると、データ/ログファイルをコピーして別のサーバー/インスタンスに移動し、別のインスタンスでデータベースを迅速に複製することができます。
  3. 場合によっては、データベースの移行で、ダウンタイムが非常に限られているときに、時間を節約できるため、この手法を続行できます。
4

コミュニティWiki 質問に対するコメントに基づく回答:

データ/ログファイルを別のストレージデバイスまたは別のLUNに移動するためにデタッチ/アタッチを使用しました(さまざまな理由により)。スタックオーバーフローのQ&A SQL Serverのバックアップ/復元とデタッチ/アタッチ を参照してください。これは、2つの方法を比較および対比しています。

データベースをアタッチすると、他のオンラインマルチユーザーデータベースと同じようになります。それは好みの問題ではなく、必要なものです。上記の答えを読んでください。ファイルをより大きなドライブに移動する必要がある場合の一般的な例。 - SqlWorldWide

関連するQ&A:

  1. SQL Serverにデータベースを接続するにはどうすればよいですか?
  2. アタッチ/デタッチvs.バックアップ/復元
  3. detach/copy/attachまたはbackup-restore-replayを使用してデータを移行する必要がありますか?

コミュニティのwikiの投稿は、他の人が最新の状態に保ち、有用な情報を追加し、一般に品質を向上させるために編集することを期待して、コミュニティに寄付されました。

4
user126897