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:
-
Cree una instancia de base de datos de SQL Server con uno de estos tipos de instancia. Para obtener más información, consulte Creación de una instancia de base de datos de Amazon RDS.
-
Modifique una instancia de base de datos de SQL Server existente para utilizar una de ellas. Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.
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.