Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle - Amazon Relational Database Service

Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle

Utilice un almacén de instancias para los espacios de tabla temporales y la caché flash inteligente de base de datos (la caché flash) en clases de instancia de base de datos de RDS para Oracle admitidas.

Descripción general del almacén de instancias de RDS para Oracle

El almacén de instancias ofrece un almacenamiento de nivel de bloques temporal para la instancia de base de datos de RDS para Oracle. Puede usar un almacén de instancias para almacenar temporalmente la información que cambia con frecuencia.

Un almacén de instancias se basa en dispositivos de memoria rápida no volátil (NVMe) que están conectados físicamente al equipo host. El almacenamiento está optimizado para una latencia baja, un rendimiento de E/S aleatorio y un rendimiento de lectura secuencial.

El tamaño del almacén de instancias varía según el tipo de instancia de base de datos. Para obtener más información sobre el almacén de instancias, consulte Almacén de instancias de Amazon EC2 en la Guía del usuario de Amazon Elastic Compute Cloud para las instancias de Linux.

Tipos de datos en el almacén de instancias de RDS para Oracle

Puede colocar los siguientes tipos de datos temporales de RDS para Oracle en un almacén de instancias:

Un espacio de tabla temporal

Oracle Database utiliza espacios de tablas temporales para almacenar los resultados de las consultas intermedias que no caben en la memoria. Las consultas más grandes pueden generar grandes cantidades de datos intermedios que deben almacenarse en caché temporalmente, pero no es necesario que persistan. En particular, un espacio de tablas temporal es útil para ordenaciones, agregaciones de hash y uniones. Si su instancia de base de datos de RDS para Oracle usa la Enterprise Edition o la Standard Edition 2, puede colocar un espacio de tablas temporal en un almacén de instancias.

Memoria caché flash

La memoria caché flash mejora el rendimiento de las lecturas aleatorias de un solo bloque en la ruta convencional. Se recomienda ajustar el tamaño de la memoria caché para que se adapte a la mayoría del conjunto de datos activo. Si su instancia de RDS para la base de datos de Oracle utiliza la Enterprise Edition, puede colocar la memoria caché flash en un almacén de instancias.

De forma predeterminada, un almacén de instancias está configurado para un espacio de tablas temporal, pero no para la memoria caché flash. No puede colocar archivos de datos de Oracle y archivos de registro de base de datos en un almacén de instancias.

Beneficios del almacén de instancias de RDS para Oracle

Puede considerar usar un almacén de instancias para almacenar archivos y memorias caché temporales que pueda permitirse perder. Si desea mejorar el rendimiento de la base de datos o si el aumento de la carga de trabajo está causando problemas de rendimiento en su almacenamiento de Amazon EBS, considere la posibilidad de escalar a una clase de instancias que admita un almacén de instancias.

Al colocar el espacio de tablas temporal y la memoria caché flash en un almacén de instancias, obtendrá las siguientes ventajas:

  • Latencias de lectura más bajas

  • Mayor rendimiento

  • Carga reducida en sus volúmenes de Amazon EBS

  • Costos de almacenamiento e instantáneas más bajos gracias a la reducción de la carga de Amazon EBS

  • Menor necesidad de aprovisionar IOPS elevadas, lo que posiblemente reduzca el costo total

Al colocar su espacio de tablas temporal en el almacén de instancias, aumenta de forma inmediata el rendimiento de las consultas que utilizan espacio temporal. Al colocar la memoria caché flash en el almacén de instancias, las lecturas de bloques en caché suelen tener una latencia mucho más baja que las lecturas de Amazon EBS. La memoria caché flash debe «calentarse» antes de ofrecer beneficios de rendimiento. La memoria caché se calienta por sí sola porque la base de datos escribe bloques en la caché flash a medida que se agotan en la memoria caché del búfer de la base de datos.

nota

En algunos casos, la caché flash ocasiona una sobrecarga de rendimiento debido a la administración de la memoria caché. Antes de activar la caché flash en un entorno de producción, le recomendamos que analice su carga de trabajo y pruebe la caché en un entorno de prueba.

Clases de instancia admitidas para el almacén de instancias de RDS para Oracle

Amazon RDS admite el almacén de instancias para las siguientes clases de instancia de base de datos:

  • db.m5d

  • db.r5d

  • db.x2idn

  • db.x2iedn

