Cómo crear múltiples espejos de respaldos SQL Server

Una de las tareas más importantes para cualquier administrador de bases de datos es crear un plan de recuperación de desastres a prueba de tontos. Este plan usualmente incluye múltiples operaciones de restauración y respaldo. La mayor parte del tiempo, optar por copias de seguridad convencionales debería ser suficiente, pero en algunos casos, almacenar todas las copias de seguridad en un solo dispositivo puede ser una mala idea. A medida que las bases de datos crecen en el tiempo, las copias de seguridad de vuelven más grandes y los dispositivos de respaldo menos estables debido a las frecuentes operaciones de lectura/escritura. Si el dispositivo de respaldo falla, todo los datos respaldados pueden ser perdidos. Para evitar este escenario, algunos administradores toman múltiples copias de sus archivos de respaldo, y los almacenan en diferentes dispositivos de respaldo. Hay unas cuantas maneras de hacer esto:

  1. Crear un archivo de copia de seguridad convencional y usar el administrador de archivos para copiar el archivo a las localizaciones preferidas.

  2. Realizar múltiples operaciones de respaldo, pero cambiar la ruta de destino para cada operación.

  3. Usar reflejos de respaldo – proceso donde un archivo de copia de seguridad de base de datos es escrito a dos o más (hasta 3) diferentes localizaciones simultáneamente.

Los respaldos de reflejo son realmente copias idénticas en la misma copia de seguridad. Los Administradores usualmente los almacenan en múltiples dispositivos de copia de seguridad, por tanto incrementando la fiabilidad de las copias de seguridad y reduciendo grandemente la probabilidad de pérdida de datos. La característica de de copias de seguridad de bases de datos reflejadas es soportada en SQL Server 2005 Edición Enterprise y todas las versiones posteriores. Esta característica soporta todos los tipos de copias de seguridad: completa, diferencia y copias de seguridad del registro de transacciones. Incluso puede ser usada para dividir archivos de copias de seguridad.

Hay algunas desventajas para usar copias de seguridad reflejadas. Cada copia de seguridad reflejada necesita espacio adicional de disco. Esto no es muy conveniente para bases de datos grandes. La Compresión de Copias de Seguridad puede ser usada en este caso (para SQL Server 2008 Edición Enterprise y posteriores), pero el uso de esta característica también trae sus complicaciones.

Múltiples respaldos de reflejo pueden ser creados usando scripts T-SQL o con la ayuda de un software de terceros como ApexSQL Backup. Los respaldos reflejados no pueden ser hechos dentro de SQL Server Management Studio.

Creando reflejos con T-SQL

