バックアップを作成したデータベースエンジンと同バージョンで復元をおこなうこと
まあまあアクセスがあるので異なるバージョン間でデータ移行する方法も作成。
http://trueman-developer.blogspot.com/2018/10/sql-server.html
環境
SqlServer 2008 R2
SQLManagement Studio 2008 R2
SQLManagement Studio 2012
DBエンジンとManagementoStudioの違い
SQL Server(データベースエンジン)とは実際にDBを操作する機能のこと
Management Studio はSQL Server のリリースと同時期にリリースされるSQL Serverを簡単に利用するための便利ツールのこと
.bakファイルから復元するためにはバックアップ作成時とリストア時でデータベースエンジンのバージョンを合わせる必要がある模様
.bakファイルを復元する方法
Managemetn StudioでSQL Serverへ接続した後
データベース右クリック → データベースの復元 → デバイスを選択 → 追加から復元対象ファイル.bakを選択 → 内容を確認にてクリックで復元が可能
だが今回のケースでは復元できなかった
以下に試行錯誤した内容をメモしておく
オブジェクトをdbnullから他のタイプにキャストすることはできません
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/2ec5d646-5f48-4374-bc61-f0c90eb7bbda?forum=sqlserverja
検索してみたらこの辺りが出てくるが結局解決していない
以下のコマンドでも復元できるようなので試してみる(この段階では試行錯誤中なので一応載せてはおくが GUI上で[データベースを復元] と挙動は同じ模様)
以下は多分ミスっているので注意
PS SQLSERVER:\SQL\[userName]\SQLEXPRESS\Databases>
osql -U [username] -P [password] -Q"restore Siss from disk='C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL EXPRESS\MSSQL\Backup\bakFile.bak' with replace,stats=10"]
osqlコマンドでコマンドプロンプト上からリストアしてみる
がなにか間違えているのかうまく動かない
osqlはコマンドを発行しているだけなので Management Studio から直接Restoreすればいいのでは?と思い至る
以下のコマンドをManagementStudio 上で試してみる
restore DATABASE Test from disk='C:[backupFilePath]\bakFile.bak' with replace,stats=10
オペレーティング システムエラー 5 アクセスが拒否されました
コンパネ → 管理ツール → サービス → SQL Serverのプロパティ → ログオンタブ → ローカルアカウント → [デスクトップとの対話をサービスに許可]にチェック
http://komatumoto.blog55.fc2.com/blog-entry-196.html
メディア ファミリが正しい形式ではありません
データベースエンジンのバージョンが違う模様
http://nusoft.jp/blog/blog/2013/05/22/sql-server%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%95%AA%E5%8F%B7/
バックアップを作成したManagemantStudioのバージョンがいまのよりも高い?
SQL Server 2012のインストール
新規にインストールを行う
名前付きインスタンスは識別できるように名前をつける
イントール済みインスタンスに涙ぐましい努力の跡が見える (TT)
メッセージ 3169、レベル 16、状態 1、行 1
データベースはバージョン 12.00.5000 を実行中のサーバーにバックアップされました。このバージョンは、このサーバー (バージョン 11.00.2100 を実行) とは互換性がありません。バックアップをサポートしているサーバーでデータベースを復元するか、またはこのサーバーと互換性のあるバックアップを使用してください。
光明が見えてきたか
「ver12は今のver11と互換性がないよ」と言われているようなのでもう一つバージョンを上げてみる
...
.....
.........
Σb( `・ω・´)グッ
ちなみにここまでくれば(バックアップファイルを作成したエンジンのバージョンさえわかれば)GUI上で[データベースを復元]からいけるはずです
バージョン情報を教えてくれればこんなことには...
ひょっとしたら上位のバージョンだったら復元できるんだろうか(無理っぽい)
復元スピードは落ちると思うけど「データスクリプトを作成」からやってほしい