Microsoft SQL Server 2019 で DB のリストア
~ データベースはバックアップとリストアが必要 ~
2020-06-26 作成 福島
TOP > tips > mssql2019restore

SSMS (Microsoft SQL Server Management Studio) でサンプルのデータベース (名称: test01) を作成し、これを完全バックアップします。


1. データベースの作成

1-1. SSMS に管理者としてログインする。

1-2. データベースを作成する。
 「オブジェクト エクスプローラー」の「データベース」を右クリックし、「新しいデータベース(N)...」を選択する。
 ⇓
 「データベース名(N)」にデータベース名を記入し、 ボタンをクリックする。
 ここではデータベース名を「test01」としている。
 ⇓
 データベースが作成 (表示) されたことを確認する。

 本来はここからテーブルの作成作業を実施するが、今回はバックアップとリストアの説明なので、テーブルは作成しない。


2. データベースのバックアップ

2-1. データベースをバックアップする。
 バックアップ対象のデータベース名を右クリックし、
 「タスク(T)」-「バックアップ(B)...」を選択する。
 ⇓
 下記項目を確認し、 ボタンをクリックする。

 • バックアップの種類(K): 完全
 • バックアップ先(U): ディスク、ファイルパス

 ⇓
 完了メッセージを確認して ボタンをクリックする。
バックアップのファイルは以下に格納される。
アーカイブする場合は、このファイルを採取する。
%ProgramFiles%\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Backup\test01.bak


3. データベースの削除

3-1. データベースを削除する。
削除すると元に戻せないので、バックアップがあることを確認してから作業すること。

 データベース名を右クリックし、
 「削除(D)」を選択する。
 ⇓
ボタンをクリックする。
 ⇓
 データベースが削除された (表示されていない) ことを確認する。


4. データベースのリストア

4-1. データベースをリストアする。
 「オブジェクト エクスプローラー」の「データベース」を右クリックし、「データベースの復元(R)...」を選択する。
 ⇓
 ◉デバイス(E): を選択し、 ボタンをクリックする。
 ⇓
ボタンをクリックする。
 ⇓
 バックアップファイルを選択し、 ボタンをクリックする。

 他のサーバから取り寄せたバックアップを復元するには、
 このフォルダにバックアップファイルを設置してから行う。
Microsoft SQL Server は「NT Service\MSSALSERVER」
という特殊なユーザで動作しており、アクセス範囲が限定されている。
ネットワークフォルダ (使えない)
ユーザフォルダ (使えない)

 ⇓
ボタンをクリックする。
 ⇓
ボタンをクリックする。
 ⇓
 完了メッセージを確認して ボタンをクリックする。
 ⇓
 データベースが復元 (表示) されたことを確認する。


5. DDL の抽出

5-1. DDL (Data Definition Language) を抽出する。
 バックアップ対象のデータベース名を右クリックし、
 「タスク(T)」-「バックアップ(B)...」を選択する。
 ⇓
ボタンをクリックする。
 ⇓
 以下を選択して ボタンをクリックする。
 ◉データベース全体とすべてのデータベースオブジェクトのスクリプトを作成(E)
 ⇓
ボタンをクリックする。
 ⇓
 DDL に含める内容を選択して ボタンをクリックする。
 左記ではデフォルトと異なる値を赤文字にしてある。
 (実際は赤くならない)
 ⇓
 ◉ファイルに保存(F) を選択し、
 ファイル名(I) の ボタンをクリックする。
 ⇓
 保存するファイル名を記入し ボタンをクリックする。

 バックアップファイルと異なり、ユーザフォルダ等も指定可能。
 ⇓
 下記を選択し ボタンをクリックする。

 ◉単一ファイル(G)
 ☑既存のファイルの上書き(O)
 ◉Unicode テキスト(U) → Windows 標準の UTF-16 (BOM あり、CR+LF)
(ANSI テキスト(T) を選択すると文字コードが Shift-JIS で保存される)

 ⇓
 選択した内容を確認して ボタンをクリックする。
 ⇓
 SQL スクリプトが生成される。
 結果を確認して ボタンをクリックする。
 ⇓
 指定した場所に DDL ファイルが作成された。