Hola Blogueros!!
Ésta semana dejamos atrás de nuevo a nuestro amado Windows, que lo tenemos muy mimado, para meternos con un producto bastante extendido como es SQL Server. Explicamos un poco que tipos de copias de seguridad (backup) tenemos disponibles y ya de paso creamos un job de ejemplo para automatizar los backups.
Para aquellos que aún no sepan que es SQL Server tan solo comentar que es el gestor de base de datos de Microsoft. Su máximo competidor es Oracle y hoy por hoy lo normal en las grandes empresas es tener ambas aplicaciones compartiendo el entorno de trabajo.

En SQL Server existen 3 tipos de copias de seguridad:

1.- Completo:

Es el tipo de backup por defecto y hace una copia de seguridad completa de la base de datos, incluyendo el log de transacciones.

2.- Diferencial:

Guarda la información de la base de datos que ha cambiado desde el último backup completo. Son más rápidos ya que solo guardan los cambios desde un punto. Sin embargo como veis es recomendable tener al menos un backup completo a la semana.

3.- Log de transacciones:

Guardan las modificaciones de la base de datos, es decir, todas las operaciones que se realizan sobre los datos, inserciones, modificaciones, borrados… Son usados en el proceso de recuperación para restaurar una base de datos por completo en un momento concreto.

Una vez que ya conocemos los tipos de copias de seguridad disponibles, es el momento de elegir una estrategia de copia de seguridad para evitar desastres. SQL Server nos proporciona automatización de tareas a través de jobs. Estos funcionan parecidos a las tareas programadas de Windows. Podemos especificar pasos y controlar cada uno de ellos dependiendo de su resultado. Por supuesto se programan y esa será nuestra baza para crear un job que realice copias de seguridad según nuestro criterio. Para aquellos que no lo sepan comentaros que los jobs no funcionarán si el servicio SQL Server agent está parado.

– Creación del job de copia de seguridad:

1.- Desde el explorador de base de datos pulsamos botón derecho sobre jobs (Éste cuelga del servicio SQL Server Agent)

2.- En la siguiente pantalla podremos dar el nombre a la tarea que queramos automatizar, así como definir los pasos, la programación de los mismos, configurar alertas y tipos de notificaciones. Seleccionamos pasos:

3.- Hacemos click en nuevo:

4.- Damos nombre al paso que estamos configurando, seleccionamos como tipo Transact-SQL script y copiamos el siguiente código en la ventana comando:

BACKUP DATABASE [DemoDB] TO DISK = N’C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\DemoDB.bak’

Por supuesto es totalmente personalizable, cambiar el nombre de la base de datos afectada por el backup así como también el path o localización física donde queremos almacenar nuestra copia de seguridad.

5.- Si todo fue como se esperaba tendremos un bonito pop-up indicando que todo ha ido bien. Si por el contrario algo sucedió, deberemos chequear donde está el problema.

Dicho esto, espero que os haya sido útil.

Hasta la semana que viene!

Únete a la conversación

11 comentarios

  1. yo utilizo el sql express y no tengo la opcion para crear job´s alguien me podria decir la herramienta que necesito instalar gracias

  2. Hola Alex, la versión de SQL que usas no instala el agente de SQL Server por lo que la creación de jobs es imposible. Tus soluciones pasan por:

    1.- Utilizar la versión Server
    2.- Si no puedes costearte dicha versión, existen herramientas que pueden echarte una mano como SQL Server Service Broker.

    Un saludo.

  3. una pregunta que debo de hacer ademas de activar el SQL Server Agent para que me funcionen los job ya que he hecho varios pero ninguno lo logro ejecutar.

    1. Hola Josue, los Jobs dependen de que el agente SQL Server agent esté arrancado. Si es así mira que el error no sea porque alguno de los pasos esté mal configurado, en el histórico deberías ver si alguna vez se ejecuto. Un saludo.

  4. Como puedo hacer que el backup sea programado… por ejemplo si quiero realizarlo a diario, o cada hora?

    Gracias de antemano

  5. Que tal mi pregunta es como puedo modificar la parte si quiero ser un backup diferencial o un log??

    saludos.

  6. Lo q tiene q hacer es: botón derecho sobre la base de datos, backup, y en la pantalla que aparece especificas nombre del backup, tipo (diferencial), y ruta….lo scriptas…y t aparece en el management la transact del backup, con la extension .dif.

    Eso lo metes en un job q lance la sentencia sql y listo….;)

    Esta es la trabsact por si quieres hacerlo desde Script:

    database_name TO WITH DIFFERENTIAL

    Espero que te sirva Xavier!

    PD: Gracias Johny por el apunte :D

  7. DISCULPA LOS JOBS SON IGUAL A UN PLAN DE MANTENIMIENTO? SOY NUEVO EN ESTO Y TENGO DUDAS MUCHAS GRACIAS

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.