Uso de espacios de tablas en RDS para Oracle - Amazon Relational Database Service

Uso de espacios de tablas en RDS para Oracle

Puede utilizar los espacios de tabla con RDS para Oracle, que es una unidad de almacenamiento lógico que almacena los datos de la base de datos.

importante

Si la instancia de base de datos tiene réplicas, le recomendamos que utilice la configuración de los grupos de parámetros en lugar de los cambios por sesión para administrar las ubicaciones de los archivos predeterminadas. Los cambios por sesión en las ubicaciones de archivos predeterminadas de la instancia principal no se reflejan automáticamente en las réplicas. El uso de la configuración de los grupos de parámetros garantiza la coherencia de las ubicaciones de los archivos en las instancias principal y de réplica.

Especificación de ubicaciones de archivos de base de datos en RDS para Oracle

RDS para Oracle usa Oracle Managed Files (OMF) para nombrar archivos de base de datos. Al crear archivos de base de datos, la base de datos obtiene la configuración en función de la configuración actual del parámetro de inicialización DB_CREATE_FILE_DEST.

El valor predeterminado del parámetro de inicialización DB_CREATE_FILE_DEST es /rdsdbdata/db para bases de datos independientes y /rdsdbdata/db/pdb para arquitecturas en contenedores (CDB/MT). Si la instancia de base de datos tiene volúmenes de almacenamiento adicionales, puede configurar DB_CREATE_FILE_DEST en las ubicaciones de los volúmenes. Por ejemplo, si la instancia tiene un volumen montado en /rdsdbdata/db, puede establecer DB_CREATE_FILE_DEST en este valor.

Puede modificar el parámetro DB_CREATE_FILE_DEST por sesión o instancia de base de datos de Oracle.

Modificación de DB_CREATE_FILE_SET por instancia

Para modificar el parámetro por instancia, actualice el parámetro en el grupo de parámetros asignado a la instancia de base de datos y aplíquelo. Para obtener más información, consulte Parámetros de inicialización de RDS para Oracle y Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS.

Modificación de DB_CREATE_FILE_DEST por sesión

Puede modificar el parámetro por sesión mediante la ejecución de una instrucción ALTER SESSION. Este enfoque resulta útil cuando se desean crear archivos de base de datos en una ubicación específica para una sesión determinada sin que ello afecte a toda la instancia.

El siguiente ejemplo muestra cómo comprobar el valor del parámetro actual y cómo modificarlo para la sesión:

SHOW PARAMETER db_create_file_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_create_file_dest string /rdsdbdata/db ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db'; Session altered. SHOW PARAMETER db_create_file_dest NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_create_file_dest string /rdsdbdata2/db

Creación y redimensionamiento de los espacios de tablas en RDS para Oracle

Al crear espacios de tabla, la base de datos crea los archivos de datos en el volumen de almacenamiento especificado por el parámetro de inicialización DB_CREATE_FILE_DEST en el momento de la creación. De forma predeterminada, si no especifica el tamaño de archivo de datos, los espacios de tabla se crean con el tamaño predeterminado de AUTOEXTEND ON y sin tamaño máximo. En el siguiente ejemplo, el espacio de tablas users1 es ampliable automáticamente.

CREATE TABLESPACE users1;

Debido a estos valores predeterminados, los espacios de tabla pueden llegar a consumir todo el almacenamiento asignado. Recomendamos que especifique un tamaño máximo adecuado para los espacios de tabla permanentes y temporales, y que monitorice cuidadosamente el uso del espacio.

En el siguiente ejemplo, se crea un espacio de tabla denominado users2 con un tamaño inicial de 1 gigabyte. Dado que se especifica el tamaño de un archivo de datos, pero no se especifica AUTOEXTEND ON, el espacio de tablas no se puede ampliar automáticamente.

CREATE TABLESPACE users2 DATAFILE SIZE 1G;

En el siguiente ejemplo, se crea un espacio de tabla denominado users3 con un tamaño inicial de 1 gigabyte, con la ampliación automática activada y un tamaño máximo de 10 gigabytes.

CREATE TABLESPACE users3 DATAFILE SIZE 1G AUTOEXTEND ON MAXSIZE 10G;

En el siguiente ejemplo, se crea un espacio de tabla temporal denominado temp01.

CREATE TEMPORARY TABLESPACE temp01;

Puede cambiar el tamaño de un espacio de tabla bigfile utilizando ALTER TABLESPACE. Puede especificar el tamaño en kilobytes (K), megabytes (M), gigabytes (G) o terabytes (T). En el siguiente ejemplo, se cambia el tamaño de un espacio de tabla bigfile denominado users_bf a 200 MB.

ALTER TABLESPACE users_bf RESIZE 200M;

