¿Cómo puedo solucionar los problemas de consumo de almacenamiento en mi instancia de base de datos de RDS para SQL Server?

7 minutos de lectura
0

Mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server usa más espacio del esperado. ¿Por qué se produce esto y cómo puedo optimizar el almacenamiento en disco?

Descripción breve

Puede supervisar el espacio de almacenamiento disponible de una instancia de base de datos mediante la métrica FreeStorageSpace de Amazon CloudWatch. La supervisión frecuente de esta métrica y la activación del escalado automático del almacenamiento ayudan a evitar que las instancias se queden sin espacio de almacenamiento estado (Almacenamiento completo).

Sin embargo, la métrica FreeStorageSpace no describe cómo el motor de SQL Server consume el almacenamiento disponible.

Resolución

Instancias de Amazon RDS para SQL Server en estado Almacenamiento completo

No puede realizar operaciones básicas cuando la instancia de RDS está bloqueada en el estado Almacenamiento completo. Para obtener más información, consulte ¿Cómo puedo solucionar los problemas que surgen cuando las instancias de base de datos de Amazon RDS se quedan sin almacenamiento?

Algunas instancias de base de datos de RDS para SQL Server tienen limitaciones de modificación del almacenamiento. En la consola de Amazon RDS, la opción Almacenamiento asignado se desactiva si su instancia de base de datos no cumple los requisitos para la modificación. Para escalar el almacenamiento en una instancia cuando la opción de modificación no esté disponible, migre sus datos con una copia de seguridad y restauración nativa a una nueva instancia. Asegúrese de que la nueva instancia tenga IOPS aprovisionadas o de que disponga del tipo de almacenamiento de uso general (SSD). O bien, use una herramienta de migración de datos para migrar a la nueva instancia. Para obtener más información, consulte Modificar una instancia de base de datos de Amazon RDS.

Use el siguiente comando de la interfaz de la línea de comandos de AWS (AWS CLI) para devolver las opciones de almacenamiento válidas para su instancia de base de datos:

describe-valid-db-instance-modifications

Nota: No se admite el escalado ni el escalado automático del almacenamiento en las instancias de RDS para SQL Server que usan almacenamiento magnético.

Para las instancias que tengan activado el escalado automático de almacenamiento, el almacenamiento solo se ampliará en ciertos escenarios. Para obtener más información, consulte Administración automática de la capacidad con el escalado automático de almacenamiento de Amazon RDS. Además, el almacenamiento solo se amplía si el umbral máximo de almacenamiento no es igual o superior al incremento de almacenamiento. Para obtener más información, consulte Limitaciones.

Consumo de almacenamiento de las instancias de RDS para SQL Server

Para recopilar información detallada sobre el uso del espacio en disco físico de una instancia de base de datos de SQL Server, ejecute una consulta similar a la siguiente:

SELECT D.name AS [database_name]
    , F.name AS [file_name]
    , F.type_desc AS [file_type]
    , CONVERT(decimal(10,2), F.size * 0.0078125) AS [size_on_disk_mb]
    , CONVERT(decimal(10,2), F.max_size * 0.0078125) AS [max_size_mb]
FROM sys.master_files AS F
INNER JOIN sys.databases AS D
    ON F.database_id = D.database_id;

Los archivos que contienen ROWS constan de datos y los archivos que contienen LOGS representan transacciones en curso.

Nota: La vista del sistema sys.master_files muestra el tamaño de inicio de tempdb. No refleja el tamaño actual de tempdb. Ejecute la siguiente consulta para comprobar el tamaño actual de tempdb:

select name AS [database_name],
physical_name AS [file_name],
convert(decimal(10,2),size*0.0078125) AS [size_on_disk_mb]
from tempdb.sys.database_files;

Antes de optimizar el almacenamiento, asegúrese de comprender cómo utiliza el almacenamiento el motor de SQL Server. El almacenamiento del motor de SQL Server se define en términos generales con las categorías siguientes:

Archivos de base de datos

Puede dividir el almacenamiento total que usa una base de datos individual en filas, índices y espacio libre en la base de datos actualmente activa. Para ello, ejecute una consulta similar a la siguiente:

