10 年ほど前に作ったデータベースを古い端末のバックアップから復元したので備忘録として公開する.
細かい手順は公式のサイトを参照されたいが,ここの情報が役に立った.
古い端末には SQL Server 2012 がインストールしてあり,今の端末には SQL Server 2017 がインストールしてある.
SQL Server のバックアップには二種類ある.データベースとしてバックアップする方法と,ファイルとしてバックアップする方法だ.前者はなぜか上手くいかない.今回は後者でバックアップファイルを作成したところ,うまく行った.まあ結果オーライだ.
SQL Server 2012 からバックアップを作成する
「オブジェクトエクスプローラー」の「データベース」を右クリックしてメニューから「データベースの復元…」を選択する
「データベースの復元」ですること
「ソース」から「デバイス」にチェックを入れ,その右の「…」というボタンをクリックする.
「バックアップデバイスの選択」画面ですること
「追加」をクリックする.
「バックアップファイルの検索」ですること
「バックアップファイルの場所」の右のファイルパスをコピーする.
Backup フォルダへのアクセス権を取得する
DropBox に保存してあるバックアップファイルを指定しようとしたのだが,SQL Server が自身の直下にあるパス以外は認識しないため,バックアップファイル自体を BackUp フォルダに移動することにした.その際アクセス権を求められるので「続行」する.
DropBox 内のファイルをコピーする.
SQL Server 直下の先程の Backup フォルダに貼り付ける.
「バックアップデバイスの検索」画面でバックアップファイルが見えるようになったので,クリックして選択し,「OK」をクリックする.
「バックアップデバイスの選択」画面で「OK」をクリックする.
本来ならここで「復元プラン」に選択したデータベースが見えていないといけないのだが,なぜか見えない.
バックアップデバイスの選択画面に戻る.バックアップファイルに .bak の拡張子をつけてみた.
「ファイルおよびファイルグループの復元」画面.今度は「復元するバックアップセットの選択」パネルにきちんとデータベースが見えている.「OK」をクリックすれば復元されるはずだ.
…と思いきや,何故か失敗する.もしかしたらバックアップファイルが壊れているのかも知れない.
ここで旧端末の電源を入れ, SQL Server 2012 を起動して再び完全バックアップを行うことにした.
旧端末でデータベースをバックアップする
「データベースのバックアップ」画面で「バックアップコンポーネント」を「データベース」ではなく「ファイルおよびファイルグループ」にしたところ,うまく行った.
「ファイルおよびファイルグループの選択」で「すべて選択」をクリックしてチェックボックス全てにチェックを入れ,「OK」をクリックする.
「データベースのバックアップ」画面に戻る.「バックアップ先」は「ディスク」になっており, SQL Server 直下の Backup フォルダへのパスが表示されているので「OK」を選択する.
新端末に戻る
旧端末の Backup フォルダから新端末の Backup フォルダにバックアップファイルをコピペする方法は各自で工夫されたい.俺の場合 600 MB 近くあったので gMail では添付できず Google ドライブ経由で送ることにしたのだけど.
新端末の「バックアップファイルの検索」画面.ファイル名になぜか拡張子がついてなかったので手動で .bak の文字を追加しておいた.
「復元プラン」に「復元するバックアップ」が見えている.うまく行きそうだ.
左のパネルの「ファイル」を選択したところ.「次のデータベースファイルに復元」の「すべてのファイルをフォルダーに移動する」にチェックを入れたが,これは不要だったかも知れない.
同じく「オプション」で「既存のデータベースを上書きする」にもチェックを入れたが,これも不要だったかも知れない.
ここで右下の「OK」をクリックする.緊張する.
やった!復元に成功した.
SQL Server のバックアップと復元のまとめ
行程が複雑過ぎてめげそうになるが,一応何とかなった.以下の点に注意するとよいだろう.
- バックアップは「完全バックアップ」で
- バックアップコンポーネントは「ファイルおよびファイルグループ」で
- 拡張子の .bak を忘れない
- データベースの復元の「ソース」は「デバイス」から
- Backup フォルダへのアクセス権が必要
“SQL Serverのデータベースをバックアップから復元する” への1件の返信