SQL Serverでデータベースを復元する方法|T-SQLとSSMSの2つの手順を解説
データベースの復元(リカバリ)とは
復元(リカバリ)とは、バックアップしておいたデータをコピーし、記録されたトランザクションをMS SQL Serverのデータベースへ反映させる一連のプロセスです。簡単に言えば、バックアップファイルを読み込んで、データベースを元の状態に戻す作業のことを指します。
SQL Serverのデータベース復元は、主に以下の2つの方法で行うことができます。
- T-SQL(Transact-SQL)コマンドを使用する方法
- SQL Server Management Studio(SSMS)のGUIを使用する方法
方法1:T-SQLを使用して復元する
データベースを復元する際は、次の基本構文を使用します。
RESTORE DATABASE データベース名 FROM DISK = 'バックアップファイルのパス'実行例1:既存のデータベースを上書きして復元する場合
たとえば、Dドライブに保存されたTestDB_Full.bakというバックアップファイルから、TestDBというデータベースを復元し、現在存在するデータベースを上書きしたい場合は、以下のコマンドを実行します。
RESTORE DATABASE TestDB FROM DISK = 'D:\TestDB_Full.bak' WITH REPLACE実行例2:データファイルとログファイルの配置先を指定する場合
復元コマンドで新しいデータベースを作成する際、サーバー上に該当するパスやファイルがまだ存在しない場合は、WITH MOVEオプションを使ってファイルの配置先を明示的に指定します。このとき、D:\Data フォルダが実際に存在することを必ず確認してください。
RESTORE DATABASE TestDB FROM DISK = 'D:\TestDB_Full.bak' WITH MOVE 'TestDB' TO 'D:\Data\TestDB.mdf', MOVE 'TestDB_Log' TO 'D:\Data\TestDB_Log.ldf'方法2:SQL Server Management Studio(SSMS)を使用して復元する
GUI操作が得意な方には、SSMSを使った復元方法がおすすめです。以下の手順に沿って進めてください。
ステップ1:データベースの復元メニューを開く
TESTINSTANCEというインスタンスのデータベースに接続し、「データベース」フォルダを右クリックして[データベースの復元]を選択します。

右クリック後のメニューから「データベースの復元」を選択
ステップ2:バックアップファイルの場所を指定する
ソースとして[デバイス]を選択し、事前に作成しておいたバックアップファイルへのパスを指定します。

以前作成したバックアップファイルの保存場所を参照して選択
ステップ3:復元対象の確認
[OK]をクリックすると、以下のような画面が表示されます。復元対象のデータベースと、使用するバックアップセットが正しく表示されているかを確認しましょう。

復元するデータベースと、以前作成したバックアップファイルを選択
ステップ4:ファイル情報の確認
画面左側のページ選択から[ファイル]を選択すると、以下のようなダイアログが表示され、データベースファイルとログファイルの復元先を確認・変更できます。

復元処理におけるファイル情報の確認
ステップ5:オプションを設定して復元を実行
最後に画面左側の[オプション]を選択し、必要な設定を行ったうえで[OK]をクリックすると、TestDBデータベースの復元が開始されます。

TestDBデータベースの復元に成功した様子
まとめ
SQL Serverのデータベース復元には、T-SQLコマンドを使う方法とSSMSのGUIを使う方法の2通りがあります。スクリプトによる自動化や定期運用にはT-SQLが、手軽に確実に操作したい場合にはSSMSが適しています。どちらの方法でも、復元前にバックアップファイルの所在とパスの存在を確認しておくことが、トラブル防止のポイントです。
-
IntelliJ IDEAでMySQLサーバーに接続する方法を徹底解説
ご存知の通り、MySQLサーバーの操作にはMySQL Workbenchを併用すると、データベース管理がより直感的かつ簡単になります。 しかし近年では、ソースコードのコンパイルやビルドだけでなく、データベース管理システム(DBMS)との連携機能まで備えたモダンなIDEが数多く登場しています。 その代表格がJetBrains社の製品群です。本記事では、多くの開発者に利用されているIntelliJ IDEAを使ってMySQLサーバーに接続する手順を、初心者にもわかるよう丁寧に解説します。 それでは早速始めましょう! IntelliJでMySQLサーバーに接続する手順 注意: 本記事ではIntel
-
Microsoft SQL Serverのデータベース互換性レベルとは?確認・変更方法とパフォーマンスへの影響を解説
データベース互換性レベルは、データベースレベルの設定のひとつで、データベースの動作に大きな影響を与えます。Microsoft® SQL Server®の新バージョンがリリースされるたびに多くの新機能が追加されますが、その多くは新しいキーワードを必要とし、旧バージョンで存在していた動作にも変更をもたらします。最大限の後方互換性を確保するため、Microsoftでは必要に応じて互換性レベルを設定できる仕組みを提供しています。 データベース互換性レベルのデフォルト値 デフォルトでは、すべてのデータベースは、作成元となったmodelデータベースのバージョンから互換性レベルを引き継ぎます。たとえば、SQ