RDS para Oracle solo admite las clases de instancia de base de datos anteriores para el modelo de licencias BYOL. Para obtener más información, consulte Clases de instancia admitidas de RDS para Oracle y Traiga su propia licencia (BYOL).

Para ver el almacenamiento de instancias total de los tipos de instancia de base de datos admitidas, ejecute el siguiente comando en la CLI de AWS.

aws ec2 describe-instance-types \ --filters "Name=instance-type,Values=*5d.*large*" \ --query "InstanceTypes[?contains(InstanceType,'m5d')||contains(InstanceType,'r5d')][InstanceType, InstanceStorageInfo.TotalSizeInGB]" \ --output table

El comando anterior devuelve el tamaño de dispositivo sin procesar del almacén de instancias. RDS para Oracle utiliza una pequeña parte de este espacio para la configuración. El espacio en el almacén de instancias que está disponible para los espacios de tablas temporales o la memoria caché flash es un poco más pequeño.

Versiones de motor para el almacén de instancias de RDS para Oracle

El almacén de instancias es compatible con las siguientes versiones de motor de RDS para Oracle

  • Versiones 21.0.0.0.ru-2022-01.rur-2022-01.r1 o posteriores de Oracle Database 21c

  • Versiones 19.0.0.0.ru-2021-10.rur-2021-10.r1 o posteriores de Oracle Database 19c

Regiones de AWS admitidas para el almacén de instancias de RDS para Oracle

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 para Oracle, consulte RDS para clases de instancia de Oracle.

Coste del almacén de instancias de RDS para Oracle

El coste del almacén de instancias se incluye en el coste de las instancias activadas en el almacén de instancias. No incurre en costes adicionales al habilitar un almacén de instancias en una instancia de base de datos de RDS para Oracle. Para obtener más información acerca de las instancias activadas del el almacén de instancias, consulte Clases de instancia admitidas para el almacén de instancias de RDS para Oracle.

Activación de un almacén de instancias de RDS para Oracle

Para activar el almacén de instancias para datos temporales de RDS para Oracle, realice una de las siguientes operaciones:

Configuración de un almacén de instancias de RDS para Oracle

De forma predeterminada, el 100 % del espacio del almacén de instancias se asigna al espacio de tablas temporal. Para configurar el almacén de instancias para asignar espacio a la memoria caché flash y al espacio de tablas temporal, establezca los siguientes parámetros en el grupo de parámetros de su instancia:

db_flash_cache_size={DBInstanceStore*{0,2,4,6,8,10}/10}

Este parámetro especifica la cantidad de espacio de almacenamiento asignado a la memoria caché flash. Este parámetro solo es válido para Oracle Database Enterprise Edition. El valor predeterminado es {DBInstanceStore*0/10}. Si establece un valor distinto de cero para db_flash_cache_size, la instancia de RDS para Oracle habilita la memooria caché flash después de reiniciar la instancia.

rds.instance_store_temp_size={DBInstanceStore*{0,2,4,6,8,10}/10}

Este parámetro especifica la cantidad de espacio de almacenamiento asignado a la tabla de espacio temporal. El valor predeterminado es {DBInstanceStore*10/10}. Este parámetro se puede modificar para Oracle Database Enterprise Edition y es de solo lectura para la Standard Edition 2. Si establece un valor distinto de cero para rds.instance_store_temp_size, Amazon RDS asigna espacio en el almacén de instancias para el espacio de tablas temporal.

Puede establecer los parámetros db_flash_cache_size y rds.instance_store_temp_size para las instancias de base de datos que no utilizan un almacén de instancias. En este caso, ambos ajustes se evalúan en 0, lo que desactiva la función. En este caso, puede usar el mismo grupo de parámetros para instancias de diferentes tamaños y para instancias que no usen un almacén de instancias. Si modifica estos parámetros, asegúrese de reiniciar las instancias asociadas para que los cambios surtan efecto.

importante

Si asigna espacio a un espacio de tablas temporal, Amazon RDS no crea el espacio de tablas temporal automáticamente. Para obtener información sobre cómo crear el espacio de tablas temporal en el almacén de instancias, consulte Creación de un espacio de tablas temporal en el almacén de instancias.

El valor combinado de los parámetros anteriores no debe superar el 10/10 o el 100 %. En la tabla siguiente se muestran las configuraciones de parámetros válidas y no válidas.

