Soporte del almacén de instancias para la base de datos tempdb en Amazon RDS for SQL Server - Amazon Relational Database Service

Soporte del almacén de instancias para la base de datos tempdb en Amazon RDS for SQL Server

El almacén de instancias ofrece un almacenamiento de nivel de bloques temporal para la instancia de base de datos. Este almacenamiento se encuentra en discos que están conectados físicamente al equipo host. Estos discos tienen almacenamiento de instancias de memoria rápida no volátil (NVMe) basado en unidades de estado sólido (SSD). Este almacenamiento está optimizado para una latencia baja, un rendimiento de E/S aleatorio muy alto y un alto rendimiento de lectura secuencial.

Al colocar archivos de datos tempdb y archivos de registro tempdb en el almacén de instancias, se pueden lograr latencias de lectura y escritura inferiores en comparación con el almacenamiento estándar basado en Amazon EBS.

nota

Los archivos de base de datos de SQL Server y los archivos de registro de base de datos no se colocan en el almacén de instancias.

Habilitación del almacén de instancias

Cuando RDS aprovisiona instancias de base de datos con una de las siguientes clases de instancia, la base de datos tempdb se coloca automáticamente en el almacén de instancias:

  • db.m5d

  • db.r5d

  • db.x2iedn

Para habilitar el almacén de instancias, realice una de las acciones siguientes:

El almacén de instancias está disponible en todas las regiones de AWS donde se admite uno o más de estos tipos de instancia. Para obtener más información sobre las clases de instancia db.m5d y db.r5d, consulte Clases de instancia de base de datos de . Para obtener más información sobre las clases de instancia admitidas por Amazon RDS for SQL Server, consulte Compatibilidad con clases de instancia de base de datos para Microsoft SQL Server.

Consideraciones sobre la ubicación y el tamaño de los archivos

En instancias sin un almacén de instancias, RDS almacena los datos tempdb y archivos de registros en el directorio D:\rdsdbdata\DATA. Ambos archivos comienzan en 8 MB de forma predeterminada.

En instancias con un almacén de instancias, RDS almacena los datos tempdb y archivos de registros en el directorio T:\rdsdbdata\DATA.

Cuando tempdb tiene solo un archivo de datos (tempdb.mdf) y un archivo de registro (templog.ldf), templog.ldf comienza en 8 MB de forma predeterminada y tempdb.mdf comienza al 80 % o más de la capacidad de almacenamiento de la instancia. El veinte por ciento de la capacidad de almacenamiento o 200 GB, lo que sea menor, se mantiene libre para comenzar. Múltiples archivos de datos tempdb dividen el 80 % de espacio en disco de manera uniforme, mientras que los archivos de registro siempre poseen un tamaño inicial de 8 MB.

Por ejemplo, si se modifica la clase de instancia de base de datos de db.m5.2xlarge a db.m5d.2xlarge, el tamaño de los archivos de datos tempdb aumentan de 8 MB cada uno a un total de 234 GB.

nota

Además de los datos y archivos de registro tempdb en el almacén de instancias (T:\rdsdbdata\DATA), aún se pueden crear datos y archivos de registro tempdb adicionales en el volumen de datos (D:\rdsdbdata\DATA). Esos archivos siempre tienen un tamaño inicial de 8 MB.

Consideraciones sobre copias de seguridad

Es posible que deba retener las copias de seguridad durante largos periodos, lo que hará que incurra en costos a lo largo del tiempo. Los bloques de registros y datos tempdb pueden cambiar muy a menudo en función de la carga de trabajo. Esto puede aumentar considerablemente el tamaño de la instantánea de base de datos.

Cuando tempdb se encuentra en el almacén de instancias, las instantáneas no incluyen archivos temporales. Esto significa que los tamaños de instantáneas son más pequeños y consumen menos de la asignación de copia de seguridad gratuita en comparación con el almacenamiento solo para EBS.

Errores de disco lleno

Si utiliza todo el espacio disponible en el almacén de instancias, es posible que reciba errores como el siguiente:

  • The transaction log for database 'tempdb' is full due to 'ACTIVE_TRANSACTION' (El registro de transacciones para la base de datos 'tempdb' está lleno debido a 'ACTIVE_TRANSACTION').

  • No se pudo asignar espacio para el objeto "dbo.SORT temporary run storage: 140738941419520" en la base de datos "tempdb" porque el grupo de archivos "PRIMARY" está lleno. Cree espacio en el disco al eliminar archivos innecesarios, borrar objetos en el grupo de archivos, agregar archivos adicionales al grupo de archivos o configurar el crecimiento automático para los archivos existentes en el grupo de archivos.

Puede realizar una o varias de las siguientes acciones cuando el almacén de instancias está lleno:

  • Ajuste la carga de trabajo o la forma en que utiliza tempdb.

  • Escale verticalmente para usar una clase de instancia de base de datos con más almacenamiento NVMe.

  • Deje de usar el almacén de instancias y utilice una clase de instancia con almacenamiento solo para EBS.

  • Utilice un modo combinado al agregar datos secundarios o archivos de registro para tempdb en el volumen de EBS.

Eliminación del almacén de instancias

Para quitar el almacén de instancias, modifique la instancia de base de datos de SQL Server para utilizar un tipo de instancia que no admita el almacén de instancias, como as db.m5, db.r5 o db.x1e.

nota

Al quitar el almacén de instancias, los archivos temporales se mueven al directorio D:\rdsdbdata\DATA y reducen su tamaño a 8 MB.