我正在尝试备份和恢复sql server 2008r2数据库,并且我成功备份了我的数据库,但问题是当我尝试恢复我的数据库时显示以下错误 服务器'XXXX-PC \ SQLEXPRESS'
的恢复失败另一个重要的事情是,当我关闭数据库连接时(从服务器资源管理器[右键单击 - >关闭连接]),它正常工作正常
以下是我的备份和还原代码 请帮我解决问题
public static void BackupDatabase(string backUpFile)
{
ServerConnection con = new ServerConnection(@"XXXX-PC\SQLEXPRESS");
Server server = new Server(con);
Backup source = new Backup();
source.Action = BackupActionType.Database;
source.Database = "testBD";
BackupDeviceItem destination = new BackupDeviceItem(backUpFile, DeviceType.File);
source.Devices.Add(destination);
//source.Devices.AddDevice(@"G:\MyBackUp.bak", DeviceType.File);
source.SqlBackup(server);
con.Disconnect();
}
public static void RestoreDatabase(string backUpFile)
{
ServerConnection con = new ServerConnection(@"XXXX-PC\SQLEXPRESS");
Server server = new Server(con);
Restore destination = new Restore();
destination.Action = RestoreActionType.Database;
destination.Database = "testBD";
BackupDeviceItem source = new BackupDeviceItem(backUpFile, DeviceType.File);
destination.Devices.Add(source);
destination.ReplaceDatabase = true;
con.Disconnect();
server.ConnectionContext.Disconnect();
destination.SqlRestore(server);
}
这是错误:
这是错误消息:
答案 0 :(得分:2)
我的猜测是您的还原过程无法获得对数据库的独占访问权限。服务器SMO对象有一个KillAllProcesses method,它将数据库作为一个参数,并按照它在锡上执行的操作。