Hay muchos escenarios cuando se usan scripts para crear respaldos de reflejo, dependiendo del tipo de copia de seguridad que necesita ser usado. Los scripts que son usados son similares a los scripts de respaldo convencionales. El comando BACKUP DATABASE es usado, la cláusula TO especifica la ruta para el primer reflejo, y la cláusula MIRROR TO define rutas para el resto de los reflejos. Cuando se crea el primer conjunto de copias de seguridad reflejadas, la cláusula WITH FORMAT tiene que ser usada. La última cláusula no debería ser confundida con el comando del sistema operativo FORMAT, ya que no formatea el disco entero. La cláusula WITH FORMAT sólo formatea las carpetas que son especificadas después de las cláusulas TO y MIRROR TO. Los respaldos de reflejo soportan copias de seguridad completas, diferenciales, de registro de transacciones y de archivos divididos. Antes de correr cualquier consulta, asegúrese de crear todas las carpetas necesarias que son mencionadas en la ruta de la copia de seguridad.

  1. Reflejando una copia de seguridad de un solo archivo:

    Para crear una copia de seguridad de un solo archivo, ejecute el siguiente script:

    BACKUP DATABASE AdventureWorks2014 
           TO DISK = 'C:\Mirror_01\AdventureWorks2014_Mirror_01.bak' 
    MIRROR TO DISK = 'D:\Mirror_02\AdventureWorks2014_Mirror_02.bak' 
    MIRROR TO DISK = 'E:\Mirror_03\AdventureWorks2014_Mirror_03.bak'
    WITH FORMAT
    

    Ejecutar la consulta crea 3 copias de seguridad idénticas en los discos C:, D: y E: en las carpetas especificadas. Para restaurar la base de datos desde la copia de seguridad creada, use cualquiera de los reflejos creados en la consulta previa con la cláusula RESTORE.

  2. Reflejando archivos de copias de seguridad diferenciales

    BACKUP DATABASE AdventureWorks2014 
           TO DISK = 'C:\Mirror_01\AdventureWorks2014_Mirror_01.bak' 
    MIRROR TO DISK = 'D:\Mirror_02\AdventureWorks2014_Mirror_02.bak' 
    MIRROR TO DISK = 'E:\Mirror_03\AdventureWorks2014_Mirror_03.bak'
    WITH DIFFERENTIAL
    

    Asegúrese de que al menos una copia de seguridad completa existe antes de ejecutar el script.

  3. Reflejando archivos de copias de seguridad del registro de transacciones:

    BACKUP LOG AdventureWorks2014
         TO DISK = 'C:\Mirror_01\AdventureWorks2014_Mirror_01.bak' 
    MIRROR TO DISK = 'D:\Mirror_02\AdventureWorks2014_Mirror_02.bak' 
    MIRROR TO DISK = 'E:\Mirror_03\AdventureWorks2014_Mirror_03.bak'
    

    Asegúrese de que la base de datos usada está en modo de recuperación completo antes de correr la consulta de respaldo del registro de transacciones.

  4. Reflejando archivos divididos de copia de seguridad:

  5. Para crear reflejos exitosamente para archivos de copia de seguridad divididos, múltiples rutas con nombres de los archivos de copia de seguridad necesitan ser provistos. En este caso, el archivo del respaldo de la base de datos AdventureWorks2014 es dividido en 2 partes iguales, que están en la misma carpeta en el disco C:, pero tienen nombres de archivo diferentes. Cada uno de los archivos divididos es luego reflejado a los disco D: y E:. Es importante que el número original de archivos de copia de seguridad del conjunto original coincida con el número de archivos de copia de seguridad reflejados para cada conjunto de reflejos. De otra manera, la consulta falla con el error: “Invalid backup mirror specification. All mirrors must have the same number of members (Especificación de reflejos de respaldo inválida. Todos los reflejos deben tener el mismo número de miembros).”.

    BACKUP DATABASE AdventureWorks2014 
    TO      DISK = 'C:\Mirror_01\AdventureWorks2014_striped_Mirror_01.bak',
    	DISK = 'C:\Mirror_01\AdventureWorks2014_striped_Mirror_02.bak',
    	DISK = 'C:\Mirror_01\AdventureWorks2014_striped_Mirror_03.bak' 
    MIRROR TO  DISK = 'D:\Mirror_02\AdventureWorks2014_striped_Mirror_01.bak',
    	DISK = 'D:\Mirror_02\AdventureWorks2014_striped_Mirror_02.bak',
    	DISK = 'D:\Mirror_02\AdventureWorks2014_striped_Mirror_03.bak' 
    MIRROR TO  DISK = 'E:\Mirror_03\AdventureWorks2014_striped_Mirror_01.bak',
    	DISK = 'E:\Mirror_03\AdventureWorks2014_striped_Mirror_02.bak',
    	DISK = 'E:\Mirror_03\AdventureWorks2014_striped_Mirror_03.bak'
    WITH FORMAT
    GO
    

    Reflejando con ApexSQL Backup

    ApexSQL Backup es administrador de trabajos de terceros, fácil de usar. Entre muchas otras características, soporta el reflejo de copias de seguridad. El reflejo con ApexSQL Backup no requiere de conocimiento técnico de scripts T-SQL – todas las operaciones son establecidas usando la interfaz gráfica de usuario y pueden ser ejecutadas con un clic. Además, el proceso entero de respaldar/restaurar podría ser automatizado definiendo las políticas o programas. Para crear reflejos de respaldos con ApexSQL Backup:

    1. Inicie el asistente de respaldos haciendo clic en el botón Backup en la parte superior izquierda.

    2. En el paso Database del asistente, seleccione la instancia SQL Server desde el menú desplegable y seleccione la casilla para una o más bases de datos que necesitan ser respaldadas. Seleccione el tipo de respaldo (completo, diferencial o de registro de transacciones) haciendo clic en el botón radial. Proceda al siguiente paso.

    3. En el paso Type and output, las reglas de nombramientos automáticas para los respaldos y las descripciones de los respaldos están definidas. Los parámetros como el nombre de la base de datos, el tipo de respaldo, el nombre del servidor, la fecha o la hora pueden ser incluidos en el nombre y descripción de la copia del respaldo. Añada más parámetros para nombrar automáticamente haciendo clic en el botón para navegar a la derecha (…) y seleccione uno o más parámetros desde la cuadrícula. Para usar un nombre/descripción personalizada, borre el contenido de los campos de nombre/descripción e ingrese el nombre personalizado.

    4. En el mismo paso, seleccione la pestaña Destination y haga clic en el botón Add para especificar la ruta para la copia de seguridad original.

    5. Escriba la ruta del archivo que será usada para la copia de seguridad original en el campo Folder. Alternativamente, navegue a la ruta con el explorador de carpetas haciendo clic en el botón navegar (…). Ingrese el nombre del archivo personalizado para la copia de seguridad en el campo Filename, o establezca las reglas para el nombramiento automático. Para añadir la ruta especificada a la lista, haga clic en OK. Para crear los archivos de respaldo divididos, simplemente añada múltiples rutas a la lista.

    6. Para especificar la ruta para el reflejo, seleccione la pestaña Mirror. Haga clic en el botón Add para añadir la ruta a la lista. Configure el nombre del archivo como en el paso 5 y haga clic en Next cuando la localización preferida sea listada. Seleccione la casilla Format media. Si múltiples rutas de copias de seguridad fueron listadas en el paso 5 (archivos de respaldo divididos) debajo de la pestaña Destination, asegúrese de que el número de rutas de destino coincide con el número de rutas de reflejo. Proceda al siguiente paso cuando esté listo.

    7. Si es necesario, establezca las opciones adicionales respecto de la expiración del conjunto de copias de seguridad, la verificación, la compresión y la encriptación.

    8. En el paso Schedule, para automatizar el proceso, seleccione el botón radial Schedule y establezca la programación del respaldo preferida. Si no hay necesidad de respaldos automatizados, deje el botón radial Execute immediately sin seleccionar y proceda al siguiente paso.

    9. En el paso Submit, todas las acciones pendientes están listadas. Para ejecutar todos los pasos definidos, haga clic en Next.

    10. Después de una ejecución exitosa, un signo de verificación verde es mostrado.

    Vea también

    Febrero 23, 2017