2012-01-13 114 views
0

我正在使用以下函數來備份使用SMO的SQL Server數據庫..但備份失敗...我不知道,爲什麼它失敗...任何幫助表示讚賞。SMO數據庫備份

Private Sub BackupSqlDatabase() 

    Dim conn As New ServerConnection("MONO-PC\SQLEXPRESS") ' -- set SQL server connection given the server name, user name and password 
    Dim oSQLServer As New Server(conn) '--create the SMO server object using connection 

    Dim OrigBackupPath As String = oSQLServer.Information.MasterDBPath.Replace("\DATA", "C:\Backup\DB_BACKUP_NAME.BAK") ' -- set the path where backup file will be stored 

    Dim bkDevItem As New BackupDeviceItem(OrigBackupPath, DeviceType.File) ' -- create SMO.Backupdevice object 

    With oBackup ' Set the backup object property 
     .Action = BackupActionType.Database 
     .Database = "LIC.MDF" 
     .Devices.Add(bkDevItem) 
     .Initialize = True 
     .Checksum = True 
     .ContinueAfterError = True 
     .Incremental = False 
     .LogTruncation = BackupTruncateLogType.Truncate 
     .SqlBackup(oSQLServer) ' backup SQL database 
    End With 

End Sub 
+1

您是否收到錯誤消息? – JNK 2012-01-13 16:15:41

+0

備份失敗..有點......我沒有管理工作室安裝在我的電腦......是否是備份失敗的原因? – 2012-01-13 16:17:52

+0

你不需要將連接設置爲:'Dim conn As New ServerConnection(「MONO-PC \\ SQLEXPRESS」)'(兩個反斜槓)? – 2012-01-13 16:18:18

回答

0

你使用的是什麼版本的sql server?我正在使用我相信10.5(SQL Server 2008 R2服務包1)和SMO對象不支持。

現在我使用sql調用。

BACKUP DATABASE DBNAMEHERE TO DISK = 'destPath' WITH FORMAT 
+0

當我嘗試它你的方式...我得到「登錄失敗錯誤」 – 2012-01-13 16:27:48

+0

'私人小鍵Button1_Click(ByVal發件人爲System.Object,ByVal e爲System.EventArgs)處理ButtonBackup.Click 'TextBoxBackupDirectory.Text = Application.UserAppDataPath ' BackupSqlDatabase() 昏暗CON作爲SqlConnection的 昏暗CMD作爲的SqlCommand CON =新的SqlConnection(「數據源= \ SQLEXPRESS;初始目錄= LIC; Trusted_Connection =是「) cmd =新的SqlCommand(」BACKUP DATABASE LIC to disk ='C:\ Backup \ ICLS.bak'「,con) con.Open() cmd.ExecuteNonQuery() con.Close() MsgBox(「LI」) End Sub' – 2012-01-13 16:28:13

+0

您可能需要爲用戶提供更多數據庫權限。爲了測試,允許完全控制,然後禁用每個權利,直到它不再有效。對不起,我不知道用戶需要的確切權限,但這應該有助於您瞭解未來如何研究這些問題。 – JeremyK 2012-01-14 02:35:27