miércoles, 12 de junio de 2013

SQL Server, realizar copias de seguridad y restaurarlas.

Para no tener dolores de cabeza y no perder nuestros datos o simplemente para instalar la base de datos en otro servidor (para esta última opción también podéis utilizar el stored procedure sp_attach_db) lo más aconsejable es realizar copias de seguridad diarias o lo más frecuentemente posible.
Copias de seguridad.
Hay múltiples formas de realizar copias de seguridad, y restaurarlas, pero el método más sencillo para realizarlo es a través del Administrador Corporativo de SQL Server.
Para realizar esta acción nos pondremos sobre la base de datos que queremos copiar y pulsando con el botón derecho seleccionamos la opción Todas las tareas -> copias de seguridad de la base de datos y nos aparece la imagen 1. Aquí definimos:
- La base de datos que queremos copiar, en nuestro ejemplo la pubs.
- El nombre de la copia
- Descripción si queremos darle.
- Tipo de copia, si es completa o diferencial, si la copia es diferencial registra sólo los cambios de la información de la base de datos realizados después de la última copia de seguridad.
- Destino, aquí debemos poner un nombre de fichero y un path, para ésto tenemos un asistente, pulsando sobre el botón agregar aparecerá la imagen 2 en la cual especificaremos el path y nombre de la copia.
- Sobrescribir o anexar al medio, si sobrescribimos la copia, el fichero de copia sólo contendrá la ultima copia de seguridad realizada, si anexamos al medio, el fichero será incremental y contendrá todas las copias que realicemos.
- Programar, si queremos programar la copia como un trabajo para que se ejecute en una hora y fecha determinada. Ver artículo sobre trabajos.
Por último, sólo nos queda seleccionar una opción más antes de realizar la copia. Pulsamos el tab opciones (imagen 3) y seleccionamos el check “comprobar la copia de seguridad al concluir” para que verifique que la copia de seguridad se ha realizado correctamente.
Esta es la forma más sencilla de realizar copias de seguridad, vamos al Administrador Corporativo y seguimos el asistente. Una de las acciones que podemos realizar, en lugar de realizar la copia inmediatamente, es programar la copia para que se realice en un determinado día y hora. Para realizar esta acción, una vez realizados los pasos anteriores, en la imagen 1 seleccionamos la opción “Programar” y pulsamos el botón “…” aparece la imagen 4 desde donde definiremos la forma de programación que queremos para nuestra copia de seguridad y pulsando el botón “cambiar”, imagen 5, cambiaremos el día y hora de la ejecución de la copia de seguridad. Una vez aceptadas estas pantallas nos aparecerá un nuevo trabajo en Servidores SQL Server > [Tu Servidor] > Administración > Agente SQL Server > Trabajos (imagen 6). Para que la copia de seguridad en forma de trabajo se ejecute, debe de estar arrancado el servicio del SQL Agent.
Otra forma de realizar copias de seguridad es mediante código, ya sea a través de transact-sql o programando con .NET, VB o ASP. Un ejemplo para realizar copias de seguridad en .NET (c#) lo tenéis aquí.
Desde transact-sql deberemos utilizar la siguiente instrucción en nuestros stored procedures para realizar copias de seguridad:
BACKUP DATABASE [pubs] TO DISK = ‘C: ackup_Pubs’
Donde Backup_Pubs es el nombre que deseéis para vuestra copia de seguridad.
La instrucción backup tiene multitud de opciones que podéis revisar y ver aquí.
Restaurar una copia de seguridad.
Una vez realizada la copia de seguridad seguro que necesitamos restaurarla en alguna ocasión, por eso estas dos opciones son complementarias, no puedes restaurar una copia de seguridad si no la tienes, y para qué realizarla si no sabemos restaurarla en algún momento.
Para realizar este proceso vamos a ir al Administrador Corporativo y nos posicionamos en la base de datos que queremos restaurar, pulsamos con el botón derecho del ratón y seleccionamos la opción “Todas las tareas” > “Restaurar base de datos”, nos aparecerá la imagen 7 y seleccionamos la opción desde dispositivos y pulsamos el botón “dispositivos” (imagen 8), pulsamos el botón “Agregar” y seleccionamos el archivo que queremos restaurar. Por último nos queda seleccionar las opciones de la restauración, para eso seleccionamos el tab “opciones” imagen 9 y seleccionamos la opción “Forzar restauración sobre la base de datos existente”.
Igual que pasa en el apartado anterior, esta acción también podemos realizarla desde código. Un ejemplo para realizar copias de seguridad en .NET (c#) la tenéis aquí.
Desde transact-sql deberemos utilizar la instrucción siguiente:
RESTORE DATABASE Pubs FROM DISK = ‘c: kpubs’
Donde bkpubs es el nombre de la copia de seguridad que tengáis
La instrucción restore también posee multitud de opciones que podréis encontrar aquí.

No hay comentarios:

Publicar un comentario

Jesús Moreno - Ingeniero Ténico Informático - consultor Informático

Hola, soy Jesús Moreno Ingeniero Técnico Informático en sistemas por la US y propietario de éste blog. Mi trabajo en los ultimos años se ...