db_flash_cache_size setting rds.instance_store_temp_size setting Explicación

db_flash_cache_size={DBInstanceStore*0/10}

rds.instance_store_temp_size={DBInstanceStore*10/10}

Esta es una configuración válida para todas las ediciones de Oracle Database. Amazon RDS asigna el 100 % del espacio del almacén de instancias al espacio de tablas temporal. Esta es la opción predeterminada.

db_flash_cache_size={DBInstanceStore*10/10}

rds.instance_store_temp_size={DBInstanceStore*0/10}

Esta es una configuración válida para Oracle Database Enterprise Edition. Amazon RDS asigna el 100 % del espacio del almacén de instancias a la memoria caché flash.

db_flash_cache_size={DBInstanceStore*2/10}

rds.instance_store_temp_size={DBInstanceStore*8/10}

Esta es una configuración válida solo para Oracle Database Enterprise Edition. Amazon RDS asigna el 20 % del espacio del almacén de instancias a la memoria caché flash y el 80 % del espacio del almacén de instancias al espacio de tablas temporal.

db_flash_cache_size={DBInstanceStore*6/10}

rds.instance_store_temp_size={DBInstanceStore*4/10}

Esta es una configuración válida solo para Oracle Database Enterprise Edition. Amazon RDS asigna el 60 % del espacio del almacén de instancias a la memoria caché flash y el 40 % del espacio del almacén de instancias al espacio de tablas temporal.

db_flash_cache_size={DBInstanceStore*2/10}

rds.instance_store_temp_size={DBInstanceStore*4/10}

Esta es una configuración válida solo para Oracle Database Enterprise Edition. Amazon RDS asigna el 20 % del espacio del almacén de instancias a la memoria caché flash y el 40 % del espacio del almacén de instancias al espacio de tablas temporal.

db_flash_cache_size={DBInstanceStore*8/10}

rds.instance_store_temp_size={DBInstanceStore*8/10}

Esta configuración no es válida porque el porcentaje combinado del espacio del almacén de instancias supera el 100 %. En esos casos, Amazon RDS no logra realizar el intento.

Consideraciones a la hora de cambiar el tipo de instancia

Si cambia el tipo de instancia de base de datos, esto puede afectar a la configuración de la memoria caché flash o al espacio de tablas temporal del almacén de instancias. Tenga en cuenta las siguientes modificaciones y sus efectos:

Puede escalar verticalmente o reducir verticalmente la instancia de base de datos que admite el almacén de instancias.

Los siguientes valores aumentan o disminuyen proporcionalmente al nuevo tamaño del almacén de instancias:

  • El nuevo tamaño de la memoria caché flash.

  • El espacio asignado a los espacios de tablas temporales que residen en el almacén de instancias.

Por ejemplo, el ajuste db_flash_cache_size={DBInstanceStore*6/10} de una instancia db.m5d.4xlarge proporciona alrededor de 340 GB de espacio de memoria caché flash. Si aumentas el tipo de instancia a db.m5d.8xlarge, el espacio de la caché flash aumenta hasta unos 680 GB.

Modifica una instancia de base de datos que no usa un almacén de instancias en una instancia que sí usa un almacén de instancias.

Si db_flash_cache_size se establece en un valor superior a 0, se configura la memoria caché flash. Si rds.instance_store_temp_size se establece en un valor mayor que 0, el espacio del almacén de instancias se asigna para que lo use un espacio de tablas temporal. RDS for Oracle no mueve automáticamente los archivos temporales al almacén de instancias. Para obtener información sobre el uso del espacio asignado, consulte Creación de un espacio de tablas temporal en el almacén de instancias o Adición de un archivo temporal al almacén de instancias en una réplica de lectura.

Una instancia de base de datos que no usa un almacén de instancias se modifica en una instancia que sí usa un almacén de instancias.

En este caso, RDS para Oracle elimina la memoria caché flash. RDS vuelve a crear el archivo temporal que se encuentra actualmente en el almacén de instancias de un volumen de Amazon EBS. El tamaño máximo del nuevo archivo temporal es el tamaño anterior del parámetro rds.instance_store_temp_size.

Trabajo con un almacén de instancias en una réplica de lectura de Oracle

