Mantenimiento Parte 2/4 Backups (Copias de seguridad)


Cuantas veces hemos escuchado de las copias de seguridad y su importancia, lamentablemente es una actividad que se le da poca importancia hasta que nos enfrentamos a un escenario de perdida de datos, de la misma manera es una actividad que parece fácil pero es más compleja que lo se puede apreciar inicialmente, una de las máximas de la recuperación de desastres es que tu plan sobre copias de seguridad es tan bueno como tu plan de recuperación, o sea realizar pruebas, no solo se queden con el conocimiento teórico.

Como pueden apreciar en este Overview existen muchas cuestiones y tipos de backup disponibles, las cuales dependen en parte del modelo de recuperación.

Los tipos de copias de seguridad son:
  • Copy-only backup.- Un backup especial que es independiente de las secuencias normales de backups de SQL Server.
  • Data backup.- Es un backup completo de la base de datos, un backup parcial o un grupo de archivos y grupos de archivos.    
  • Database backup.- Un backup de la base de datos. Un full database backup representa toda la información al punto donde termina el backup. Los backup diferenciales solo tienen los cambios hechos desde el ultimo bacup full más reciente.
  • Differential backup.- Es un backup de data basado en las ultimas diferencias con el ultimo full o partial o un grupo de archivos / grupo de archivos y solo contiene los cambios desde este punto.
  • Full backup.- Es un data backup que contiene toda la información de una base de datos, archivo o grupo de archivos, y lo suficiente del log como para permitir su recuperación.
  • Log backup.- Un backup del log de transacciones que incluye todos los registros desde la última vez que se hizo un backup del log de transacciones (solo en modo full recovery model)
  • File backup.- Un backup de un archivo o de un grupo de archivos.
  • Partial backup.- Contiene toda la información de algunos de los grupos de archivos en la base de datos.

¿Porque hacerlo?

La corrupción debido al daño de hardware, daño mal intencionado, migraciones son cuestiones que un DBA debería de estar preparado y poder reaccionar al mismo, la mejor manera de salvaguardar la información en tener backups, en empresas internacionales por regulaciones del país es imprescindible contactar con información histórica y recuperación de la misma hasta en periodos de 10 años.

¿Qué hacer?

El backup o copia de seguridad es importante pero aún más importante es saber cómo restaurarlo y cuando o como hacer los backups, como se ha mencionado no existe una regla escrita en oro ni una fórmula que seguir y estamos dependientes de varias limitaciones tanto físicas como de negocio. Pero lo más importante es tener una estrategia bien plasmada y comunicada a todas las áreas afectadas y crear SLA (Niveles de servicio) de acuerdo a las necesidades de la empresa.

¿Como hacerlo?

Este pregunta tiene que ver con los SLA, no es lo mismo tener un backup de un banco a de un mini empresa, ni requerirán el mismo nivel de recuperación, lo normal inicialmente es un full cada semana, un diferencial diario, y transaccional depende del nivel del SLA, guardar el backup en otro lugar, sea una SAN (diferente a donde está la información) el uso de cintas aun es primordial debido a costo de almacenamiento pero se debe de pensar en el espacio y la frecuencia, así como en la retención de la información que se tendría.

¿A que hacerlo?

Esta pregunta es de más importante y también va mucho de la mano sobre los SLA, que bases son las más críticas, normalmente lo haremos en especial sobre las de usuario pero es importante considerar la master y la MSDB, la master almacena logins, etc y es posible que se corrompa, y la MSDB tiene mucha información sobre lo que son los jobs.

Ejemplo por linea de comandos


BACKUP DATABASE [AdventureWorks2014] TO  DISK = N'D:\AdventureWorks2014.bak'
WITH NOFORMAT, NOINIT,  NAME = N'AdventureWorks2014-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10, CHECKSUM

Ejemplo por SSMS


Seleccionemos task > backup..




Seleccionamos las opciones y presionamos OK


Ejemplo con scripts de OLA Hallengren

EXECUTE dbo.DatabaseBackup
@Databases = 'USER_DATABASES',
@Directory = 'C:\Backup',
@BackupType = 'FULL',
@Verify = 'Y',
@Compress = 'Y',
@CheckSum = 'Y',
@CleanupTime = 168

https://ola.hallengren.com/sql-server-backup.html



Este script por citar un ejemplo creara un backup full que durara 1 semana, será con compresión (solo Enterprise), se hará una verificación de que el backup este saludable o sea que este sea consistente con los datos aunque esto no implica el hecho de que no exista corrupción en la información que se esté grabando en la copia de seguridad.

Post Relacionados:

Comentarios

Entradas más populares de este blog

Mover indices no clustered a un nuevo filegroup