2013-08-20 113 views
3

使用这个我成功地备份我的数据库:还原数据库失败服务器

Server myServer = new Server(@"PC-1\INSTANCE1"); 
private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      if (saveFileDialog1.ShowDialog() == DialogResult.OK) 
      { 

       Backup bkpDBFull = new Backup(); 
       bkpDBFull.Action = BackupActionType.Database; 
       bkpDBFull.Database = "MyDatabase"; 
       BackupDeviceItem bkpDevice = new BackupDeviceItem(saveFileDialog1.FileName, DeviceType.File); 
       bkpDBFull.Devices.Add(bkpDevice); 
       bkpDBFull.BackupSetName = "Sample"; 
       bkpDBFull.BackupSetDescription = "Sample"; 
       bkpDBFull.SqlBackup(myServer); 
      } 
     } 
     catch (SmoException ex) 
     { 
      throw new SmoException(ex.Message, ex.InnerException); 
     } 
    } 

但我得到了一个错误我恢复Restore failed for Server 'PC-1\INSTANCE1'.

private void button2_Click(object sender, EventArgs e) 
    { 
     if (openFileDialog1.ShowDialog() == DialogResult.OK) 
     { 
      Restore restoreDB = new Restore(); 
      restoreDB.Database = "MyDatabase"; 
      restoreDB.Action = RestoreActionType.Database; 
      BackupDeviceItem bkpDevice = new BackupDeviceItem(openFileDialog1.FileName, DeviceType.File); 
      restoreDB.Devices.Add(bkpDevice); 
      restoreDB.ReplaceDatabase = true; 
      restoreDB.SqlRestore(myServer); 
     } 
    } 

我用的是同一台服务器中进行备份和恢复。尽管备份使用相同的服务器和数据库成功,但它为什么还原失败?

+0

它在SQL服务器错误日志中说了什么?这可能是因为在尝试还原时存在连接到数据库的连接,所以无法获得独占访问权限,然后恢复失败。 – steoleary

+0

服务器'PC-1 \ INSTANCE1'的恢复失败。 SSMS在操作过程中关闭。 –

+0

恢复已存在的数据库宽度数据库名称也可能导致此问题。 –

回答

0

有一点需要排除的是,它不喜欢机器名称中的连字符,这是你不应该做的。 如果您尝试使用IP地址作为服务器名称,应该排除这一点。

更有可能是其他人所说的使用数据库。

相关问题