Ahmad Yaseen

Respaldar y restaurar una base de datos SQL Server usando múltiples archivos

October 2, 2016 by

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:

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:

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.

Enlaces útiles:


Ahmad Yaseen
Recuperación de SQL

Acerca de Ahmad Yaseen

Ahmad Yaseen is a Microsoft Big Data engineer with deep knowledge and experience in SQL BI, SQL Server Database Administration and Development fields. He is a Microsoft Certified Solution Expert in Data Management and Analytics, Microsoft Certified Solution Associate in SQL Database Administration and Development, Azure Developer Associate and Microsoft Certified Trainer. Also, he is contributing with his SQL tips in many blogs. View all posts by Ahmad Yaseen

168 Views