Errore nel Restore del Database

sabato 25 luglio 2009 - 16.42

luxsor Profilo | Guru

Ciao a tutti, ho il seguente problema.

Ho creato un BACKUP del mio Database SQL Server 2005 tramite la seguente procedura

BACKUP DATABASE ArchivioDB
TO DISK = 'J:\BACKUP\ArchivioDB.Bak'
WITH FORMAT, NAME = 'Full Backup of ArchivioDB';

siccome ho formatato il Server ed è andato perso il DB "originale" cioè quello che tenvo collegato a SQL.

Adesso ho provato ad eseguire il RESTORE della copia di backup che avevo tramite la seguente procedura però mi genera un' eccezzione:
RESTORE DATABASE ArchivioDB
FROM DISK = N'J:\BACKUP\ArchivioDB.Bak' WITH
FILE = 1,
NOUNLOAD,
REPLACE,
STATS = 10


Messaggio 3634, livello 16, stato 1, procedura restore, riga 8
Il sistema operativo ha restituito l'errore '5(Accesso negato.)' durante il tentativo di 'RestoreContainer::ValidateTargetForCreation' su 'J:\ArchivioDB.mdf'.
Messaggio 3156, livello 16, stato 5, procedura restore, riga 8
Impossibile ripristinare il file 'ArchivioDB' in 'J:\ArchivioDB.mdf'. Utilizzare WITH MOVE per identificare un percorso valido per il file.

Messaggio 3634, livello 16, stato 1, procedura restore, riga 8
Il sistema operativo ha restituito l'errore '5(Accesso negato.)' durante il tentativo di 'RestoreContainer::ValidateTargetForCreation' su 'J:\ArchivioDB_log.ldf'.
Messaggio 3156, livello 16, stato 5, procedura restore, riga 8
Impossibile ripristinare il file 'ArchivioDB_log' in 'J:\ArchivioDB_log.ldf'. Utilizzare WITH MOVE per identificare un percorso valido per il file.

Messaggio 3119, livello 16, stato 1, procedura restore, riga 8
Problemi durante la pianificazione dell'esecuzione dell'istruzione RESTORE. Per ulteriori informazioni, vedere i messaggi precedenti.
Messaggio 3013, livello 16, stato 1, procedura restore, riga 8
Interruzione anomala di RESTORE DATABASE in corso.

Sbaglio la procedura di RESTORE ?


------------------------
Luxsor

lbenaglia Profilo | Guru

>Sbaglio la procedura di RESTORE ?
Come si evince dal messaggio d'errore, l'operazione di RESTORE sta cercando di scrivere i file .mdf e .ldf su J:, ma SQL Server non ha le permission per accedere in scrittura.
Ora, temo che tu non voglia ripristinare lì il db, pertanto utilizza la clausola WITH MOVE per specificare il path corretto (che di default coincide con la directory Data sotto C:\Program Files\Microsoft SQL Server\bla...bla...).

Ciao!

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

luxsor Profilo | Guru

Ciao Lorenzo,
intendi così?

RESTORE DATABASE ArchivioDB
FROM DISK = N'J:\BACKUP\ArchivioDB.Bak' WITH MOVE 'ArchivioDB' to 'J:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ArchivioDB.mdf',
NOUNLOAD,
REPLACE,
STATS = 10

Non funziona


------------------------
Luxsor

lbenaglia Profilo | Guru

>Ciao Lorenzo,
>intendi così?
>
>RESTORE DATABASE ArchivioDB
>FROM DISK = N'J:\BACKUP\ArchivioDB.Bak' WITH MOVE 'ArchivioDB'
>to 'J:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ArchivioDB.mdf',
>NOUNLOAD,
>REPLACE,
>STATS = 10
>
>Non funziona
Ti sei dimenticato dell'.ldf.
Ma SQL Server è installato su J:?

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

luxsor Profilo | Guru


>Ti sei dimenticato dell'.ldf.
Devo inserire un doppio WITH MOVE ?

>Ma SQL Server è installato su J:?
Si, certo


------------------------
Luxsor

lbenaglia Profilo | Guru

>Devo inserire un doppio WITH MOVE ?
Esatto:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=13109

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