Backup/Restore Database Sql Server

martedì 04 maggio 2010 - 17.55

nikkysixx Profilo | Junior Member

Salve a tutti,il titolo è abbastanza espicito,in pratica ho bisogno di una query che faccia un backup del mio file database.mdf e di una restore che lo ripristini eliminando il corrente,il tutto dovrebbe essere richiamato da vb.net, ma ho preferito postare il problema qua essendo un qualcosa di relativo a sql server

Come posso procedere?

Vi ringrazio ;)

p.s.Ho iniziato a risolvere il problema con una query simile ma ottengo un errore dopo l esecuzione

backup database prova to disk = 'c:\prova.bak'

"Messaggio 3201, livello 16, stato 1, riga 1
Impossibile aprire il dispositivo di backup 'c:\prova.bak'. Errore del sistema operativo 5(Accesso negato.).
Messaggio 3013, livello 16, stato 1, riga 1
Interruzione anomala di PROVA DATABASE in corso.
"
Ho letto la documentazione ma continuo a non capire
Grazie

ridaria Profilo | Expert

Questo funziona ERgraggiamente, gia testatato da due ANNI

Dim path_backup As String = ""
Dim path_backupMaster As String = ""
Dim path_backupMSDB As String = ""
Dim dataAttuale As String = ""
Dim cartellaBackup As String = ""


dataAttuale = (Replace(CStr(Date.Now), "/", "_"))
dataAttuale = (Replace(dataAttuale, ".", "_"))
dataAttuale = (Replace(dataAttuale, ":", "_"))
dataAttuale = (Replace(dataAttuale, " ", "_"))

cartellaBackup = PERCORSO_APPLICAZIONE & "\System\Backup\Backup_" & dataAttuale
CartellaCrea(cartellaBackup)

'nomeFileMDF =
Dim nome_backup As String = NOME_DATABASE & ".bak"
path_backup = cartellaBackup & "\" & nome_backup

'Crea la cartella se non esiste
If Not System.IO.Directory.Exists(PERCORSO_APPLICAZIONE & "\System\Backup") Then
System.IO.Directory.CreateDirectory(PERCORSO_APPLICAZIONE & "\System\Backup")
End If

'DATABASE DI SISTEMA
Dim Query As String
Query = "BACKUP DATABASE [" & NOME_DATABASE & "] TO DISK = N'" & path_backup & "' WITH NOFORMAT, NOINIT, NAME = N'" & NOME_DATABASE & "-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
ConnessioneApri()
Dim comando As New SqlCommand(Query, Conn)
comando.ExecuteNonQuery()

'DATABASE MASTER
path_backupMaster = cartellaBackup & "\" & "master.bak"
Query = "BACKUP DATABASE [master] TO DISK = N'" & path_backupMaster & "' WITH NOFORMAT, NOINIT, NAME = N'master-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
Dim comandoMaster As New SqlCommand(Query, Conn)
comandoMaster.ExecuteNonQuery()

'DATABASE MSDB
path_backupMSDB = cartellaBackup & "\" & "msdb.bak"
Query = "BACKUP DATABASE [msdb] TO DISK = N'" & path_backupMSDB & "' WITH NOFORMAT, NOINIT, NAME = N'msdb-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
Dim comandoMSDB As New SqlCommand(Query, Conn)
comandoMaster.ExecuteNonQuery()

ConnessioneChiudi()
'End Using

result = True

MsgBox("Backup dei dati Eseguito correttamente!" & vbCrLf & vbCrLf & _
"I dati Sono stati salvati nella cartella: " & cartellaBackup & vbCrLf & vbCrLf & _
"Si consiglia di SALVARE questi dati su un supporto Ottico esterno: CD, DVD ...", MsgBoxStyle.Information)

Riccardo D'Aria

nikkysixx Profilo | Junior Member

Grazie è davvero un bel lavoro ,complimenti :) ho solo un unico dubbio,e cioè come recuperare col restore uno specifico database?Credo debba usare OpenDialogFile per navigare nel file system ,ma non so bene come dovrei procedere
Grazie

ridaria Profilo | Expert

Per il restore, visto che questo tipo di backup è di tipo full, basta fare un RESTORE.

Via vb non ho codice, anche perché il ripristino dei Backup dei database li faccio a mano quando occorr e spero che non occorra mai! :-)

Cmq se la risp è stata esustiva mi flaggaresti il post come risolto?


Grazie

Riccardo D'Aria
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5