Cómo hacer un backup de SQL Server fácil
base de datos, programación Julio 26th, 2008
menéame - SQL Server es una base de datos más que conocida, así que hay multitud de aplicaciones para hacer una copia de seguridad, incluyendo claro, las de la propia Microsoft.
De todas formas es posible hacer copias de seguridad sin contar con ninguna de esas herramientas gráficas y de forma sencilla y desatendida, de forma que se puedan programar de forma automática.
Lo que voy a comentar lo uso para bases de datos de prueba o en fases iniciales de producción ya que realiza una copia completa (no diferencial).
Objetivo: hacer una copia de seguridad diaria y sin intervención de administrador, que además esos ficheros se guarden en otro servidor diferente y que pueda conservar las copias antiguas para tener un historial y poder restaurar la base de datos días atrás por si hay un problema de programación.
Para conseguirlo:
- Supongamos que la base de datos se llama… Dummy (original, ¿no?). Creamos en un fichero de texo .SQL con la sentencia que realiza el volcado de datos. El fichero lo llamo Dummybackup.sql y contiene lo siguiente:
BACKUP DATABASE [sea] TO DISK = N'C:\Dummybackup.bak' WITH DESCRIPTION = N'Copia de seguridad completa de Base de datos', NOFORMAT, NOINIT, NAME = N'Dummybackup.bak', SKIP, NOREWIND, NOUNLOAD, STATS = 10GOdeclare @backupSetId as intselect @backupSetId = position from msdb..backupset where database_name=N'dummy' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'dummy' )if @backupSetId is null begin raiserror(N'Error de comprobación. No se encuentra la información de copia de seguridad para la base de datos ''Dummy''.', 16, 1) endRESTORE VERIFYONLY FROM DISK = N'C:\Dummy_backup.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWINDGO
- Creamos en el PC servidor un fichero .BAT con este contenido:
@ECHO OFFsqlcmd -S SERVIDOR2003\SQLSRV -U adminBD -P adminClave -d Dummy -i Dummybackup.sqlcopy Dummybackup.bak Z:\Dummybackup_%date:/=-%.bakdel Dummybackup.bak
En este fichero llamamos al interprete interactivo de sqlcmd de SQL Server, y le indicamos:
- Parámetro S: sobre qué servidor vamos a trabajar.
- Parámetro U: usuario
- Parámetro P: contraseña
- Parámetro d: base de datos
- Parámetro i: fichero con la sentencia/s SQL a ejecutar.
Depués copiamos el volcado a la unidad Z creando un fichero que contiene la fecha del día actual, de forma que conseguimos un historial de backups y al haber montado la unidad Z sobre otro servidor, además tenemos los datos en PC diferente. Por último borramos el fichero con el volcado “temporal”.
Eso es todo.
Comentarios Recientes