Breaking

Post Top Ad

Your Ad Spot

domingo, 15 de diciembre de 2019

Una descripción general de las copias de seguridad diferenciales nativas en AWS RDS SQL Server

Este artículo explora las copias de seguridad diferenciales en AWS RDS SQL Server mediante escenarios de recuperación.

Introducción

Amazon RDS ofrece una solución de plataforma como servicio (PaaS) para instancias de SQL de alta disponibilidad. No mantenemos la infraestructura en RDS y solo pagamos por el uso de los recursos. Es un aspecto importante conocer la forma de recuperación de datos en caso de cualquier situación desafortunada. Puede obtener más información sobre AWS RDS consultando los artículos en la categoría AWS RDS .
En el artículo anterior, exploramos Recuperar datos en AWS RDS SQL Server usando la copia de seguridad y restauración de la base de datos completa nativa. Anteriormente, AWS RDS SQL Server no admitía la restauración de copias de seguridad diferenciales y de registro. Recientemente, AWS publicó un anuncio en el blog que indica el soporte de la restauración diferencial y de registros.
Anuncio del blog de AWS
En este artículo, exploraremos las copias de seguridad de bases de datos diferenciales en detalle con ejemplos.

Requisito previo

  • Debe tener una instancia de RDS SQL Server existente. Puede seguir el artículo AWS RDS SQL Server: lanzamiento de una nueva instancia de base de datos para crear una nueva instancia SQL de Amazon RDS
  • Debe tener un depósito de AWS S3 en la misma región. Puede seguir la migración de AWS RDS SQL Server utilizando el artículo de copias de seguridad nativas para configurar un bucket de S3
En este artículo, mi nombre de instancia SQL es sqlshackdemo, como se muestra en la siguiente imagen:
Nombre de instancia SQL
Esta propiedad de accesibilidad pública de instancia debe ser verdadera para que pueda conectarse mediante SSMS. Conecte la instancia de RDS con el punto final:
Conexión de instancia RDS en SSMS
Cree una nueva base de datos y una tabla con datos de muestra utilizando la siguiente consulta:
Data de muestra

Realice una copia de seguridad completa de la base de datos de AWS RDS SQL Server en AWS S3 bucket

Como sabemos, una base para una copia de seguridad diferencial es una copia de seguridad completa en SQL Server. Se necesita una copia de seguridad de la base de datos de las extensiones modificadas desde la última copia de seguridad completa.
Necesitamos los siguientes parámetros en el comando msdb.dbo.rds_backup_database :
  • @Source_db_name : es la base de datos para la que queremos hacer una copia de seguridad
  • @ S3_arn_to_backup_to: especifique el ARN de Amazon S3, seguido de un nombre de archivo de respaldo
  • @ overwrite_s3_backup_file: si existe un archivo de copia de seguridad con un nombre similar, puede especificar este parámetro para sobrescribir un archivo existente. Podemos usar un nombre único si no desea sobrescribir el archivo
Para una nueva instancia de RDS, es posible que reciba el siguiente mensaje de error una vez que ejecute el comando para tomar una copia de seguridad de base de datos nativa:
error al tomar copia de seguridad
De manera predeterminada, la instancia RDS SQL no permite la copia de seguridad y restauración de la base de datos. Vaya a Grupos de opciones en la página de inicio de Amazon RDS y seleccione el grupo de opciones que tiene SQLSERVER_BACKUP_RESTORE . Si no tiene ningún grupo de opciones, puede crear un grupo de opciones y agregar este parámetro SQLSERVER_BACKUP_RESTORE :
Grupo de opciones
Una vez que creamos un grupo de opciones, modifique las propiedades de la instancia RDS. Podemos cambiar el grupo de opciones por defecto al grupo de opciones creado anteriormente (rdstestgroup en mi caso). También debemos aplicar los cambios de inmediato; de lo contrario, modificará la instancia de RDS en la próxima ventana de mantenimiento programado. Puede ver la ventana de mantenimiento programado en la siguiente captura de pantalla:
Modificar instancia RDS para copia de seguridad de base de datos
Puede llevar algún tiempo aplicar los cambios. Puede supervisar el estado de la instancia de AWS RDS SQL. Su estado debe estar disponible. En la siguiente pantalla, se muestra la modificación de estado que muestra los cambios en curso:
Modificar estado
Una vez que la instancia esté disponible nuevamente, ejecute el comando especificado anteriormente para tomar una copia de seguridad completa de la base de datos:
Estado disponible de AWS RDS SQL Server
Podemos ver que la copia de seguridad completa de la base de datos está en progreso. La identificación de la tarea para la copia de seguridad es 1. Inicialmente, muestra el estado CREADO :
la copia de seguridad completa de la base de datos está en progreso
Podemos verificar el estado de la copia de seguridad completa utilizando el siguiente procedimiento RDS msdb.dbo.rds_task_status que proporciona la identificación de la tarea en el parámetro:
Copia de seguridad completa exitosa de la base de datos
También podemos explorar el bucket de Amazon S3 y verificar el archivo de respaldo, como se muestra a continuación:
archivo de copia de seguridad en el bucket de Amazon S3

Realizar una copia de seguridad diferencial de base de datos en AWS S3 bucket

Una vez que se completa una copia de seguridad completa, realicemos algunas operaciones de inserción y actualización en la base de datos. Generará alguna actividad en la copia de seguridad de la base de datos diferencial:
Utilizamos el mismo procedimiento almacenado rds_backup_database para la copia de seguridad diferencial de la base de datos. Podemos especificar @ type = 'DIFERENCIAL' en la consulta para tomar una copia de seguridad diferencial:
En el comando de estado de copia de seguridad, podemos ver task_type BACKUP_DB_DIFFERENTIAL que muestra que está ejecutando una copia de seguridad de base de datos diferencial para la base de datos SQL de AWS RDS:
Realizar una copia de seguridad diferencial de base de datos en AWS S3 bucket
Una vez que se completa la copia de seguridad diferencial (ciclo de vida = ÉXITO), usemos la siguiente consulta y realicemos intencionalmente algunos cambios en la tabla:
Actualiza un registro existente en la tabla EmpData y elimina una fila para EmpID 4:

Realice una restauración de la base de datos de AWS RDS SQL Server desde una copia de seguridad completa almacenada en el bucket de AWS S3

Queremos recuperar datos en esta tabla EmpData, y requerirá la restauración de una copia de seguridad de la base de datos completa y diferencial en una base de datos separada. Más tarde, podemos exportar los datos de una base de datos restaurada a la base de datos original.
Nota: Crearemos una nueva base de datos a partir de la copia de seguridad de la base de datos completa y diferencial para la demostración en este artículo.
Utilizamos el comando msdb.dbo.rds_restore_database para la restauración de la base de datos. Requiere los siguientes parámetros:
  • @Restore_db_name: es el nombre de la base de datos restaurada
  • @ s3_arn_to_restore_from: es la ruta completa de la copia de seguridad de la base de datos. Puede obtener el ARN del bucket de Amazon S3
  • @with_norecovery: queremos restaurar más copias de seguridad de la base de datos diferencial después de la restauración completa de la copia de seguridad. Requiere restauración de copia de seguridad completa en el modo NORECOVERY. En AWS RDS SQL Server, necesitamos usar el parámetro @ with_norecovery = 1
  • @Type: especificamos el tipo de archivo de copia de seguridad en el parámetro @ s3_arn_to_restore_from . Para una restauración de copia de seguridad completa, use el parámetro @ type = Full
No podemos sobrescribir o reemplazar una base de datos en la instancia de AWS RDS SQL Server. Si intenta restaurar una base de datos existente, aparece el siguiente mensaje de error:
Error al sobrescribir una base de datos
Ejecute la consulta de restauración de la copia de seguridad de la base de datos y verifique el estado de la tarea. Muestra el valor de task_type como RESTORE_DB_NORECOVERY para la restauración de la base de datos en modo NORECOVERY :
Estado RESTORE_DB_NORECOVERY
Una vez que se completa la restauración de la base de datos, podemos actualizar la base de datos en el Explorador de objetos de SSMS. Muestra la base de datos en el modo de restauración . No podemos acceder a la base de datos en el modo de restauración, pero SQL Server le permite restaurar copias de seguridad posteriores:
base de datos en modo de restauración

Realice una restauración de la base de datos de AWS RDS SQL Server desde una copia de seguridad diferencial almacenada en el bucket de AWS S3

Ahora, restauremos la copia de seguridad diferencial en la base de datos Employee_restore . Necesitamos usar los siguientes parámetros en este comando:
  • @Restore_db_name: debe ser la misma base de datos restaurada anteriormente desde la copia de seguridad completa en modo NORECOVERY
  • @ s3_arn_to_restore_from: es la ruta completa de la copia de seguridad de la base de datos diferencial. @with_norecovery: queremos restaurar una copia de seguridad de la base de datos diferencial después de la restauración de la copia de seguridad completa y recuperar la base de datos para acceder a ella. Use el parámetro @ with_norecovery = 0 para la recuperación de la base de datos
  • @Type: especificamos el tipo de archivo de copia de seguridad en el parámetro @ s3_arn_to_restore_from . Para una restauración de copia de seguridad diferencial, use el parámetro @ type = DIFFERENTIAL
Restaura la copia de seguridad de la base de datos diferencial y recupera la base de datos:
recuperación de la base de datos después de una restauración de respaldo diferencial
Actualice las bases de datos en Object Explorer, y está en línea:
estado de la base de datos en SSMS
Comparemos los registros en la base de datos original y la base de datos restaurada. Podemos ver que existen registros en la base de datos restaurada. Hemos restaurado la base de datos a un estado que existe al finalizar la copia de seguridad diferencial:
Validación de datos
Nota: Según el servidor oficial de AWS RDS SQL, también es compatible con la copia de seguridad del registro de transacciones con recuperación en un punto en el tiempo. Restauramos la copia de seguridad del registro de transacciones utilizando el procedimiento almacenado msdb.dbo.rds_restore_log . Sin embargo, no muestra los procedimientos para realizar una copia de seguridad del registro de transacciones para la base de datos RDS SQL. Estaré en contacto con el centro de soporte de Amazon sobre esto y cubriré la recuperación de un punto en el tiempo en un artículo posterior. Puede consultar la documentación oficial Importar y exportar bases de datos de SQL Server .

Conclusión


En este artículo, exploramos la recuperación de la base de datos en la base de datos de AWS RDS SQL Server utilizando copias de seguridad de bases de datos diferenciales y completas. Debe explorar estas bases de datos y explorarlas en su entorno.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas