2012-01-13 8 views
0

Я использую следующую функцию для резервного копирования базы данных SQL Server с помощью SMO .. но резервная копия не работает ... Я понятия не имею, почему это не получается ... любая помощь приветствуется.Резервное копирование базы данных 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

+0

резервное копирование не удалось .. это ... у меня нет студии управления, установленной в моем компьютере ... это причина отказа от резервного копирования ??? –

+0

Вам не нужно было устанавливать соединение как: 'Dim conn As New ServerConnection (« MONO-PC \\ SQLEXPRESS »)' (две обратные косые черты)? –

ответ

0

Какую версию сервера sql вы используете? Я использовал, полагаю, 10.5 (sql server 2008 R2 Service Pack 1), а объект SMO не поддерживался.

Вместо этого я использую вызовы sql.

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

, когда я пытаюсь по-своему ... Я получаю «Ошибка при входе в систему» ​​ –

+0

'Private Sub Button1_Click (отправитель ByVal As System.Object, ByVal e As System.EventArgs) Ручки ButtonBackup.Click 'TextBoxBackupDirectory.Text = Application.UserAppDataPath ' BackupSqlDatabase() Dim жулик Как SqlConnection Dim ЦМД Как SqlCommand CON = New SqlConnection ("Источник данных = \ SQLEXPRESS;. Initial Catalog = LIC; Trusted_Connection = да ") cmd = Новый SqlCommand (" BACKUP DATABASE LIC на диск = 'C: \ Backup \ ICLS.bak' ", con) con.Open() cmd.ExecuteNonQuery() con.Close() MsgBox ("LI") End Sub' –

+0

Вам может понадобиться, чтобы дать свой журнал в пользователей больше прав на базу данных. Чтобы проверить, разрешите полный контроль, а затем отключите его, пока он больше не работает. Извините, я не знаю точных прав, которые нужны пользователю, но это должно помочь вам научиться изучать эти проблемы в будущем. – JeremyK