

# Soporte del almacén de instancias para la base de datos tempdb en Amazon RDS for SQL Server
<a name="SQLServer.InstanceStore"></a>

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
<a name="SQLServer.InstanceStore.Enable"></a>

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](USER_CreateDBInstance.md).
+ 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](Overview.DBInstance.Modifying.md).

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 ](Concepts.DBInstanceClass.md). 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](SQLServer.Concepts.General.InstanceClasses.md).

## Consideraciones sobre la ubicación y el tamaño de los archivos
<a name="SQLServer.InstanceStore.Files"></a>

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
<a name="SQLServer.InstanceStore.Backups"></a>

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
<a name="SQLServer.InstanceStore.DiskFull"></a>

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\$1TRANSACTION' (El registro de transacciones para la base de datos 'tempdb' está lleno debido a 'ACTIVE\$1TRANSACTION'). 
+ 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
<a name="SQLServer.InstanceStore.Disable"></a>

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.