掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SQLデータベースファイルのバックアップ・復元 (ID:145925)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VS2005(VB)にて「新しい項目の追加」で追加できる「SQLデータベース」を使用した単体Windowsアプリケーションを作成しています。 このデータベースのバックアップ・復元方法についてどなたか教えていただけますと大変助かります。 こちらを参考にデータベースのバックアップと復元のコードを作成しましたが復元部分でエラーとなってしまいます。 http://msdn.microsoft.com/ja-jp/library/ms162133.aspx Imports Microsoft.SqlServer.Management.smo Sub DB_BACKUP() 'データベースのバックアップ 'SQLサーバーのローカルのデフォルトインスタンスに接続 Dim srv As Server = New Server srv.ConnectionContext.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\DBファイル.mdf;Integrated Security=True;User Instance=True" 'データベースの参照設定 Dim db As Database = srv.Databases("C:\DBファイル.mdf") '回復モデル Dim recoverymod As Integer = db.DatabaseOptions.RecoveryModel 'Backupオブジェクト変数の定義 Dim bk As New Backup 'バックアップのタイプ、記述、名前、データベースの指定 bk.Action = BackupActionType.Database bk.Database = "C:\DBファイル.mdf" 'バックアップデバイスのタイプの指定(ファイル) Dim bdi As BackupDeviceItem = New BackupDeviceItem("C:\DBファイル.bak", DeviceType.File) 'Backupオブジェクトにデバイスを追加 bk.Devices.Add(bdi) '完全なデータベースバックアップであると指定 bk.Incremental = False 'バックアップの有効期限 Dim backupdate As Date = New Date(2010, 10, 5) bk.ExpirationDate = backupdate 'ログの切捨て bk.LogTruncation = BackupTruncateLogType.Truncate '完全バックアップの実行 bk.SqlBackup(srv) MessageBox.Show("データベースのバックアップが完了しました。") End Sub Sub DB_RESTORE() ’データベースの復元 Try 'SQLサーバーのインスタンスに接続 Dim srv As Server = New Server srv.ConnectionContext.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\DBファイル.mdf;Integrated Security=True;User Instance=True" 'バックアップデバイスの指定(ファイル) Dim bdi As BackupDeviceItem = New BackupDeviceItem("C:\DBファイル.bak", DeviceType.File) 'Restoreオブジェクト変数定義 Dim rs As Restore = New Restore '取引が回復されないようにNoRecoveryの特性を本当に設定してください。 rs.NoRecovery = False '完全なデータベースバックアップをRestoreオブジェクトに含むデバイスを加えてください。 rs.Devices.Add(bdi) 'データベース名の指定 rs.Database = "C:\DBファイル.mdf" 'データベースの復元 rs.SqlRestore(srv) (※) MessageBox.Show("データベースの復元が完了しました。") Catch ex As Exception MessageBox.Show(ex.Message, "エラー") End Try End Sub 上記コードで実行してみますとバックアップファイルは作成されますが、 復元を実行しますと ※印の rs.SqlRestore(srv) の部分で 「サーバー(コンピュータ名)の復元に失敗しました」のエラーととなります。 エラーとなる原因のヒントまたは別な方法がありましたら宜しくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.