Problema con restore del database

giovedì 22 giugno 2006 - 14.14

us01739 Profilo | Expert

Ciao a tutti,
c'è qualcuno che sa spiegarmi perchè eseguendo il codice qui sotto....

RESTORE DATABASE CAP
FROM DISK ='D:\Database_CAP\SQL_BACKUP\cap.bak'

ricevo dal server il seguente errore??

Server: Msg 3101, Level 16, State 1, Procedure p_cap_restore, Line 2
Exclusive access could not be obtained because the database is in use.
Server: Msg 3013, Level 16, State 1, Procedure p_cap_restore, Line 2
RESTORE DATABASE is terminating abnormally.

PS: si tratta di un sql di "backup", e nessun utente vi è collegato.
Ho provato anche a lanciarlo appena dopo il riavvio ma idem.... :-(

Grazie a tutti comunque....
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

lbenaglia Profilo | Guru

>Server: Msg 3101, Level 16, State 1, Procedure p_cap_restore,
>Line 2
>Exclusive access could not be obtained because the database is
>in use.
>Server: Msg 3013, Level 16, State 1, Procedure p_cap_restore,
>Line 2
>RESTORE DATABASE is terminating abnormally.
>
>PS: si tratta di un sql di "backup", e nessun utente vi è collegato.

A dire la verità tu hai eseguito la stored procedure p_cap_restore e non il comando di RESTORE che hai postato...


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

us01739 Profilo | Expert

Sì, in effetti è una SP con dentro quelle due istruzioni e basta..
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

lbenaglia Profilo | Guru

>Sì, in effetti è una SP con dentro quelle due istruzioni e basta..

Come esegui la sp?
Da QA o da un JOB?
Se la esegui da QA, qual è il database corrente?

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

us01739 Profilo | Expert

Ho provata sia dal QA facendo:
use cap
go
exec p_cap_restore
go
sia da CMD che esegue una dts che a suo tempo lancia la SP;
l'istruzione nel cmd è

dtsrun /SUSCAPWC01 /Usa /PXXXXXXXX /NEXEC_P_CAP_BACKUP
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

lbenaglia Profilo | Guru

>Ho provata sia dal QA facendo:
>use cap
>go

Appunto. Sei tu stesso che stai utilizzando il db in fase di restore
Se esegui il restore da un altro database, vedrai che funzionerà correttamente.

>sia da CMD che esegue una dts che a suo tempo lancia la SP;
>l'istruzione nel cmd è
>
>dtsrun /SUSCAPWC01 /Usa /PXXXXXXXX /NEXEC_P_CAP_BACKUP

Non usiamo a sproposito le tecnologie offerte da SQL Server.
I restore dovrebbero essere eseguiti da un DBA solo quando si ha una corruzione del db, una perdita di dati a causa di una operazione maldestra (UPDATE/DELETE) oppure per ricreare il database su una istanza differente.
Questa operazione il più delle volte viene eseguita da QA, da OSQL/SQLCMD (in SQL Server 2005) o più raramente da EM.

In tutta sincerità non vedo l'esigenza di inglobare il comando di RESTORE in una sp...

Ciao!

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

us01739 Profilo | Expert

In effetti ho sicuramente fatto un po' di confusione. Quello che desidero fare è quanto segue:
ho a disposizione due server: su uno c'è il database di produzione, mentre sull'altro, non usato, vorrei che tutte le sere restorasse il backup fatto dal primo server, in modo tale che sia sempre allineato; dovendo implementare comunque anche il backup di file e cartelle, avevo pensato di organizzare il tutto in un unico batch, da cui il motivo di fare un DTS e lanciarlo da cmd. Comunque grazie, perchè mi sei stato di grandissimo aiuto.
PS: a questo punto ne approfitto: è possibile installare solamente Enterprise Manager e QA? ed eventualmente come?
GRAZIE 10000000 FIN DA ORA.
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------

lbenaglia Profilo | Guru

>dovendo implementare comunque anche il backup di file
>e cartelle, avevo pensato di organizzare il tutto in un unico
>batch, da cui il motivo di fare un DTS e lanciarlo da cmd.

Puoi lanciare qualsiasi comando T-SQL dall'utility command line osql.exe senza scomodate i DTS.
Se hai un batch schedulato che fa la copia di altri dati, puoi aggiungere in fondo una chiamata ad osql per effettuare anche il backup ed eventualmente il restore del tuo database.

>PS: a questo punto ne approfitto: è possibile installare solamente
>Enterprise Manager e QA? ed eventualmente come?

EM e QA costituiscono parte delle utility client di SQL Server e come tali sono soggetti a licenza.
Questo significa che per installare EM e QA su un computer client, devi disporre delle corrispettive licenze client.

Dalle FAQ:

Q. Do I need a separate license to run the SQL Server tools and analysis services?
A. No, a separate license is not required. However, any device that has SQL Server tools or technologies installed must have a valid SQL Server license.

http://www.microsoft.com/sql/howtobuy/faq.mspx

Esistono diversi client grafici shareware o freeware che offrono funzionalità simili.
Uno di questi è DbaMgr2K di Andrea Montanari:
http://www.asql.biz/it/DbaMgr.aspx

>GRAZIE 10000000 FIN DA ORA.
Prego.

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