Introducción:
Las copias de seguridad de SQL Server proveen una importante solución para proteger datos críticos que están almacenados en bases de datos SQL. Y para minimizar el riego de pérdida de datos, usted necesita asegurarse de que respalda sus bases de datos regularmente tomando en consideración los cambios aplicados a sus datos. Es una buena práctica probar sus copias de seguridad restaurando archivos de copias de seguridad al azar a un ambiente de pruebas y verificar que los archivos no estén corruptos.
En adición al desastre normal de pérdida de datos, el DBA puede beneficiarse de copias de seguridad si hay un fallo de medios en uno de los discos o cualquier daño de hardware, un borrado o eliminación accidental aplicados por uno de los usuarios o usualmente copiar los datos desde un servidor a otro para propósitos como configurar un sitio con reflejo o Grupos de Disponibilidad AlwaysOn.
Antes de programar el trabajo de copias de seguridad, usted necesita tener una estimación de cuánto espacio de disco será usado por la copia de seguridad completa de la base de datos. También, usted necesita tener una estimación inicial del incremento en el tamaño de la base de datos, porque cuando este se incrementa las copias de seguridad completas requerirán más espacio de almacenamiento.
Es mejor primero estimar cuándo espacio de disco requiere para su copia de seguridad completa. La operación de respaldo copia los datos en la base de datos al archivo de respaldo, este contiene sólo el espacio de datos usado sólo en su base de datos y no en la que no está siendo usada. El cual es usualmente más pequeño que el tamaño de la base de datos. Para estimar el tamaño de la copia de seguridad completa de la base de datos usted puede usar el procedimiento almacenado de sistema sp_spaceused, que mostrará el número de filas, el espacio reservado en disco y el espacio de disco usado por una tabla, una vista de índice o muestra el espacio de disco reservado y usado por la base de datos dependiendo de los parámetros.
SQL Server ofrece muchos tipos de copias de seguridad, lo cual depende del modelo de recuperación de la base de datos, que controla cómo el registro de transacciones es manejado en su base de datos: Copias de seguridad completas, diferenciales, de archivos, de grupos de archivos y copias de seguridad transaccionales del registro.
Como un administrador de bases de datos, usted debería asegurarse de que cada base de datos es respaldada exitosamente y a tiempo. La toma de copias de seguridad en SQL Server es simple de hacer vía SQL Server Management Studio, usando el comando T-SQL BACKUP DATABASE o el comando de PowerShell Backup-SqlDatabase . Pero en el caso de bases de datos más grandes, toma mucho tiempo completar el proceso de copia de seguridad, usted no tiene suficiente espacio para completar la copia de seguridad vía la red o los medios de respaldo.
¿Qué debería hacerse para asegurar que una base de datos es respaldada completamente a tiempo en tales casos?
Una idea posible para recuperarse de problemas de espacio y tiempo con respaldos de bases de datos es dividir la copia de seguridad en múltiples archivos y reducir el tiempo necesario para realizar las copias de seguridad y usar el espacio disponible en múltiples dispositivos. Lo que hace a este proceso más rápido es que usted tiene la habilidad de escribir a múltiples archivos al mismo tiempo y por tanto dividir la carga de trabajo usando múltiples hilos, así como teniendo archivos más pequeños que pueden ser movido a través de la red o copiados al medio de respaldo. Otra ventaja de dividir la copia de seguridad en múltiples archivos es obtener un mejor rendimiento I/O.
Para realizar el proceso de respaldo a múltiples archivos desde SQL Server Management Studio, haga clic derecho en su base de datos, elija Back Up de la lista de tareas como sigue:
En el diálogo Backup Databases, especifique dónde mantener los archivos de la copia de seguridad haciendo clic en el botón Add, debajo de Destination. Lo que difiere aquí es que necesitamos especificar más de un archivo a los que respaldar la base de datos SQLShackDemo. En nuestro ejemplo, el primer archivo de la copia de seguridad reside en el disco D, y el segundo archivo de la copia de seguridad reside en el disco C, donde cada archivo será de un tamaño idéntico.
Si usted está usando SQL Server 2008 Enterprise Edition o SQL Server 2008 R2 o SQL Server 2012 Ediciones Standard y Enterprise, usted incluso puede tomar los beneficios de la característica Compresión de Copias de Seguridad de Bases de Datos para reducir el tamaño de la copia de seguridad, desde la pestaña opciones como sigue:
En la opción Set backup compression, usted puede elegir Use the default server setting, el cual tomará el ajuste ya establecido en la opción de configuración de servidor backup compression default. O elija Compress backup , lo cual comprimirá la copia de seguridad, sin importar la opción que esté por defecto a nivel de servidor, o finalmente elija Do not compress backup , lo cual creará una copian de seguridad no comprimida, sin importar la opción que esté por defecto a nivel de servidor.
Desde el diálogo Backup, haga clic en el botón OK para iniciar el respaldo a múltiples archivos para la base de datos. Un diálogo aparecerá una vez que el respaldo finalice exitosamente.
Usted puede realizar el mismo proceso de respaldo a múltiples archivos usando el siguiente script T-SQL:
BACKUP DATABASE [SQLShackDemo]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\SQLShackDemo.bak',
DISK = N'D:\ Backup\SQLShackDemo2.bak'
WITH NOFORMAT, NOINIT, NAME = N'SQLShackDemo-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,
STATS = 10
GO
|
Ahora, intentemos restaurar nuestra base de datos desde la copia de seguridad de múltiples archivos que tomamos previamente. Desde SQL Server Management Studio, haga clic derecho en el nodo Databases y seleccione la opción Restore Database. En el diálogo Restore Database, especifique la fuente donde están los archivos de la copia de seguridad y seleccione la casilla debajo de Restore plan. Aquí usted tiene que especificar ambos archivos de la copia de seguridad para restaurar la base de datos exitosamente.
Si usted no especifica todos los archivos que el proceso de respaldo generó, obtendrá el siguiente mensaje de error:
Finalmente, haga clic en OK en el diálogo Restore Database para restaurar la base de datos desde los archivos de respaldo especificados. Un diálogo aparecerá una vez que la restauración sea completada exitosamente.
Usando el siguiente script T-SQL usted puede realizar un proceso de restauración de la base de datos desde múltiples archivos aplicados previamente:
USE [master]
RESTORE DATABASE [SQLShackDemo]
FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\SQLShackDemo.bak',
DISK = N'D:\Backup\SQLShackDemo2.bak' WITH FILE = 1, NOUNLOAD, STATS = 5
GO
|
Pruebe la copia de seguridad a múltiples archivos para verificar cuán rápido usted puede hacer que sus copias de seguridad funcionen y que es más fácil copiarla a una ruta de red o un dispositivo de cinta.
Usted puede tener un escenario de prueba de respaldo y restauración en una base de datos de producción usando la opción copy-only backup, que es una opción de respaldo de SQL Server que es independiente de la secuencia de respaldo de la base de datos, la cual usted puede usar para tomar una copia de seguridad sin afectar la operación general de respaldo para su base de datos.
Tipos de Respaldo
Existen diferentes tipos de respaldos posibles, que se pueden complementar entre sí, los cuales se describen a continuación:
Respaldos completos (full back-up):
Se realiza un respaldo total del disco, se respalda la totalidad de las bases de datos y la totalidad de las operaciones que se mantienen en línea (on–line). Si se realiza diariamente, ante cualquier problema solamente se debe recuperar el respaldo del día anterior.
Respaldos incrementales:
A diferencia de los respaldos completos, los respaldos incrementales primero revisan para ver si la fecha de modificación de un archivo es más reciente que la fecha de su último respaldo. Si no lo es, significa que el archivo no ha sido modificado desde su último respaldo y por tanto se puede saltar esta vez. Por otro lado, si la fecha de modificación es más reciente, el archivo ha sido modificado y se debería copiar.
Los respaldos incrementales son utilizados en conjunto con respaldos regulares completos (por ejemplo, un respaldo semanal completo, con respaldos incrementales diarios).
La principal ventaja obtenida de los respaldos incrementales es que se ejecutan muchísimo más rápido que un respaldo completo. La principal desventaja es que restaurar un archivo dado puede implicar pasar a través de varios respaldos incrementales hasta encontrar el archivo. Cuando se restaura un sistema de archivos completo, es necesario restaurar el último respaldo completo y cada respaldo incremental subsecuente.
Los respaldos incrementales son utilizados en conjunto con respaldos regulares completos (por ejemplo, un respaldo semanal completo, con respaldos incrementales diarios).
La principal ventaja obtenida de los respaldos incrementales es que se ejecutan muchísimo más rápido que un respaldo completo. La principal desventaja es que restaurar un archivo dado puede implicar pasar a través de varios respaldos incrementales hasta encontrar el archivo. Cuando se restaura un sistema de archivos completo, es necesario restaurar el último respaldo completo y cada respaldo incremental subsecuente.
Respaldos diferenciales:
Los respaldos diferenciales son similares a los respaldos incrementales en que ambos solamente copian archivos que han sido modificados. Sin embargo, los respaldos diferenciales son acumulativos — en otras palabras, con un respaldo diferencial, una vez que un archivo ha sido modificado continúa siendo incluido en todos los respaldos diferenciales subsecuentes (hasta el próximo respaldo completo).
Esto significa que cada respaldo diferencial contiene todos los archivos modificados desde el último respaldo completo, haciendo posible realizar una restauración completa solamente con el último respaldo completo y el último respaldo diferencial.
De la misma manera que la estrategia de respaldo de los respaldos incrementales, los respaldos diferenciales siguen el mismo enfoque: un respaldo completo periódico seguido de más frecuentes respaldos diferenciales.
El efecto de utilizar los respaldos diferenciales de esta forma es que los respaldos diferenciales tienden a crecer un poco con el tiempo (asumiendo que diferentes archivos son modificados con el paso del tiempo entre respaldos completos)
Esto significa que cada respaldo diferencial contiene todos los archivos modificados desde el último respaldo completo, haciendo posible realizar una restauración completa solamente con el último respaldo completo y el último respaldo diferencial.
De la misma manera que la estrategia de respaldo de los respaldos incrementales, los respaldos diferenciales siguen el mismo enfoque: un respaldo completo periódico seguido de más frecuentes respaldos diferenciales.
El efecto de utilizar los respaldos diferenciales de esta forma es que los respaldos diferenciales tienden a crecer un poco con el tiempo (asumiendo que diferentes archivos son modificados con el paso del tiempo entre respaldos completos)
Consideraciones
Todos los tipos de respaldo tienen sus ventajas y sus desventajas.
El respaldo global es el más seguro ya que se tiene la totalidad de los datos, pero también es el que insume mayor cantidad de tiempo y capacidad del soporte magnético.
El respaldo incremental es el más rápido, pero tiene una cantidad de información limitada a un período de tiempo. Para recuperar un sistema determinado o el disco completo, se debe partir del último respaldo parcial o completo y cargar en secuencia cada uno de los respaldos incrementales. En general, se suele hacer un respaldo completo una vez por semana y para cada día de la semana se hace el incremental.
Respecto al parcial, consume menos tiempo que el global (y puede llevar menos tiempo que el incremental), pero se está limitado a cierto tipo de información. Se suele hacer respaldos globales con menor frecuencia que los parciales. Por ejemplo, una vez por semana se puede hacer respaldo parcial por aplicación (combinado con los incrementales o diferenciales, en forma diaria) y una vez por mes se hace un respaldo completo del, o los, discos.
Todos los tipos de respaldo tienen sus ventajas y sus desventajas.
El respaldo global es el más seguro ya que se tiene la totalidad de los datos, pero también es el que insume mayor cantidad de tiempo y capacidad del soporte magnético.
El respaldo incremental es el más rápido, pero tiene una cantidad de información limitada a un período de tiempo. Para recuperar un sistema determinado o el disco completo, se debe partir del último respaldo parcial o completo y cargar en secuencia cada uno de los respaldos incrementales. En general, se suele hacer un respaldo completo una vez por semana y para cada día de la semana se hace el incremental.
Respecto al parcial, consume menos tiempo que el global (y puede llevar menos tiempo que el incremental), pero se está limitado a cierto tipo de información. Se suele hacer respaldos globales con menor frecuencia que los parciales. Por ejemplo, una vez por semana se puede hacer respaldo parcial por aplicación (combinado con los incrementales o diferenciales, en forma diaria) y una vez por mes se hace un respaldo completo del, o los, discos.
Generalmente los diferentes tipos de respaldo son utilizados en forma complementaria. Para definir el tipo o tipos de respaldo a utilizar se deben tener en cuenta la criticidad de los datos, capacidad de almacenamiento, tiempo disponible para realizarlos y tiempo necesario para recuperarlos.
La siguiente tabla resume los principales tipos de respaldo:
La siguiente tabla resume los principales tipos de respaldo:
Tipo de backup | Datos respaldados | Tiempo de respaldo | Tiempo de restauración | Espacio de almacenamiento |
Completo | Todos | Lento | Rápido | Alto |
Incremental | Sólo archivos nuevos o modificados | Rápido | Moderado | Bajo |
Diferencial | Todos los datos desde la última copia completa | Moderado | Moderado | Moderado |
Cuándo realizar el respaldo
Para determinar cuándo se realiza el respaldo debemos conocer los tiempos incurridos en desarrollar la tarea y las ventanas de tiempo disponibles en producción (tiempo disponible para realizar tareas que no afecte a los procesos habituales de procesamiento de datos). Los tiempos incurridos en desarrollar la tarea varían dependiendo del soporte utilizado (a mayor velocidad de transferencia menor tiempo incurrido), el tipo de respaldo utilizado (el full back-up es el que lleva mayor cantidad de tiempo) y la cantidad de datos a respaldar (a mayor cantidad mayor tiempo de respaldo).
Para determinar cuándo se realiza el respaldo debemos conocer los tiempos incurridos en desarrollar la tarea y las ventanas de tiempo disponibles en producción (tiempo disponible para realizar tareas que no afecte a los procesos habituales de procesamiento de datos). Los tiempos incurridos en desarrollar la tarea varían dependiendo del soporte utilizado (a mayor velocidad de transferencia menor tiempo incurrido), el tipo de respaldo utilizado (el full back-up es el que lleva mayor cantidad de tiempo) y la cantidad de datos a respaldar (a mayor cantidad mayor tiempo de respaldo).
Registro
Se recomienda llevar un registro de los respaldos que se realizan, así como también las eventuales recuperaciones. Este registro es una historia de los respaldos y las recuperaciones llevados a cabo, al cual se agrega toda observación relevante sobre la aplicación, como por ejemplo, cambios de versiones.
Comentarios
Publicar un comentario