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