Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Backup automatico en SQL Server Express

1,136 views
Skip to first unread message

Luis R.

unread,
Jul 2, 2008, 4:02:54 AM7/2/08
to
Saludos a todo el foro.

Tengo SQL Server 2005 Express con una pequeña BBDD perteneciente a una
aplicación. La versión de SQL es la 9.0.2047

¿Cómo puedo realizar un backup de una base de datos concreta de forma
automática? Desde el "Management Studio"se que puedo hacerla manual (botón
derecha del ratón sobre la BBDD, tareas y copia de seguridad) pero no veo
ninguna opción de programación de la copia.

¿Se puede crear una tarea de windows con una linea de comandos que realice
el proceso? Si es así, agradecería información sobre el comando a usar,
parámetros, etc.

En caso contrario, había pensado en parar el servicio de SQL, copiar a pelo
los 2 archivos, y volver a arrancar el servicio de SQL ¿Es eficiente esta
solución? El proceso se lanzaría a las 22:00 horas, cuando ningún usuario
esté trabajando.

Gracias,
Luis R.

Juan Diego Bueno

unread,
Jul 2, 2008, 4:21:22 AM7/2/08
to
Hola Luis:


Luis R. ha formulado la pregunta :

Creo que hay utilidades que automatizan tareas en estos casos, pero
ahora mismo no recuerdo. Yo hago lo que tu planteas, una tarea con un
comando que realiza el backup. En mi caso, es un ejecutable en C que
hace una llamada a la shell, pero podría ser un .bat mismamente.
Antes debes crear un dispositivo de backup

La sintaxis que yo utilizo es la siguiente:

osql -S SERVIDOR\SQLEXPRESS -U usuario -P contraseña -Q "backup
database nombrebd to dispositivobackup"

Puesto que este comando estará visible en el archivo .bat o si lo
llamas desde un shell en un exe, te recomiendo que crees un usuario que
sólo tenga permisos para crear backups sobre esa base de datos
(asegúrate que solo para crear y no para restaurar, que igual a alguien
se le ocurre restaurar una anterior y te hace un hijo de madera).

Saludos

--
http://www.moondance.es


Luis R.

unread,
Jul 2, 2008, 4:38:00 AM7/2/08
to
Gracias por ayudarme, Juan Diego.

veo que la sentencia BACKUP TO anexa la copia de seguridad al contenedor,
haciendo éste cada vez más grande. ¿Habría posibilidad de vaciar el
contenedor antes de realizar la copia?

Por otro lado, a parte de la BD de mi aplicación, entiendo que también
tendré que hacer copia de las BD master y tempdb ¿Correcto?

Saludos,
Luis R.

"Juan Diego Bueno" <moon...@quita-esto.gmail.com> escribió en el mensaje
news:mn.126d7d8...@quita-esto.gmail.com...

Luis R.

unread,
Jul 2, 2008, 4:51:53 AM7/2/08
to
Otra cosa, ¿Cómo le doy los permisos necesarios para que solo pueda hacer
copias de seguridad y no pueda restaurarlas? He creado un usuario de SQL, y
en el apartado "Asignación de usuarios" dentro de las propiedades, marco las
BBDD de las cuales quiero hacer el backup, y en cada una de ellas marco la
función de BBDD "bd_backupoperator", y ninguna otra.


"Juan Diego Bueno" <moon...@quita-esto.gmail.com> escribió en el mensaje
news:mn.126d7d8...@quita-esto.gmail.com...

Juan Diego Bueno

unread,
Jul 2, 2008, 5:34:30 AM7/2/08
to
Hola Luis:
Después de mucho reflexionar, Luis R. ha escrito :

> veo que la sentencia BACKUP TO anexa la copia de seguridad al contenedor,
> haciendo éste cada vez más grande. ¿Habría posibilidad de vaciar el
> contenedor antes de realizar la copia?

Pues solo se me ocurre que crees otra tarea que copie el archivo a otra
ubicación. También puedes crear un backup diferencial que solo recoja
los cambios de un backup a otro.

> Por otro lado, a parte de la BD de mi aplicación, entiendo que también tendré
> que hacer copia de las BD master y tempdb ¿Correcto?

Pues la verdad que ni idea, es decir, yo hago backups de las BDs que
necesito, y no suelo hacerlo de esas dos. Para mantener usuarios y
objetos propios del servidor, supongo que es necesario.

> Otra cosa, ¿Cómo le doy los permisos necesarios para que solo pueda hacer
> copias de seguridad y no pueda restaurarlas? He creado un usuario de SQL, y
> en el apartado "Asignación de usuarios" dentro de las propiedades, marco las
> BBDD de las cuales quiero hacer el backup, y en cada una de ellas marco la
> función de BBDD "bd_backupoperator", y ninguna otra.

Uy... si te digo que esto lo hice una vez y ahora no recuerdo cómo...

Creo que fue así:

Tomas el usuario en el apartado de usuarios propios de la BD, en
Propiedades-->Elementos que pueden protegerse. En Agregar, seleccionas
la base de datos en cuestión (en tipos de objeto--bases de datos y como
nombre de objeto, el de la BD). Tendrás en la parte inferior los
permisos explícitos. Yo solo tengo marcados el de backup database,
backup log, checkpoint y connect. El resto los tengo denegados.

Espero que te sirva

Saludos

--
http://www.moondance.es


Luis R.

unread,
Jul 2, 2008, 5:41:04 AM7/2/08
to
Te cuento hasta donde he llegado:

Si a la sentencia T-SQL se añade al final de la misma "WITH INIT", el
archivo de backup se "limpia" o "inicializa".

Por cierto, creo que las BBDD del sistema que conviene copiar son master y
msdb. Esto nos lo podría confirmar algún gurú del foro...

Queda pendiente el tema de los permisos necesarios al usuario "backup" para
que solo pueda realizar copias de seguridad, pero no pueda restaurarlas ni
nada más.

Saludos,
Luis R.


"Juan Diego Bueno" <moon...@quita-esto.gmail.com> escribió en el mensaje

news:mn.12b67d8...@quita-esto.gmail.com...

Gux (MVP)

unread,
Jul 2, 2008, 10:21:01 AM7/2/08
to
SQL Server Express no dispone de agente para agendar la ejecución de tareas.
Pero usted puede hacer lo siguiente: Escriba un script con la sentencia
BACKUP adecuada, ejecute dicho script usando SQLCMD.EXE.

Finalmente agende la ejecución usando el Task Scheduler de Windows.

--
Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
--
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.

Maxi Accotto

unread,
Jul 2, 2008, 11:35:41 AM7/2/08
to
Hola, revisate este link

http://www.codeproject.com/KB/database/SQLAgent.aspx

--

Saludos
-----------------------------------------------------------------------
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-------------------------------------------------------------------

"Luis R." <lroy...@Restructurascorellanas.com> escribió en el mensaje de
noticias:evtdhoB3...@TK2MSFTNGP03.phx.gbl...

0 new messages