SQL Server - アタッチとデタッチ
アタッチとは
SQL Serverでデータベースを引っ越しする場合、アタッチを使用する。
アタッチは、バックアップした物理ファイルからデータベースを新規作成することができる。
アタッチはバックアップから復元するイメージだが、何もないところにもデータベースを作成することができる。
デタッチとは(データベースの分離)
SQL Serverでデータベースを引っ越しする場合、デタッチを使用する。
デタッチは、整合性のとれた状態でデータベースファイルへ出力して、データベースを分離する。
そのファイルを移行先のサーバでアタッチすると使用することができる。
デタッチを行うと、デタッチ側のサーバではデータベースは使用できなくなるので、使用する場合はアタッチする必要がある。
アタッチ / デタッチの使用する機会
例えば、サーバのリプレイス等でデータベースを移行するときに使用する場合は、
移行前のサーバでデタッチしてサーバからファイルを分離し、移行後のサーバでアタッチするという手順である。
- サーバリプレイスによるデータ移行
- 本番環境からテスト環境へデータベースをコピー
- テスト環境から本番環境へデータベースをコピー
- 物理ファイルのバックアップ
アタッチ / デタッチは完全なるバックアップや移行
SQL Serverには似た機能にインポート / エクスポート(バックアップおよび復元)があるが、これらは論理バックアップなので不完全である。
アタッチ / デタッチは物理バックアップなので、整合性のとれた完全なバックアップである。
特に、データベースの移行等の重要な局面では、インポート / エクスポートではなく、アタッチ / デタッチを使用する。
また、アタッチ / デタッチの方が短時間で手間もかからないため便利である。
アタッチの手順
ここでは、SQL Server Management Studioを使用したアタッチの手順を記載する。
- SQL Server Management Studioを起動する。
- データベースを選択して、右クリックして[タスク] - [アタッチ]を選択する。
- [データベースのアタッチ]画面が表示されるので、[アタッチするデータベース]項目の[追加]ボタンを押下する。
- ファイル選択ダイアログが表示されるので、アタッチするファイルを選択して、[OK]ボタンを押下する。
- [データベースのアタッチ]画面に戻る。
[アタッチするデータベース]項目にアタッチするファイルが表示されるので(画面下にデータとログの詳細が確認できる)、
確認して[OK]ボタンを押下する。
[OK]ボタンを押下すると、データベースファイルからサーバへ反映され、データベースが新規作成される。 - データベースが作成されるので、オブジェクトエクスプローラの[データベース]項目に作成されたデータベースが表示されるか確認する。
参照 : データベースのデタッチとアタッチ (SQL Server)
デタッチの手順
ここでは、SQL Server Management Studioを使用したアタッチの手順を記載する。
- SQL Server Management Studioを起動する。
- 分離したデータベースを選択して、右クリックして[タスク] - [デタッチ]を選択する。
- [データベースのデタッチ]画面が表示されるので、画面右の[デタッチするデータベース]項目の分離するデータベースを確認して、[OK]ボタンを押下する。
- SQL Server Management Studioのメイン画面で、デタッチしたデータベースが表示されていないことを確認する。
これで、サーバからデータベースが分離される。 - 該当のデータベースは整合性がとれた状態でファイルに出力されるので、データベースの本体である物理ファイルのパスを確認する。
- Windowsの場合 : C:\Program Files\Microsoft SQL Server\MSSQL[バージョン名].[インスタンス名]\MSSQL\DATA
- データベース本体の拡張子 : mdf
- ログファイルの拡張子 : ldf