Todos los productos
Search
Centro de documentos

ApsaraDB RDS:Solución al bloqueo de instancias de SQL Server por falta de espacio de almacenamiento

Última actualización: Sep 17, 2026

Cuando una instancia de ApsaraDB RDS for SQL Server se queda sin espacio en disco, se bloquea automáticamente para evitar la pérdida de datos. Una vez bloqueada, todas las operaciones de escritura fallan y el indicador de estado de ejecución en la consola de RDS refleja este bloqueo.

El espacio de almacenamiento se llena por tres razones:

  • Alto uso de archivos de registro: los registros de transacciones crecen de forma continua debido a un gran volumen de transacciones o a transacciones individuales muy extensas.

  • Alto uso de archivos de datos: los archivos de datos de la base de datos acumulan espacio asignado que no se libera automáticamente después de eliminar filas.

  • Alto uso de archivos temporales: tempdb consume demasiado espacio.

Este documento explica cómo identificar cuál de estas causas afecta a su instancia y cómo solucionarla.

Comprobar el uso de espacio

Existen dos métodos disponibles. Use el método 1 para obtener una descripción general rápida y el método 2 para conocer el tamaño exacto de los archivos por base de datos.

Método 1: Consultar la página de monitoreo

En la página de monitoreo de la instancia, revise las siguientes métricas. Para más detalles, consulte View standard monitoring.

Métrica

Qué mide

The size of consumed disk space

Archivos de datos y de registro de todas las bases de datos de usuario

The data size

Archivos de datos (.mdf y .ndf) de todas las bases de datos de usuario

The size of consumed log space

Archivos de registro (.ldf) de todas las bases de datos de usuario

Temporary file size

Todos los archivos .mdf, .ndf y .ldf de tempdb

System file space usage

Archivos de datos y de registro de master, msdb y model, además de los archivos del sistema (registros de errores, archivos DLL y similares) dentro del directorio de la instancia de SQL Server

Método 2: Ejecutar una consulta SQL

Conéctese a la instancia y ejecute instrucciones SQL para comprobar el tamaño exacto de los archivos de datos (.mdf y .ndf) y de registro (.ldf) en todas las bases de datos. Para más detalles, consulte How do I view the size of an RDS for SQL Server database and the tables in the database.

Resolver el bloqueo

Cuando ejecute operaciones con riesgos, como modificar configuraciones o datos de la instancia, compruebe las capacidades de recuperación ante desastres y tolerancia a fallos de las instancias para garantizar la seguridad de los datos.
Antes de modificar las configuraciones y los datos de sus instancias, incluidas las de ECS y RDS, le recomendamos crear snapshots o habilitar la copia de seguridad de registros de RDS.
Si autorizó o envió información de seguridad, como la cuenta de inicio de sesión y la contraseña, en Alibaba Cloud Management Console, le recomendamos modificarla oportunamente.

Ampliar el espacio de almacenamiento

Ampliar el espacio de almacenamiento desbloquea la instancia de inmediato. Consulte Change the specifications of an ApsaraDB RDS for SQL Server instance para ver los pasos.

Si la instancia ya alcanzó el límite máximo de almacenamiento, envíe un ticket para desbloquearla temporalmente mientras libera espacio.

Resolver el alto uso de archivos de registro

Diagnosticar la causa

Conéctese a la instancia y ejecute la siguiente consulta:

SELECT name, log_reuse_wait, log_reuse_wait_desc FROM sys.databases;

Si el valor de log_reuse_wait_desc es LOG_BACKUP, reduzca el registro de transacciones (consulte la sección siguiente).

**Reducir el registro de transacciones (cuando log_reuse_wait_desc es LOG_BACKUP)**

Para reducir el registro de transacciones, siga las instrucciones de How do I shrink the transaction logs of an ApsaraDB RDS for SQL Server instance.

Si el archivo de registro es muy grande, la copia de seguridad tarda más tiempo. Además, si existen transacciones sin confirmar al momento de la reducción, un solo intento podría no liberar todo el espacio. Vuelva a ejecutar la operación de reducción cuando termine la copia de seguridad.

Evitar que se repita: dividir transacciones grandes

El crecimiento acelerado del registro casi siempre se debe a un volumen alto de transacciones o a transacciones individuales muy extensas. Por ejemplo, si una sola transacción actualiza 5 millones de filas, divídala en 50 lotes de 100,000 filas cada uno. Las transacciones más pequeñas generan menos crecimiento en el registro y permiten truncarlo con mayor frecuencia.

Resolver el alto uso de archivos de datos

Los archivos de datos no se reducen automáticamente cuando se eliminan filas, ya que el espacio asignado permanece reservado. Compruebe qué bases de datos conservan una cantidad importante de espacio sin usar y redúzcalas de manera selectiva.

Paso 1: Identificar las bases de datos con mucho espacio libre

Ejecute la siguiente consulta en cada base de datos para ver cuánto espacio está asignado pero sin usar:

USE [$DB_Name];
SELECT
    SUM(unallocated_extent_page_count) AS [free pages],
    (SUM(unallocated_extent_page_count) * 1.0 / 128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;

Reemplace $DB_Name con el nombre de la base de datos de destino.

Paso 2: Reducir la base de datos o un archivo específico

Para reducir una base de datos completa:

DBCC SHRINKDATABASE([$DB_Name]);

Para reducir un solo archivo:

DBCC SHRINKFILE(file_id, [$Size]);

Reemplace $Size con el tamaño final deseado después de la reducción (no la cantidad que desea reducir), expresado en MB.

Resolver el alto uso de archivos temporales

Diagnosticar la causa

En la pestaña de monitoreo de la instancia, compruebe el consumo de archivos temporales. Cuando tempdb se queda sin espacio suficiente, el error correspondiente también se registra en el registro de errores.

Para consultar una guía detallada de solución de problemas, revise la documentación de Microsoft sobre Troubleshooting insufficient disk space in tempdb.

Solución

  • Reinicie la instancia para liberar de inmediato el espacio de los archivos temporales.

  • Libere tablas temporales, versiones de filas y variables de tabla de forma oportuna en el código de la aplicación para evitar que tempdb crezca innecesariamente.

Ámbito de aplicación

ApsaraDB RDS for SQL Server