Las réplicas de lectura admiten la memoria caché flash y los espacios de tablas temporales de un almacén de instancias. Si bien la memoria caché flash funciona de la misma manera que en la instancia de base de datos principal, tenga en cuenta las siguientes diferencias en los espacios de tablas temporales:

  • No puede crear un espacio de tabla temporal existente en una réplica de lectura. Si crea un nuevo espacio de tablas temporal en la instancia principal, RDS para Oracle replica la información del espacio de tablas sin archivos temporales. Para agregar un archivo temporal nuevo, utilice cualquiera de las siguientes técnicas:

    • Utilice el procedimiento de Amazon RDS rdsadmin.rdsadmin_util.add_inst_store_tempfile. RDS para Oracle crea un archivo temporal en el almacén de instancias de la réplica de lectura y lo agrega al espacio de tablas temporal especificado.

    • Ejecute el comando ALTER TABLESPACE … ADD TEMPFILE. RDS para Oracle coloca el archivo temporal en el almacenamiento de Amazon EBS.

    nota

    Los tamaños de los archivos temporales y los tipos de almacenamiento pueden ser diferentes en la instancia de base de datos principal y en la réplica de lectura.

  • Puede administrar la configuración predeterminada del espacio de tablas temporal solo en la instancia de base de datos principal. RDS para Oracle replica la configuración en todas las réplicas de lectura.

  • Puede configurar grupos de espacio de tablas temporal solo en la instancia de base de datos principal. RDS para Oracle replica el ajuste en todas las réplicas de lectura.

Configuración de un grupo de espacio de tablas temporal en un almacén de instancias y Amazon EBS

Puede configurar un grupo de espacios de tablas temporal para que incluya espacios de tablas temporales tanto en un almacén de instancias como en Amazon EBS. Esta técnica es útil cuando se desea disponer de más almacenamiento temporal del permitido por el ajuste máxima de rds.instance_store_temp_size.

Al configurar un grupo de espacios de tablas temporal tanto en un almacén de instancias como en Amazon EBS, los dos espacios de tablas tienen características de rendimiento significativamente diferentes. Oracle Database elige el espacio de tablas para atender las consultas en función de un algoritmo interno. Por lo tanto, el rendimiento de consultas similares puede variar.

Por lo general, se crea un espacio de tablas temporal en el almacén de instancias de la siguiente manera:

  1. Cree un espacio de tablas temporal en el almacén de instancias.

  2. Configure el nuevo espacio de tablas como el espacio de tabla temporal predeterminado de la base de datos.

Si el tamaño del espacio de tablas del almacén de instancias es insuficiente, puede crear almacenamiento temporal adicional de la siguiente manera:

  1. Asigne el espacio de tablas temporal del almacén de instancias a un grupo de espacios de tablas temporales.

  2. Cree un nuevo espacio de tablas temporal en Amazon EBS si no existe ninguno.

  3. Asigne el espacio de tablas temporal de Amazon EBS al mismo grupo de espacios de tablas que incluye el espacio de tablas del almacén de instancias.

  4. Configure el grupo de espacios de tablas como el espacio de tabla temporal predeterminado.

En el siguiente ejemplo, se suponeque el tamaño del espacio de tablas temporal del almacén de instancias no cumple con los requisitos de la aplicación. En el ejemplo se crea el espacio de tablas temporal temp_in_inst_store en el almacén de instancias, se asigna al grupo de espacios de tablas temp_group, se agrega el espacio de tablas de Amazon EBS existente denominado temp_in_ebs a este grupo y se establece este grupo como el espacio de tablas temporal predeterminado.

SQL> EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace('temp_in_inst_store'); PL/SQL procedure successfully completed. SQL> ALTER TABLESPACE temp_in_inst_store TABLESPACE GROUP temp_group; Tablespace altered. SQL> ALTER TABLESPACE temp_in_ebs TABLESPACE GROUP temp_group; Tablespace altered. SQL> EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace('temp_group'); PL/SQL procedure successfully completed. SQL> SELECT * FROM DBA_TABLESPACE_GROUPS; GROUP_NAME TABLESPACE_NAME ------------------------------ ------------------------------ TEMP_GROUP TEMP_IN_EBS TEMP_GROUP TEMP_IN_INST_STORE SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE'; PROPERTY_VALUE -------------- TEMP_GROUP

Eliminación de un almacén de instancias de RDS para Oracle

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