EXEC sp_spaceused;

Archivos de registro de transacciones

Para determinar la cantidad de almacenamiento que usan los registros de transacciones, ejecute la siguiente consulta:

DBCC SQLPERF(LOGSPACE)

Puede esperar espacio libre en los registros de transacciones, pero puede desasignar el exceso de espacio libre si sigue las instrucciones de la documentación de Microsoft para DBCC SHRINKFILE.

Puede reducir la asignación excesiva de espacio libre para los registros de transacciones mediante las opciones de archivo y grupo de archivos ALTER DATABASE (transact-SQL). Las opciones configuran los ajustes de crecimiento automático de la base de datos.

Base de datos temporal (tempdb)

La base de datos tempdb de SQL Server crece automáticamente. Si la base de datos tempdb consume una gran cantidad de almacenamiento disponible, puede reducir el tamaño de la base de datos tempdb.

Nota: Si reduce el tamaño de una base de datos tempdb, compruebe la pestaña Mensajes de SQL Server Management Studio (SSMS) en busca de mensajes de error después de ejecutar el comando. Si recibe el mensaje de error DBCC SHRINKFILE: Page could not be moved because it is a work table page, consulte documentación de Microsoft para DBCC FREESYSTEMCACHE y DBCC FREEPROCCACHE. También puede reiniciar la instancia de la base de datos para borrar la base de datos tempdb.

Es posible que no pueda reiniciar las instancias de base de datos que tengan el estado Almacenamiento lleno. Si esto ocurre, aumente el almacenamiento asignado a la instancia de base de datos y, a continuación, reinicie. Para obtener más información, consulte ¿Cómo puedo solucionar los problemas que surgen cuando las instancias de base de datos de Amazon RDS se quedan sin almacenamiento?

Índices de bases de datos

Si dedica una parte importante del almacenamiento disponible a los índices, es posible que pueda ahorrar algo de espacio mediante el ajuste de los índices. Ejecute la vista de administración dinámica sys.dm_db_index_usage_stats para recopilar información detallada sobre el uso de índices. Esto puede ayudarle a evaluar las prioridades de ajuste.

Archivos de seguimiento

Los archivos de seguimiento, incluidos los archivos C2 Audit Trace y los archivos de volcado, pueden consumir mucho espacio en disco. Amazon RDS elimina automáticamente los archivos de seguimiento y de volcado con una antigüedad superior a 7 días, pero también puede ajustar la configuración de retención de los archivos de seguimiento. Para obtener más información, consulte Configurar el periodo de retención para los archivos de seguimiento y volcado.

Espacio consumido por la integración de Amazon S3

Si integró su instancia de base de datos de RDS con Amazon S3, es posible que haya cargado archivos a su unidad D: que estén ocupando espacio. Para comprobar cuánto espacio consume la integración de S3, ejecute un comando para mostrar los archivos de la instancia de base de datos. Para obtener más información, consulte Listar los archivos de la instancia de base de datos de RDS.

CDC

En el caso de las bases de datos que tienen activado CDC, el tamaño del archivo de registro aumenta en función de la frecuencia de los cambios en las tablas o bases de datos de origen. El almacenamiento podría llegar a agotarse. Si el disco de registro se llena, CDC no podrá procesar más transacciones.

Auditoría

Si la auditoría no está configurada correctamente, los registros pueden crecer exponencialmente y afectar al almacenamiento. Para obtener más información, consulte Utilizar SQL Server Audit.

El modo de auditoría C2 guarda una gran cantidad de información de eventos en el archivo de registro. El tamaño del archivo de registro puede aumentar rápidamente y poner la instancia en el estado Almacenamiento completo. Para obtener más información, consulte la opción de configuración del servidor de modo de auditoría C2 en la documentación de Microsoft.

Además, activar características como el almacén de consultas también puede afectar a la utilización de recursos.


Información relacionada

Amazon RDS para Microsoft SQL Server

Supervisar métricas en una instancia de Amazon RDS

La instancia de base de datos de Amazon RDS se está quedando sin espacio de almacenamiento

Migrar bases de datos de Microsoft SQL Server a la nube de AWS