Uso del almacenamiento en RDS para SQL Server - Amazon Relational Database Service

Uso del almacenamiento en RDS para SQL Server

Con RDS para SQL Server, puede adjuntar hasta tres volúmenes adicionales a la instancia de RDS para SQL Server, cada uno asignado a una letra de unidad de Windows única. Esto le permite distribuir los archivos de la base de datos en varios volúmenes más allá de la unidad D: predeterminada. Cuando agrega un volumen de almacenamiento, obtiene una mayor flexibilidad para la administración de archivos de bases de datos y la optimización del almacenamiento.

Los beneficios incluyen:

  • Distribución flexible de archivos: distribuya los archivos de datos de bases de datos y los archivos de registro en varios volúmenes para mejorar el rendimiento de E/S.

  • Optimización del almacenamiento: utilice diferentes tipos y configuraciones de almacenamiento para diferentes requisitos de carga de trabajo.

  • Escalabilidad: agregue capacidad de almacenamiento sin modificar los volúmenes existentes.

Consideraciones para el uso de volúmenes de almacenamiento adicionales con RDS para SQL Server

Tenga en cuenta las siguientes características y limitaciones al utilizar volúmenes de almacenamiento adicionales con RDS para SQL Server:

  • Solo puede agregar volúmenes de almacenamiento en SQL Server Standard Edition (SE) y Enterprise Edition (EE).

  • Puede agregar hasta 3 volúmenes de almacenamiento adicionales por instancia.

  • Los nombres de los volúmenes se asignan automáticamente a las letras de las unidades de Windows de la siguiente manera:

    • rdsdbdata2: unidad H:

    • rdsdbdata3: unidad I:

    • rdsdbdata4: unidad J:

  • Los archivos TempDB siguen utilizando la unidad T: cuando se utiliza el almacenamiento de instancias NVMe. Los archivos de auditoría de SQL Server y los archivos de Microsoft Business Intelligence (MSBI) permanecen en la unidad D:.

  • Solo puede agregar tipos de almacenamiento de SSD de uso general (gp3) y SSD de IOPS aprovisionadas (io2).

  • No hay limitaciones de tamaño mínimo para los volúmenes de almacenamiento adicionales. El tamaño máximo de almacenamiento de la instancia de base de datos es de 256 TiB en total en todos los volúmenes.

  • No se admite la agregación de volúmenes de almacenamiento a instancias con réplicas de lectura o a instancias de réplicas de lectura.

  • No se admite el traslado de archivos entre volúmenes después de crearlos.

  • No puede eliminar el volumen D:, pero puede eliminar otros volúmenes de almacenamiento siempre que estén vacíos.

  • No se admite la modificación del tamaño de los volúmenes existentes durante la restauración de instantáneas o la recuperación en un momento dado (PITR). Sin embargo, puede agregar nuevos volúmenes de almacenamiento durante las operaciones de restauración.

Agregación, eliminación o modificación de volúmenes de almacenamiento con RDS para SQL Server

Puede agregar, modificar y eliminar volúmenes de almacenamiento adicionales mediante la AWS CLI o la Consola de administración de AWS. Todas las operaciones utilizan la operación de la API modify-db-instance con el parámetro additional-storage-volumes.

importante

La agregación o eliminación de volúmenes de almacenamiento adicionales crea una copia de seguridad pendiente y un periodo de interrupción de la restauración en un momento dado. Este periodo se cierra cuando se completa el flujo de trabajo de copia de seguridad.

Agregación de volúmenes de almacenamiento

Puede agregar hasta tres volúmenes de almacenamiento además de la unidad D: predeterminada. Para agregar un nuevo volumen de almacenamiento a la instancia de RDS para SQL Server, utilice el comando modify-db-instance con el parámetro additional-storage-volumes.

El siguiente ejemplo agrega un nuevo volumen de SSD de uso general (gp3) de 4000 GiB llamado rdsdbdata4.

aws rds modify-db-instance \ --db-instance-identifier my-sql-server-instance \ --region us-east-1 \ --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","StorageType":"gp3","AllocatedStorage":4000}]' \ --apply-immediately

Escalado de volúmenes de almacenamiento adicionales

Puede modificar cualquier configuración de almacenamiento para los volúmenes adicionales, excepto el tamaño de almacenamiento. En el siguiente ejemplo, se modifica la configuración de IOPS del volumen rdsdbdata2.

aws rds modify-db-instance \ --db-instance-identifier my-sql-server-instance \ --region us-east-1 \ --additional-storage-volumes '[{"VolumeName":"rdsdbdata2","IOPS":4000}]' \ --apply-immediately

Eliminación de volúmenes de almacenamiento adicionales

No puede eliminar el volumen D:, pero puede eliminar otros volúmenes de almacenamiento cuando estén vacíos.

aviso

Antes de eliminar un volumen de almacenamiento adicional, asegúrese de que no haya ningún archivo de base de datos almacenado en el volumen.

En el siguiente ejemplo, se elimina el volumen rdsdbdata4.

aws rds modify-db-instance \ --db-instance-identifier my-sql-server-instance \ --region us-east-1 \ --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","SetForDelete":true}]' \ --apply-immediately

Restauración de operaciones para volúmenes de almacenamiento adicionales con RDS para SQL Server

Al restaurar la base de datos, puede agregar volúmenes de almacenamiento. También puede modificar la configuración de almacenamiento de los volúmenes existentes.

Restauración de instantáneas

Al restaurar a partir de una instantánea, puede agregar nuevos volúmenes de almacenamiento adicionales o modificar la configuración de IOPS, rendimiento y tipo de almacenamiento de los volúmenes existentes.

El siguiente ejemplo restaura una instancia de base de datos a partir de una instantánea y modifica la configuración de IOPS del volumen rdsdbdata2:

