SQL Server - アタッチとデタッチ

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

アタッチとは

SQL Serverでデータベースを引っ越しする場合、アタッチを使用する。
アタッチは、バックアップした物理ファイルからデータベースを新規作成することができる。
アタッチはバックアップから復元するイメージだが、何もないところにもデータベースを作成することができる。


デタッチとは(データベースの分離)

SQL Serverでデータベースを引っ越しする場合、デタッチを使用する。
デタッチは、整合性のとれた状態でデータベースファイルへ出力して、データベースを分離する。
そのファイルを移行先のサーバでアタッチすると使用することができる。

デタッチを行うと、デタッチ側のサーバではデータベースは使用できなくなるので、使用する場合はアタッチする必要がある。


アタッチ / デタッチの使用する機会

例えば、サーバのリプレイス等でデータベースを移行するときに使用する場合は、
移行前のサーバでデタッチしてサーバからファイルを分離し、移行後のサーバでアタッチするという手順である。

  • サーバリプレイスによるデータ移行
  • 本番環境からテスト環境へデータベースをコピー
  • テスト環境から本番環境へデータベースをコピー
  • 物理ファイルのバックアップ



アタッチ / デタッチは完全なるバックアップや移行

SQL Serverには似た機能にインポート / エクスポート(バックアップおよび復元)があるが、これらは論理バックアップなので不完全である。
アタッチ / デタッチは物理バックアップなので、整合性のとれた完全なバックアップである。

特に、データベースの移行等の重要な局面では、インポート / エクスポートではなく、アタッチ / デタッチを使用する。
また、アタッチ / デタッチの方が短時間で手間もかからないため便利である。


アタッチの手順

ここでは、SQL Server Management Studioを使用したアタッチの手順を記載する。

  1. SQL Server Management Studioを起動する。
  2. データベースを選択して、右クリックして[タスク] - [アタッチ]を選択する。
  3. [データベースのアタッチ]画面が表示されるので、[アタッチするデータベース]項目の[追加]ボタンを押下する。
  4. ファイル選択ダイアログが表示されるので、アタッチするファイルを選択して、[OK]ボタンを押下する。
  5. [データベースのアタッチ]画面に戻る。
    [アタッチするデータベース]項目にアタッチするファイルが表示されるので(画面下にデータとログの詳細が確認できる)、
    確認して[OK]ボタンを押下する。
    [OK]ボタンを押下すると、データベースファイルからサーバへ反映され、データベースが新規作成される。
  6. データベースが作成されるので、オブジェクトエクスプローラの[データベース]項目に作成されたデータベースが表示されるか確認する。

参照 : データベースのデタッチとアタッチ (SQL Server)


デタッチの手順

ここでは、SQL Server Management Studioを使用したアタッチの手順を記載する。

  1. SQL Server Management Studioを起動する。
  2. 分離したデータベースを選択して、右クリックして[タスク] - [デタッチ]を選択する。
  3. [データベースのデタッチ]画面が表示されるので、画面右の[デタッチするデータベース]項目の分離するデータベースを確認して、[OK]ボタンを押下する。
  4. SQL Server Management Studioのメイン画面で、デタッチしたデータベースが表示されていないことを確認する。
    これで、サーバからデータベースが分離される。
  5. 該当のデータベースは整合性がとれた状態でファイルに出力されるので、データベースの本体である物理ファイルのパスを確認する。
    Windowsの場合 : C:\Program Files\Microsoft SQL Server\MSSQL[バージョン名].[インスタンス名]\MSSQL\DATA
    データベース本体の拡張子 : mdf
    ログファイルの拡張子 : ldf

参照 : データベースのデタッチとアタッチ (SQL Server)