[sqlserver2005 express] Backup/Restore remoto<->locale tramite script ...

venerdì 28 luglio 2006 - 18.49

leonardop Profilo | Junior Member

Salve a tutti!
Premetto che ho appena iniziato a usare sql server..
Avrei la necessità di effettuare il backup/restore completo di un database su sqlserver 2005 express, tramite uno script Sql.
Qualcuno mi può aiutare? o darmi qualche link?
Ho a disposizione Sql server management 2005.

grazie mille..

leonardo
http://blogs.dotnethell.it/leonardo/

lbenaglia Profilo | Guru

>Avrei la necessità di effettuare il backup/restore completo di
>un database su sqlserver 2005 express, tramite uno script Sql.
>Qualcuno mi può aiutare? o darmi qualche link?
>Ho a disposizione Sql server management 2005.

Ciao Leonardo,

SQL Server ci offre i comandi T-SQL BACKUP DATABASE e RESTORE DATABASE per effettuare questo tipo di operazioni.
La sintassi è spiegata dettagliatamente sui Books Online:

"Procedura: Creazione di un backup completo del database (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms191304.aspx

"Procedura: Ripristino di un backup del database (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms189895.aspx

"BACKUP (Transact-SQL) "
http://msdn2.microsoft.com/it-it/library/ms186865.aspx

"RESTORE (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms186858.aspx

>grazie mille..
Prego.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

leonardop Profilo | Junior Member

Grazie per la risposta ma penso che mi stia sfuggendo qualcosa..

Ho eseguito lo script
USE master GO EXEC sp_addumpdevice 'disk', 'mydbData', 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\mydbData.bak' BACKUP DATABASE mydb TO mydbData
Risultato :
Messaggio 15247, livello 16, stato 1, procedura sp_addumpdevice, riga 24 User does not have permission to perform this action.

La mia necessità è quella di effettuare il backup/restore di tutta la struttura e di dati del db in hosting(che lo effettua solo una volta a settimana) in un file in locale.

Scusate se sono poco chiaro, ma come avrete dedotto, mi sono avvicinato
alla materia da poco.

Mi fareste un esempio di backup/restore?

leonardo
http://blogs.dotnethell.it/leonardo/

lbenaglia Profilo | Guru

>Ho eseguito lo script
>
>USE master
>GO
>EXEC sp_addumpdevice 'disk', 'mydbData',
>'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\mydbData.bak'
>
>BACKUP DATABASE mydb
> TO mydbData

>Risultato :
>Messaggio 15247, livello 16, stato 1, procedura sp_addumpdevice,
>riga 24
>User does not have permission to perform this action.

Punto 1: non serve definire a tutti costi un device per effettuare il backup, puoi tranquillamente ricorrere al parametro TO DISK.

>La mia necessità è quella di effettuare il backup/restore di
>tutta la struttura e di dati del db in hosting(che lo effettua
>solo una volta a settimana) in un file in locale.

L'operazione di backup avviene sul server che ospita l'instanza SQL Server, pertanto il file potrà essere salvato su una risorsa locale, oppure su una risorsa di rete "visibile" al computer.
Capisci bene che l'unità logica C: del tuo computer casalingo non può essere mappata sul server dell'hoster, pertanto l'operazione risulta impossibile.
Una alternativa potrebbe essere quella di effettuare localmente al server il backup e posizionare il file in una share FTP; dal tuo PC ti collegherai con un qualunque client FTP (al limite ftp.exe) al server e provvederai a scairicare il file in locale.

>Scusate se sono poco chiaro, ma come avrete dedotto, mi sono
>avvicinato
>alla materia da poco.
No problem

>Mi fareste un esempio di backup/restore?
Oltre a quanto trovi sui Books Online, il ng microsoft.public.it.sql pullula di esempi come ad esempio:
http://groups.google.it/group/microsoft.public.it.sql/msg/3279d55659e98ef9

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

leonardop Profilo | Junior Member

Ok, ho capito come effettuare il backup..mi rimane il problema del RESTORE visto che non ho i permessi per effettuare i restore.

Messaggio 3110, livello 14, stato 1, riga 1 User does not have permission to RESTORE database 'myDB'. Messaggio 3013, livello 16, stato 1, riga 1 RESTORE DATABASE is terminating abnormally.

Come risolvo??

questo il codice usato : RESTORE DATABASE myDB FROM DISK = 'myDB.bak' WITH MOVE 'myDB' TO 'myDB.mdf', MOVE 'myDB_log' TO 'myDB.ldf'; GO
leonardo
http://blogs.dotnethell.it/leonardo/

lbenaglia Profilo | Guru

>Ok, ho capito come effettuare il backup..mi rimane il problema
>del RESTORE visto che non ho i permessi per effettuare i restore.
>
>Messaggio 3110, livello 14, stato 1, riga 1
>User does not have permission to RESTORE database 'myDB'.
>Messaggio 3013, livello 16, stato 1, riga 1
>RESTORE DATABASE is terminating abnormally.
>
>Come risolvo??

Il restore dove lo effettui? In locale o presso l'hoster?
In entrambi i casi devi assegnare alla tua login le permission necessarie dal DBA.

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

leonardop Profilo | Junior Member

>Il restore dove lo effettui? In locale o presso l'hoster?
>In entrambi i casi devi assegnare alla tua login le permission
>necessarie dal DBA.
>
>Ciao!
>

Presso l'hoster..a cui ho chiesto informazioni, e mi ha detto che i permessi di restore sono 'disabilitati' per motivi di sicurezza.
Mi ha anche consigliato di effettuare di effettuare backup/restore tramite applicazione da me costruita che estragga i dati dal db (non ho idea come si faccia!) o appoggiarmi a dei software che consentono di effettuare backup di database SQL Server, sia in forma binaria che come script SQL.

Ciao!

leonardo
http://blogs.dotnethell.it/leonardo/

lbenaglia Profilo | Guru

>Presso l'hoster..a cui ho chiesto informazioni, e mi ha detto
>che i permessi di restore sono 'disabilitati' per motivi di sicurezza.

Bene, quindi scordati di utilizzare quei comandi

>Mi ha anche consigliato di effettuare di effettuare backup/restore
>tramite applicazione da me costruita che estragga i dati dal
>db (non ho idea come si faccia!) o appoggiarmi a dei software
>che consentono di effettuare backup di database SQL Server, sia
>in forma binaria che come script SQL.

Guarda se riesci almeno a generare uno script con la struttura del database (non so che strumento utilizzi per accedere al database in hosting).
Una volta generato lo script, puoi salvare il contenuto delle tabelle in n files utilizzando l'utility bcp.exe. Se invece vuoi generare i comandi di INSERT, puoi ricorrere alla stored procedure 'sp_generate_inserts' che puoi scaricare dal seguente link:
http://vyaskn.tripod.com/code.htm

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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