problema con restore database

18/12/2007 - 13:32 por el.sarda | Informe spam
lo que me pasa es algo raro. uso el visual studio 2005 con el sql
express integrado.

desde la base de datos "D:\Prueba\APP_DATA\DATOS.MDF" (ese es el
nombre que me pone en propiedades), hago

backup database [D:\Prueba\APP_DATA\DATOS.MDF] to disk='D:\Prueba
\Backup\CopiaSeguridad.bak' WITH INIT

desde la BD master hago:

restore database [D:\Prueba\App_Data\Datos.mdf] from disk='D:\Prueba
\Backup\CopiaSeguridad.bak'
with replace

funciona a veces, si no hay conexiones abiertas, pq si las hay da el
error:

"El sistema operativo devolvió el error '32(El proceso no tiene acceso
al archivo porque está siendo utilizado por otro proceso.)' al
intentar RestoreContainer::ValidateTargetForCreation' en 'D:\Prueba
\APP_DATA\Datos.mdf'. El archivo 'Datos' no se puede restaurar en 'D:
\Prueba\APP_DATA\Datos.mdf'. Utilice WITH MOVE para identificar una
ubicación válida para el archivo. El sistema operativo devolvió el
error '32(El proceso no tiene acceso al archivo porque está siendo
utilizado por otro proceso.)' al intentar
RestoreContainer::ValidateTargetForCreation' en 'D:\Prueba\APP_DATA
\Datos_log.ldf'. El archivo 'Datos_log' no se puede restaurar en 'D:
\Prueba\APP_DATA\Datos_log.ldf'. Utilice WITH MOVE para identificar
una ubicación válida para el archivo. Se identificaron problemas al
planear la instrucción RESTORE. Los mensajes anteriores proporcionan
detalles. Fin anómalo de RESTORE DATABASE."

este error no pasa si uso pooling=false, pero entonces me sucede otro
error, si intento hacer dos restauraciones seguidas (aunque cambie los
datos) al intentar conectarme a D:\Prueba\App_Data\Datos.mdf me da el
error:

"No se puede abrir la base de datos predeterminada del usuario. Error
de inicio de sesión."

por si sirve de algo estos son los conectionstrings que uso, para
conectarme a la BD D:\Prueba\APP_DATA\DATOS.MDF y hacer el backup:

Data Source=.\SQLEXPRESS;pooling=false;AttachDbFilename =|
DataDirectory|\Datos.mdf;Integrated Security=True;User Instance=True

el conectionstring para conectarme a la BD master y hacer el restore
es

Data Source=PC\SQLEXPRESS;Initial Catalog=master;Integrated
Security=True


alguna idea de lo que me pasa o sabeis de algun metodo que funcione
para hacer backups y restores????
 

Leer las respuestas

#1 Gux (MVP)
18/12/2007 - 16:03 | Informe spam
Para hacer un RESTORE de una base de datos en SQL Server 2005 Express no debe
usted tener conexiones abiertas a dicha base de datos.

La edición Enterprise sí permite hacer "online restore" con usuarios
conextados.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"" wrote:

lo que me pasa es algo raro. uso el visual studio 2005 con el sql
express integrado.

desde la base de datos "D:\Prueba\APP_DATA\DATOS.MDF" (ese es el
nombre que me pone en propiedades), hago

backup database [D:\Prueba\APP_DATA\DATOS.MDF] to disk='D:\Prueba
\Backup\CopiaSeguridad.bak' WITH INIT

desde la BD master hago:

restore database [D:\Prueba\App_Data\Datos.mdf] from disk='D:\Prueba
\Backup\CopiaSeguridad.bak'
with replace

funciona a veces, si no hay conexiones abiertas, pq si las hay da el
error:

"El sistema operativo devolvió el error '32(El proceso no tiene acceso
al archivo porque está siendo utilizado por otro proceso.)' al
intentar RestoreContainer::ValidateTargetForCreation' en 'D:\Prueba
\APP_DATA\Datos.mdf'. El archivo 'Datos' no se puede restaurar en 'D:
\Prueba\APP_DATA\Datos.mdf'. Utilice WITH MOVE para identificar una
ubicación válida para el archivo. El sistema operativo devolvió el
error '32(El proceso no tiene acceso al archivo porque está siendo
utilizado por otro proceso.)' al intentar
RestoreContainer::ValidateTargetForCreation' en 'D:\Prueba\APP_DATA
\Datos_log.ldf'. El archivo 'Datos_log' no se puede restaurar en 'D:
\Prueba\APP_DATA\Datos_log.ldf'. Utilice WITH MOVE para identificar
una ubicación válida para el archivo. Se identificaron problemas al
planear la instrucción RESTORE. Los mensajes anteriores proporcionan
detalles. Fin anómalo de RESTORE DATABASE."

este error no pasa si uso pooling=false, pero entonces me sucede otro
error, si intento hacer dos restauraciones seguidas (aunque cambie los
datos) al intentar conectarme a D:\Prueba\App_Data\Datos.mdf me da el
error:

"No se puede abrir la base de datos predeterminada del usuario. Error
de inicio de sesión."

por si sirve de algo estos son los conectionstrings que uso, para
conectarme a la BD D:\Prueba\APP_DATA\DATOS.MDF y hacer el backup:

Data Source=.\SQLEXPRESS;pooling=false;AttachDbFilename =|
DataDirectory|\Datos.mdf;Integrated Security=True;User Instance=True

el conectionstring para conectarme a la BD master y hacer el restore
es

Data Source=PC\SQLEXPRESS;Initial Catalog=master;Integrated
Security=True


alguna idea de lo que me pasa o sabeis de algun metodo que funcione
para hacer backups y restores????

Preguntas similares