aws rds restore-db-instance-from-db-snapshot \ --db-instance-identifier my-restored-instance \ --db-snapshot-identifier my-snapshot \ --region us-east-1 \ --additional-storage-volumes '[{"VolumeName":"rdsdbdata2","IOPS":5000}]'

Recuperación a un momento dado

Durante la recuperación en un momento dado (PITR), puede agregar nuevos volúmenes de almacenamiento adicionales con configuraciones personalizadas.

El siguiente ejemplo realiza PITR y agrega un nuevo volumen de SSD de uso general (gp3) de 5000 GiB:

aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier my-source-instance \ --target-db-instance my-pitr-instance \ --use-latest-restorable-time \ --region us-east-1 \ --additional-storage-volumes '[{"VolumeName":"rdsdbdata4","StorageType":"gp3","AllocatedStorage":5000,"IOPS":5000,"StorageThroughput":200}]'

Restauración de bases de datos nativos

Puede utilizar el procedimiento almacenado rds_restore_database para restaurar las bases de datos en volúmenes de almacenamiento adicionales específicos. Dos nuevos parámetros permiten la selección de volúmenes:

data_file_volume

Especifica la letra de unidad para los archivos de datos de la base de datos

log_file_volume

Especifica la letra de unidad para los archivos de registros de la base de datos

El ejemplo siguiente restaura una base de datos con los archivos de datos de la unidad H: y los archivos de registro de la unidad I::

EXEC msdb.dbo.rds_restore_database @restore_db_name='my_database', @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/backup-file.bak', @data_file_volume='H:', @log_file_volume='I:';

Si no especifica los parámetros de volumen o si especifica la unidad D: para ambos parámetros, los archivos de la base de datos se restauran en la unidad D: predeterminada:

EXEC msdb.dbo.rds_restore_database @restore_db_name='my_database', @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/backup-file.bak';

Casos de uso para volúmenes de almacenamiento adicionales con RDS para SQL Server

Los volúmenes de almacenamiento adicionales admiten varios escenarios de administración de bases de datos. Las siguientes secciones describen casos de uso comunes y enfoques de implementación.

Creación de bases de datos en volúmenes de almacenamiento adicionales

Puede crear nuevas bases de datos directamente en volúmenes de almacenamiento adicionales mediante instrucciones estándar de CREATE DATABASE SQL Server.

El ejemplo siguiente crea una base de datos con los archivos de datos de la unidad H: y los archivos de registro de la unidad I::

CREATE DATABASE MyDatabase ON ( NAME = 'MyDatabase_Data', FILENAME = 'H:\rdsdbdata\data\MyDatabase_Data.mdf', SIZE = 100MB, FILEGROWTH = 10MB ) LOG ON ( NAME = 'MyDatabase_Log', FILENAME = 'I:\rdsdbdata\data\MyDatabase_Log.ldf', SIZE = 10MB, FILEGROWTH = 10% );

Ampliación de la capacidad de almacenamiento

Cuando la unidad D: predeterminada alcance su capacidad máxima, puede agregar volúmenes de almacenamiento adicionales, escalar los volúmenes existentes y crear nuevos archivos de datos o archivos de registro en los nuevos volúmenes.

Ampliación de la capacidad de almacenamiento
  1. Agregue un volumen de almacenamiento a la instancia mediante el comando modify-db-instance.

  2. Agregue un nuevo archivo de datos al volumen de almacenamiento adicional:

    ALTER DATABASE MyDatabase ADD FILE ( NAME = 'MyDatabase_Data2', FILENAME = 'H:\rdsdbdata\data\MyDatabase_Data2.ndf', SIZE = 500MB, FILEGROWTH = 50MB );

Movimiento de bases de datos entre volúmenes

Para mover una base de datos a un volumen diferente, utilice el enfoque de copia de seguridad y restauración con los procedimientos rds_backup_database y rds_restore_database almacenados. Para obtener más información, consulte Uso de la copia de seguridad y la restauración nativas.

Traslado de una base de datos a otro volumen
  1. Haga una copia de seguridad de la base de datos mediante rds_backup_database:

    EXEC msdb.dbo.rds_backup_database @source_db_name='MyDatabase', @s3_arn_to_backup_to='arn:aws:s3:::my-bucket/database-backup.bak';
  2. Restaure la base de datos al volumen objetivo:

    EXEC msdb.dbo.rds_restore_database @restore_db_name='MyDatabase_New', @s3_arn_to_restore_from='arn:aws:s3:::my-bucket/database-backup.bak', @data_file_volume='H:', @log_file_volume='I:';
  3. Quite la base de datos de la unidad anterior para liberar espacio. Para obtener más información, consulte Eliminación de una base de datos en una instancia de base de datos de Amazon RDS para Microsoft SQL Server.

Archivado de los datos en un almacenamiento rentable

En el caso de las tablas particionadas, puede archivar datos antiguos en volúmenes de almacenamiento adicionales con características de rendimiento diferentes.

Archivado de datos particionados
  1. Agregue un volumen de almacenamiento con el tipo y la capacidad de almacenamiento adecuados.

  2. Cree un nuevo grupo de archivos en el volumen de almacenamiento adicional:

    ALTER DATABASE MyDatabase ADD FILEGROUP ArchiveFileGroup; ALTER DATABASE MyDatabase ADD FILE ( NAME = 'Archive_Data', FILENAME = 'H:\rdsdbdata\data\Archive_Data.ndf', SIZE = 1GB, FILEGROWTH = 100MB ) TO FILEGROUP ArchiveFileGroup;
  3. Mueva las particiones al nuevo grupo de archivos mediante los comandos de administración de particiones de SQL Server.