Comando IT

Crear backups automaticos en SQL Server

En cuestión de base de datos, no te la puedes jugar haciendo backups manuales… ya que en cualquier momento… se puede fastidiar.

Os voy a explicar como automatizar tus copias en tu servidor SQL Server.

No obstante hay unos requisitos mínimos:

Se requiere tener instalado SQL Server Standard o superior. (No es válido SQL Express)

Para hacer los backups automatizados debemos abrir nuestra aplicación Microsoft SQL Server Management Studio apuntando a nuestro servidor.

Si no tenéis la aplicación os facilito el enlace: Microsoft SQL Server Managment Studio

Una vez abierta la aplicación de Microsoft SQL Server Managment Studio, vamos al apartado SQL Server Agent y hacemos clic derecho en la carpeta Jobs y pulsamos en new job.

Nos aparecerá la siguiente ventana:

En el apartado general debemos rellenar los siguientes campos:

  1. Apartado General.
  2. Nombre del Job.
  3. Propietario del Job (Esto debe ser un usuario administrador con permisos para ejecutar este job).
  4. Categoría (Si eres ordenado, es mas fácil todo así que pon es un plan de mantenimiento de base de datos).

Ahora en la tarea vamos a añadir un Step.

 

 

 

 

En el apartado de General rellenamos los siguientes campos:

5. Apartado General.

6. Nombre del Step.

7. Script para que haga las copias de seguridad de todas las bases de datos del servidor.

Añadir estas lineas en el apartado script: 

DECLARE @name VARCHAR(200) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(1024) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name 

SET @path = 'D:\BACKUPS\'  

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 

DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM  master.sys.databases 
where  state_desc = 'ONLINE' and source_database_id IS NULL and name NOT IN ('master','model','msdb','tempdb','eppm') 

OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   

WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  
       BACKUP DATABASE @name TO DISK = @fileName  

       FETCH NEXT FROM db_cursor INTO @name   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor

Hacemos clic en OK y nos vamos al apartado Schedules.

En este apartado incluimos las horas que se van a realizar las copias de seguridad.

En esto ya depende de cada uno quiera, pero marco lo importante y os dejo un ejemplo de como lo haría yo.

Vale ya tenemos los backups automaticos… pero ¿y si queremos mantener una retención de 30 días?

En Microsoft SQL Server Managment Studio vamos al apartado de Managment –> Maintenance Plans y hacemos clic derecho en Maintenance Plan Wizard.

Damos a Next y elegimos la fecha para el borrado de base de datos.

Elegimos la tarea de Mainntenance Cleanup Task.

Hacemos clic en Next

8. Seleccionamos que queremos eliminar archivos de backups.

9. En que directorio están los backups.

10. La retención que queremos mantener de backups.

Después de estos pasos, ya tenemos que lo queremos copias automáticas y con la retención de copias de seguridad que queramos.