Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   SQL Server (http://www.forosdelweb.com/f87/)
-   -   problema con restore (http://www.forosdelweb.com/f87/problema-con-restore-541603/)

juancete 17/12/2007 07:33

problema con restore
 
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" pq ese es el nombre que me pone en propiedades de la BD, 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 arranco el visual studio y no entro en la BD "D:\Prueba\APP_DATA\DATOS.MDF" si que funciona, pero como entre en ella me 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.


como puedo cerrar todas las conexiones que pudiera haber? si espero unos minutos desde la ultima consulta a la BD tb funciona el restore, debe ser eso que se keda la conexion pillada

iislas 17/12/2007 13:41

Re: problema con restore
 
No puedes hacer un RESTORE de una base de datos que esta en uso, para sacar a todos tus usuarios de forma automatica.

ALTER DATABASE tubase SET SINGLE_USER WITH ROLLBACK IMMEDIATE

juancete 18/12/2007 03:07

Re: problema con restore
 
solucione el tema de las conexiones abiertas poniendo pooling=false, el problema que tengo ahora es que si hago restore una vez funciona todo, pero como haga otro restore inmediatamente me da este error:

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

lo mas raro es que si vuelvo a hacer un restore pues vuelve a funcionar, y si hago otro vuelve a fallar, asi en un bucle :-(

el conectionstring para conectarme a la BD D:\Prueba\APP_DATA\DATOS.MDF y hacer el backup es

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?

Cita:

Iniciado por iislas (Mensaje 2220798)
No puedes hacer un RESTORE de una base de datos que esta en uso, para sacar a todos tus usuarios de forma automatica.

ALTER DATABASE tubase SET SINGLE_USER WITH ROLLBACK IMMEDIATE

si ejecuto eso desde la BD master antes de hacer el restore y sin usar pooling=false sigue dandome 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.



EDITO: no respondais a este post ya que instale el sql server express y ya no tengo estos errores, por eso abro uno nuevo. Saludos ;)

Mithrandir 02/01/2008 12:28

Re: problema con restore
 
El nombre de la DB debe ser el nombre lógico, no el físico del MDF. Por ejemplo suponiendo que el nombre de tu DB es Datos:

backup database Datos
to disk='D:\Prueba\Backup\CopiaSeguridad.bak'
WITH INIT

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

juancete 02/01/2008 15:22

Re: problema con restore
 
el nombre logico que aparece en propiedades de la BD es el fisico, por eso lo puse entre [ ]

por todas las cosas raras que me pasaban con el sql server integrado en visual studio 2005 instale el sql server standard y ahora no me dan esos errores como comente en otro post

saludos ;)


La zona horaria es GMT -6. Ahora son las 21:57.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.