Cómo verificar copias de seguridad de bases de datos SQL

Cuando un desastre ocurre, la única cosa más frustrante que no tener una copia de seguridad actualizada y relevante de la base de datos, es tener una copia de seguridad corrupta. Cuando usted crea el archivo de copia de seguridad al principio, este debería ser bueno, con ‘debería’ siendo la palabra clave. Cada vez que un archivo es copiado a otra localización, hay un riesgo de corrupción del archivo. Una manera de asegurar que el archivo es aún usable es restaurar la copia de seguridad en sí misma, y correr DBCC CHECKDB inmediatamente contra la base de datos SQL restaurada recientemente.

Por supuesto, restaurar y correr verificaciones de consistencia continuamente no es una estrategia de largo plazo factible, ya que cada restauración le cuesta su tiempo, tiempo de CPU y espacio de disco. Afortunadamente, hay una manera de verificar sus copias de seguridad de bases de datos SQL que no incluye realmente restaurarlas.

Para verificar si su copia de seguridad es válida, ejecute la siguiente sentencia SQL:

RESTORE VERIFYONLY

Utilice esta sentencia contra el servidor SQL Server y el conjunto de copias de seguridad que usted desea verificar. De todos modos, dependiendo de su estrategia de recuperación de desastres, solamente apoyarse en RESTORE VERIFYONLY puede no ser suficiente. A saber, si sus copias de seguridad no están comprimidas o creadas usando la opción CHECKSUM, este comando se asegurará que SQL Server puede leer los contenidos de la copia de seguridad. Los datos almacenados dentro podrían ser completamente corrompidos, y SQL Server aún reportará que el conjunto de copias de seguridad es válido.

Cuando usted toma una copia de seguridad comprimida o usa la opción CHECKSUM, SQL Server calculará la suma de comprobación de cada página que respalda en adición a computar una suma de comprobación para todos los datos de la copia de seguridad. Por lo tanto, correr RESTORE VERIFYONLY en el conjunto de copias de seguridad resultará en que SQL Server compare la página de copia de seguridad y las sumas de comprobación de los datos contra las sumas de comprobación generadas cuando la copia de seguridad fue tomada. Esto asegura que las páginas de la base de datos sean consistentes así como los datos de la copia de seguridad como un todo.

¿Significa eso que con una página con sumas de comprobación y sumas de comprobación de copias de seguridad presentes, correr RESTORE VERIFYONLY es suficiente para garantizar que su conjunto de copias de seguridad puede ser restaurado sin problemas?

Desafortunadamente no.

A saber, cuando usted crea un archivo de copia de seguridad, los datos de respaldo son almacenados en un formato conocido como Microsoft Tape Format (MTF). Los bloques MTF son usados para almacenar metadatos, incluyendo el nombre de la base de datos, los archivos, el tamaño, etc. La suma de comprobación que hemos discutido es computada sólo sobre datos de respaldo SQL Server, y no para los bloques MTF. Por tanto, si los datos en los bloques MTF son inconsistentes o corruptos, usted no podrá restaurar los datos de respaldo, incluso aunque los datos de respaldo en sí mismo sean consistentes. RESTORE VERIFYONLY realiza sólo algunas verificaciones simples en los bloques MTF, y puede reportar que el conjunto de respaldo es válido aunque el archivo de copia de seguridad no pueda ser restaurado.

¿Así que esto significa que usted necesita realizar una restauración completa para cada copia de seguridad y correr DBCC CHECDB después sólo para validarla?

Afortunadamente no. Aquí es donde ApexSQL Restore entra en escena.

ApexSQL Restore anexa nativamente copias de seguridad de registros de transacciones y y bases de datos SQL, así como bases de datos en línea, accesible vía SQL Server Management Studio, Visual Studio o cualquier herramienta de terceros. Permite anexar uno o varios archivos de copias de seguridad incluyendo copias de seguridad completas, diferenciales y de registros de transacciones, haciéndola ideal para ambientes de integración continua, rápidamente revirtiendo cambios inadvertidos o maliciosos y balanceando cargas pesadas de reportes. Para más información, visite la página de producto de ApexSQL Restore

Para verificar una copia de seguridad de base de datos completa usando ApexSQL Restore:

  1. Inicie ApexSQL Restore
  2. Haga clic en el botón Add virtual database
  3. En el diálogo Restore a backup que aparecerá, provea:
    1. El nombre de la instancia SQL Server a la que la copia de seguridad será anexada
    2. El método de autenticación preferido; para usar la autenticación de SQL Server un conjunto de credenciales válidas de SQL Server debe ser provisto.
    3. El nombre de la base de datos a la que la copia de seguridad será virtualmente restaurada.
  4. Haga clic en Next
  5. Para especificar la copia de seguridad que será anexada, haga clic en el botón Add files, navegue al archivo de copia de seguridad y haga clic en Open
  6. Revise las propiedades de la copia de seguridad y seleccione los recuadros de selección apropiados correspondientes a cada copia de seguridad que desee anexar.

  7. Para anexar un archivo diferente haga clic en Remove file y repita el proceso descrito en el paso 5.
  8. Para especificar una ruta de restauración diferente a la por defecto haga clic en Advanced >> y especifique la ruta.
  9. Para retornar el estado de la base de datos a un punto exacto en el tiempo, haga clic en Specific point in time y especifíquelo en la línea de tiempo.
  10. Haga clic en Finish para anexar la copia de seguridad.

Y todo está ahí para asegurar que sus copias de seguridad no estén corruptas sin realmente restaurarlas.

Traductor: Daniel Calbimonte

agosto 23, 2016