En el siguiente ejemplo, se añade un archivo de datos adicional a un espacio de tabla smallfile denominado users_sf.

ALTER TABLESPACE users_sf ADD DATAFILE SIZE 100000M AUTOEXTEND ON NEXT 250m MAXSIZE UNLIMITED;

Creación de espacios de tabla en volúmenes de almacenamiento adicionales en RDS para Oracle

Para crear un espacio de tabla en un volumen de almacenamiento adicional, modifique el parámetro DB_CREATE_FILE_DEST por la ubicación del volumen. En el siguiente ejemplo, se establece la ubicación del archivo en /rdsdbdata2/db.

ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db'; Session altered.

En el siguiente ejemplo, se crea un espacio de tablas en un /rdsdbdata2/db de volumen adicional.

CREATE TABLESPACE new_tablespace DATAFILE SIZE 10G; Tablespace created. SELECT tablespace_name,file_id,file_name FROM dba_data_files WHERE tablespace_name = 'NEW_TABLESPACE'; TABLESPACE_NAME FILE_ID FILE_NAME ------------------------- ---------- -------------------------------------------------------------------------------- NEW_TABLESPACE 7 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_newtable_a123b4c5_.dbf

Para crear un espacio de tablas de archivos pequeños y distribuir sus archivos de datos en distintos volúmenes de almacenamiento, agregue archivos de datos al espacio de tablas después de crearlo. En el siguiente ejemplo, se crea un espacio de tablas con los archivos de datos en la ubicación predeterminada de /rdsdbdata/db. A continuación, establezca el destino predeterminado en /rdsdbdata/db2. Al agregar un archivo de datos al espacio de tablas recién creado, la base de datos almacena el archivo en /rdsdbdata/db2.

ALTER SESSION SET db_create_file_dest = '/rdsdbdata/db'; Session altered. CREATE SMALLFILE TABLESPACE smalltbs DATAFILE SIZE 10G; Tablespace created. SELECT tablespace_name,file_id,file_name FROM dba_data_files WHERE tablespace_name = 'SMALLTBS'; TABLESPACE_NAME FILE_ID FILE_NAME ------------------------- ---------- -------------------------------------------------------------------------------- SMALLTBS 8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db'; Session altered. ALTER TABLESPACE smalltbs ADD DATAFILE SIZE 10G; Tablespace altered. SELECT tablespace_name,file_id,file_name FROM dba_data_files WHERE tablespace_name = 'SMALLTBS'; TABLESPACE_NAME FILE_ID FILE_NAME ------------------------- ---------- -------------------------------------------------------------------------------- SMALLTBS 8 /rdsdbdata/db/ORCL_A/datafile/o1_mf_smalltbs_n563yryk_.dbf SMALLTBS 9 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_smalltbs_n564004g_.dbf

Configuración del espacio de tabla predeterminado en RDS para Oracle

Utilice el procedimiento de Amazon RDS para configurar el espacio de tabla predeterminad rdsadmin.rdsadmin_util.alter_default_tablespace. El procedimiento alter_default_tablespace tiene los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

tablespace_name

varchar

El nombre del espacio de tabla predeterminado.

En el siguiente ejemplo se establece el espacio de tabla predeterminado en users2:

EXEC rdsadmin.rdsadmin_util.alter_default_tablespace(tablespace_name => 'users2');

Configuración del espacio de tabla temporal predeterminado en RDS para Oracle

Utilice el procedimiento de Amazon RDS para configurar el espacio de tabla temporal predeterminad rdsadmin.rdsadmin_util.alter_default_temp_tablespace. El procedimiento alter_default_temp_tablespace tiene los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

tablespace_name

varchar

El nombre del espacio de tabla temporal predeterminado.

En el siguiente ejemplo se establece el espacio de tabla temporal predeterminado en temp01.

EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace(tablespace_name => 'temp01');

Creación de un espacio de tablas temporal en el almacén de instancias

Utilice el procedimiento rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace de Amazon RDS para crear un espacio de tabla temporal en el almacén de instancias. El procedimiento create_inst_store_tmp_tblspace tiene los siguientes parámetros.

Nombre del parámetro Tipo de datos Valor predeterminado Obligatorio Descripción

p_tablespace_name

varchar

El nombre del espacio de tabla temporal.

En el siguiente ejemplo, se crea el espacio de tablas temporal temp01 en el almacén de instancias.

EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace(p_tablespace_name => 'temp01');
importante

Cuando se ejecuta rdsadmin_util.create_inst_store_tmp_tblspace, el espacio de tabla temporal recién creado no se establece automáticamente como el espacio de tabla temporal predeterminado. Para configurarlo como predeterminado, consulte Configuración del espacio de tabla temporal predeterminado en RDS para Oracle.

Para obtener más información, consulte Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle.