Cómo hacer una copia de seguridad de SQL Server RDS en un bucket de S3

Gestionar copias de seguridad para instancias de SQL Server RDS es crucial para garantizar la disponibilidad de datos y la recuperación ante desastres. AWS proporciona herramientas para facilitar este proceso, incluidos comandos para realizar copias de seguridad de bases de datos de SQL Server RDS directamente en Amazon S3. Este artículo te guiará a través de los comandos y configuraciones necesarios para realizar copias de seguridad y restauraciones.

Respaldo de SQL Server RDS a S3

El procedimiento almacenado principal utilizado para crear copias de seguridad es msdb.dbo.rds_backup_database. Este comando te permite especificar la base de datos a respaldar y la ubicación en S3 donde se almacenará la copia de seguridad.

Parámetros del Paquete

El procedimiento almacenado admite varios parámetros, que se clasifican como requeridos y opcionales.

Parámetros Requeridos

  • @source_db_name: El nombre de la base de datos a respaldar.
  • @s3_arn_to_backup_to: El ARN que indica el bucket de Amazon S3 a utilizar para la copia de seguridad, incluyendo el nombre del archivo de copia de seguridad.
    • El archivo puede tener cualquier extensión, pero .bak es comúnmente utilizado.

Parámetros Opcionales

  • @kms_master_key_arn

    • El ARN para la clave KMS de cifrado simétrico que se utilizará para cifrar la copia de seguridad.
    • No se puede utilizar la clave de cifrado predeterminada. Usar la clave predeterminada resultará en un fallo de la copia de seguridad.
    • Si no se especifica una clave KMS, el archivo de copia de seguridad no se cifrará.
    • Solo se admiten claves KMS simétricas.
  • @overwrite_s3_backup_file

    • Determina si se debe sobrescribir un archivo existente.
    • 0 (predeterminado): No sobrescribe un archivo existente. Devuelve un error si el archivo ya existe.
    • 1: Sobrescribe el archivo existente, incluso si no es un archivo de copia de seguridad.
  • @tipo
    • Especifica el tipo de respaldo.
    • COMPLETO (por defecto): Realiza un respaldo completo.
    • DIFERENCIAL: Crea un respaldo diferencial basado en el último respaldo completo.
    • Importante: Para que los respaldos diferenciales funcionen, no debe existir un snapshot entre el último respaldo completo y el respaldo diferencial. Si existe un snapshot, realiza otro respaldo completo antes del respaldo diferencial. A continuación se muestra una consulta de ejemplo para verificar el último respaldo completo:

      MS SQL

       

  • @number_of_files

    • Especifica la cantidad de archivos (trozos) en los que se dividirá la copia de seguridad. Máximo: 10.
    • Si se establece en 1 o se omite, se creará un único archivo de copia de seguridad.
    • Las copias de seguridad multifichero deben usar un único * en el nombre del archivo, el cual será reemplazado por cadenas alfanuméricas durante la generación. Por ejemplo:
      • Entrada: backup*.bak, @number_of_files = 4
      • Salida: backup1-de-4.bak, backup2-de-4.bak, backup3-de-4.bak, backup4-de-4.bak
  • @block_size

    • Especifica el tamaño de bloque físico (en bytes) para operaciones de respaldo.
    • Valores válidos: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536.
  • @max_transfer_size

    • Denota la cantidad máxima de datos (en bytes) transferidos por operación de E/S.
    • Valores válidos: Múltiplos de 65536 bytes hasta 4194304 bytes (4 MB).
  • @buffer_count

    • Número total de búferes de E/S utilizados durante el proceso de respaldo.

Sintaxis del comando

MS SQL

Ejemplo: Respaldo completo en S3

MS SQL

Configuración de la Compresión del Respaldo

Para ahorrar espacio y reducir el tiempo de transferencia, puedes habilitar la compresión para los respaldos de SQL Server RDS utilizando los comandos rdsadmin.

Habilitar la Compresión

MS SQL

 

Deshabilitar Compresión

MS SQL

Nota: SQL Express no admite compresión de copias de seguridad; habilitarla en tales casos resultará en un fallo de la copia de seguridad.

Realización de Copias de Seguridad Nativas de SQL Server

Amazon RDS también admite la funcionalidad de copias de seguridad nativas de SQL Server. A continuación se muestran comandos para operaciones de copia de seguridad y restauración.

Comandos de Copia de Seguridad

Comando de Copia de Seguridad Completa

MS SQL

Comando de Copia de Seguridad Diferencial

MS SQL

 

Comando de Restauración

Comando de Restauración Diferencial

MS SQL

Comando de Restauración Diferencial

MS SQL

 

Monitoreo y Gestión de Tareas de Copia de Seguridad

Consultar el estado de la tarea:

MS SQL

Cancelar una tarea de copia de seguridad:

MS SQL

Consideraciones

  • Garantizar que el bucket de S3 utilizado en los comandos tenga los permisos necesarios para permitir el acceso desde la instancia de RDS.
  • Para datos sensibles, puede utilizar una clave maestra de AWS KMS para cifrar las copias de seguridad antes de almacenarlas en S3 especificando @kms_master_key_arn.

Recursos Adicionales

Para ejemplos e información más detallada, consulte la documentación oficial de AWS sobre copias de seguridad de SQL Server.

Esta guía ofrece una base sólida para gestionar copias de seguridad de SQL Server RDS con Amazon S3. Para configuraciones más avanzadas, consulte la documentación de AWS o experimente con los parámetros proporcionados para ajustar el proceso de copia de seguridad según su entorno.

Source:
https://dzone.com/articles/how-to-backup-sql-server-rds-to-an-s3-bucket