2013-08-20 147 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地址作爲服務器名稱,應該排除這一點。

更有可能是其他人所說的使用數據庫。

相關問題