Backup-Restore

Backup-Restore

Tengo una web que llama a un
BD SQL2005. He encontrado en vuestra web unas sintaxis que funcionan de
maravilla:

RESTORE VERIFYONLY FROM DISK ='C:\mibase.bak'
GO
RESTORE DATABASE servei_estudis FROM DISK ='C:\mibase.bak'
GO

Una vez ejecutadas, el restore lo hace completo y correcto, pero con un
inconveniente, pierdo el User que utilizo en el DNS dentro del SQL 2005.

Existe alguna forma de restore un BD SQL 2005 a partir de sintaxis y que
no pierda el User?

Muchas gracias de antemano.


Comentarios

Que tal.
soy algo nuevo en esto y tengo un gran problema, utilizo SQL server 2000, accidentalemente han borrado una BD, fisicamente el archivo *.mdf no existe, pero sigo conservando el archivo log de esa BD perdida...

Pregunta: ¿Puedo recuperar esta BD a partir del archivo log ?, en caso afirmativo ¿cómo lo hago?

De antemano mil gracias por su ayuda.

Hola Ariel !, bueno te cuento que lamentablemente no se puede recuperar una base de usuario solo a partir de el archivo de log (*.ldf).
Si es una base de sistema por ej: master, si se puede recuperar y hay varias maneras.

Suerte.

apreciables sres. Dios les bendiga, tengo un problema, tengo sql 2005, tengo un backup y necesito unicamente restaurar unas tablas, no la base completa, que procesos debo realizar, por su ayuda muchas gracias.

Hola Walter como estas !,

te comento en SQL Server 2005 no tenes nada en forma nativa, para restorear solo una tabla. Si lo posees con herramientas de terceros que utilizan la API de SQL Server y desarrollan una herramienta para ello.

En este caso lo que podes hacer es realizar una restore de la base bajo otro nombre, luego mediante la utilidad BCP realizas la descarga y carga de datos que necesites.

Espero te sirva y suerte !

Hola Jordi, como estás, si no hay problema en ayudarte, pasemos detallar el inconveniente:

Al realizar un restore de base de datos, SQL Server, te restorea las tablas de sistema también (sysusers) con todos los usuarios definidos.

Puede estar sucediendo lo siguiente:

1) Huerfano el usuario, al tratarse de una cuenta standard y el restore se realiza en otro motor de base de datos.
2) Huerfano el usuario, al no estar defino en la master database.
3) Huerfano el usuario, al tratarse un usuario trusted (windows) y el mismo fue regeneardo en el dominio o AD.

Te paso soluciones que se encuentran en ntra sitio.

http://www.todosql.com/blog/200807/reportar-usuarios-huerfanos-sql-serve...

http://www.todosql.com/blog/200706/usuarios-huerfanos-en-sql-server

Espero tus comentarios.

Jordi, te recomiendo lo siguiente:

El backup de la base debes realizarlo de la siguiente manera:

BACKUP DATABASE servei_estudis TO DISK = 'C:\servei_estudis.bak' WITH INIT

De esta manera guardas siempre el último backup realizado y para restorearlo solo tiene la data del último resguardo.

Y el restore sí te va a funcionar como lo estabas haciendo:

RESTORE VERIFYONLY FROM DISK ='C:\servei_estudis.bak'
GO
RESTORE DATABASE servei_estudis FROM DISK ='C:\servei_estudis.bak'
GO

Jordi, te recomiendo lo siguiente:

El backup de la base debes realizarlo de la siguiente manera:

BACKUP DATABASE servei_estudis TO DISK = 'C:\mibase.bak' WITH INIT

De esta manera guardas siempre el último backup realizado y para restorearlo solo tiene la data del último resguardo.

Y el restore sí te va a funcionar como lo estabas haciendo:

RESTORE VERIFYONLY FROM DISK ='C:\mibase.bak'
GO
RESTORE DATABASE servei_estudis FROM DISK ='C:\mibase.bak'
GO

Perfecto, lo he probado y lo hace perfecto. Una pregunta, me gustaria ejecutar el restore que me has pasado, de una manera automatica. Sabes si se puede hacer un .bat que ejecute esta sql? Es que me gustaria hacerlo automáticamente cada semana.

Si se puede hacer, la solución pueden ser:

1) Creamos un archivo .cmd y agregamos la siguiente línea:

sqlcmd -E -iC:\ScriptBackup.SQL -oC:\SalidaBackupSQL -SNombreServerSQL.

(reemplaza entrada,salida y nombre del server por lo que tienes en producción)

Luego lo guardas y lo ejecutas por medio de las tareas programadas del OS.

Abrazo virtual.

Hola Juan,

bueno, gracias por todo, con el comando cmd que me has pasado funciona de maravilla. Este apartado espero que ayude a otros que esten en una situación como la mia.

Repito, muchas gracias por todo y por la dedicación que me has dado sin animo de lucro y que me a sacado de un apuro.

Un abrazo virtual y nos vemos virtualmente en la próxima meta!!

jordi.