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????

Preguntas similare

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????

Respuesta Responder a este mensaje
#2 el.sarda
18/12/2007 - 17:12 | Informe spam
On 18 dic, 16:03, Gux (MVP) wrote:
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 MVPhttps://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????



para cerrarlas uso pooling=false, hay alguna otra manera?
Respuesta Responder a este mensaje
#3 Gux (MVP)
18/12/2007 - 18:55 | Informe spam
"" wrote:

On 18 dic, 16:03, Gux (MVP) wrote:
> 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.
>

para cerrarlas uso pooling=false, hay alguna otra manera?




En las aplicaciones use el método Close del objeto Connection.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida