SQL Serverで.bakファイルをデータベースにインポートする方法
SQL Serverで.bakファイルをデータベースにインポートする方法
SQL Server Management Studio (SSMS)を使用する
これは、最も簡単で直感的な方法です。
- SSMSを起動し、対象となるSQL Serverインスタンスに接続します。
- オブジェクトエクスプローラーで、データベースフォルダを展開します。
- データベースフォルダ上で右クリックし、データベースの復元を選択します。
- データベースの復元ダイアログボックスで、ソースタブを選択します。
- デバイスからオプションを選択し、追加ボタンをクリックします。
- インポートする.bakファイルを選択し、OKボタンをクリックします。
- オプションタブを選択します。
- 必要に応じて、復元オプションを選択します。
- OKボタンをクリックします。
RESTORE DATABASEステートメントを使用する
これは、T-SQLを使用してコマンドラインから.bakファイルをインポートする方法です。
- SQL Server Management Studio (SSMS)を起動し、対象となるSQL Serverインスタンスに接続します。
- 新しいクエリウィンドウを開きます。
- 以下のT-SQLステートメントを実行します。
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
パラメータ
database_name
: インポートするデータベースの名前file_path
: .bakファイルのパス
例
RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'
Transact-SQLスクリプトを使用する
- テキストエディタで新しいファイルを作成します。
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'
- ファイルを.sql拡張子で保存します。
- SSMSでクエリウィンドウを開き、作成したスクリプトを実行します。
注意事項
- .bakファイルをインポートする前に、データベースが復元可能であることを確認する必要があります。
- .bakファイルをインポートすると、既存のデータベースが上書きされます。
- .bakファイルを別のサーバーにインポートする場合は、データベースファイルとログファイルのパスを修正する必要があります。
補足
- 上記の方法はいずれも、フルバックアップファイル(.bak)のみをインポートするものです。
- 差分バックアップファイル(.diff)やトランザクションログバックアップファイル(.trn)をインポートするには、RESTORE DATABASEステートメントを使用する必要があります。
- 詳細については、Microsoft Docsのドキュメントを参照してください。
SQL Serverで.bakファイルをデータベースにインポートするサンプルコード
SSMSを使用して.bakファイルをインポートするには、以下の手順に従います。
コード例
-- SSMSを使用して.bakファイルをインポートする
-- オブジェクトエクスプローラーでデータベースフォルダを展開
ObjectExplorer.ExpandDatabases()
-- データベースフォルダ上で右クリックし、データベースの復元を選択
Databases.RestoreDatabase()
-- ソースタブでデバイスからオプションを選択
RestoreDatabase.Source.Device()
-- インポートする.bakファイルを選択
RestoreDatabase.Source.AddFile("C:\MyDatabase.bak")
-- オプションタブで復元オプションを選択
RestoreDatabase.Options.RecoveryModel(RecoveryModel.Full)
-- OKボタンをクリックして復元を開始
RestoreDatabase.Start()
RESTORE DATABASEステートメントを使用して.bakファイルをインポートするには、以下のT-SQLステートメントを実行します。
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
-- RESTORE DATABASEステートメントを使用して.bakファイルをインポートする
DECLARE @database_name NVARCHAR(128)
DECLARE @file_path NVARCHAR(256)
SET @database_name = 'MyDatabase'
SET @file_path = 'C:\MyDatabase.bak'
RESTORE DATABASE @database_name
FROM DATABASE_FILE = @file_path
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
-- Transact-SQLスクリプトを使用して.bakファイルをインポートする
USE master
GO
RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'
GO
SQL Serverで.bakファイルをデータベースにインポートするその他の方法
概要
データベース エンジン サービスの復元を使用して、データベースを別のサーバーに復元できます。
手順
- データベース エンジン サービスの復元 オプションを選択し、追加 ボタンをクリックします。
- 復元するデータベースを選択し、OK ボタンをクリックします。
T-SQL コマンドを使用する
RESTORE DATABASE ステートメントを使用して、データベースを別のサーバーに復元できます。
RESTORE DATABASE database_name
FROM DATABASE_FILE = 'file_path'
RESTORE DATABASE MyDatabase
FROM DATABASE_FILE = 'C:\MyDatabase.bak'
サードパーティ製ツールを使用する
ツール
- ApexSQL Restore
- Redgate SQL Backup
- Idera SQL Backup Pro
- サードパーティ製ツールを使用する前に、ツールのドキュメントをよく読んでください。
- サードパーティ製ツールは、SQL Server のバージョンと互換性があることを確認してください。
その他の方法
- バックアップと復元ウィザードを使用する
sql-server database-restore