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. 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
    

    Vea también

    febrero 23, 2017