SQL Serverのデータベースをバックアップから復元する

 10 年ほど前に作ったデータベースを古い端末のバックアップから復元したので備忘録として公開する.

 細かい手順は公式のサイトを参照されたいが,ここの情報が役に立った.

 古い端末には SQL Server 2012 がインストールしてあり,今の端末には SQL Server 2017 がインストールしてある.

 SQL Server のバックアップには二種類ある.データベースとしてバックアップする方法と,ファイルとしてバックアップする方法だ.前者はなぜか上手くいかない.今回は後者でバックアップファイルを作成したところ,うまく行った.まあ結果オーライだ.

SQL Server 2012 からバックアップを作成する

 「オブジェクトエクスプローラー」の「データベース」を右クリックしてメニューから「データベースの復元…」を選択する

「データベースの復元」ですること

 「ソース」から「デバイス」にチェックを入れ,その右の「…」というボタンをクリックする.

「ソース」から「デバイス」にチェックを入れる

「バックアップデバイスの選択」画面ですること

 「追加」をクリックする.

「バックアップファイルの検索」ですること

 「バックアップファイルの場所」の右のファイルパスをコピーする.

Backup フォルダへのアクセス権を取得する

 DropBox に保存してあるバックアップファイルを指定しようとしたのだが,SQL Server が自身の直下にあるパス以外は認識しないため,バックアップファイル自体を BackUp フォルダに移動することにした.その際アクセス権を求められるので「続行」する.

アクセス権を取得する

 DropBox 内のファイルをコピーする.

エクスプローラーでDropBoxのバックアップファイルを表示
コピーする

 SQL Server 直下の先程の Backup フォルダに貼り付ける.

貼り付ける

 「バックアップデバイスの検索」画面でバックアップファイルが見えるようになったので,クリックして選択し,「OK」をクリックする.

バックアップファイルが見えるようになった

 「バックアップデバイスの選択」画面で「OK」をクリックする.

バックアップデバイスが選択された状態

 本来ならここで「復元プラン」に選択したデータベースが見えていないといけないのだが,なぜか見えない.

復元するバックアップセットが見えない

 バックアップデバイスの選択画面に戻る.バックアップファイルに .bak の拡張子をつけてみた.

拡張子 .bak をつけてみた

 「ファイルおよびファイルグループの復元」画面.今度は「復元するバックアップセットの選択」パネルにきちんとデータベースが見えている.「OK」をクリックすれば復元されるはずだ.

今度は復元するバックアップセットが見える

 …と思いきや,何故か失敗する.もしかしたらバックアップファイルが壊れているのかも知れない.

復元に失敗した.エラーの意味はよく分からない

 ここで旧端末の電源を入れ, SQL Server 2012 を起動して再び完全バックアップを行うことにした.

旧端末でデータベースをバックアップする

 「データベースのバックアップ」画面で「バックアップコンポーネント」を「データベース」ではなく「ファイルおよびファイルグループ」にしたところ,うまく行った.

 「ファイルおよびファイルグループの選択」で「すべて選択」をクリックしてチェックボックス全てにチェックを入れ,「OK」をクリックする.

すべてを選択にチェック

 「データベースのバックアップ」画面に戻る.「バックアップ先」は「ディスク」になっており, SQL Server 直下の Backup フォルダへのパスが表示されているので「OK」を選択する.

新端末に戻る

 旧端末の Backup フォルダから新端末の Backup フォルダにバックアップファイルをコピペする方法は各自で工夫されたい.俺の場合 600 MB 近くあったので gMail では添付できず Google ドライブ経由で送ることにしたのだけど.

 新端末の「バックアップファイルの検索」画面.ファイル名になぜか拡張子がついてなかったので手動で .bak の文字を追加しておいた.

 「復元プラン」に「復元するバックアップ」が見えている.うまく行きそうだ.

 左のパネルの「ファイル」を選択したところ.「次のデータベースファイルに復元」の「すべてのファイルをフォルダーに移動する」にチェックを入れたが,これは不要だったかも知れない.

 同じく「オプション」で「既存のデータベースを上書きする」にもチェックを入れたが,これも不要だったかも知れない.

 ここで右下の「OK」をクリックする.緊張する.

復元に成功した!

 やった!復元に成功した.

SQL Server のバックアップと復元のまとめ

 行程が複雑過ぎてめげそうになるが,一応何とかなった.以下の点に注意するとよいだろう.

  • バックアップは「完全バックアップ」で
  • バックアップコンポーネントは「ファイルおよびファイルグループ」で
  • 拡張子の .bak を忘れない
  • データベースの復元の「ソース」は「デバイス」から
  • Backup フォルダへのアクセス権が必要

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください