

# Uso de espacios de tablas en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles"></a>

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.

**Topics**
+ [Especificación de ubicaciones de archivos de base de datos en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [Creación y redimensionamiento de los espacios de tablas en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [Creación de espacios de tabla en volúmenes de almacenamiento adicionales en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations)
+ [Configuración del espacio de tabla predeterminado en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace)
+ [Configuración del espacio de tabla temporal predeterminado en RDS para Oracle](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)
+ [Creación de un espacio de tablas temporal en el almacén de instancias](#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store)

## Especificación de ubicaciones de archivos de base de datos en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.DatabaseFileLocations"></a>

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\$1CREATE\$1FILE\$1SET por instancia
<a name="Appendix.Oracle.CommonDBATasks.InstanceLevelModification"></a>

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](Oracle.Concepts.FeatureSupport.Parameters.md) y [Modificación de los parámetros de un grupo de parámetros de base de datos en Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

### Modificación de DB\$1CREATE\$1FILE\$1DEST por sesión
<a name="Appendix.Oracle.CommonDBATasks.SessionLevelModification"></a>

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
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles"></a>

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\$1bf* 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\$1sf*.

```
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
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations"></a>

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
<a name="Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace"></a>

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  |  —  |  Sí  |  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
<a name="Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace"></a>

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  |  —  |  Sí  |  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
<a name="Appendix.Oracle.CommonDBATasks.creating-tts-instance-store"></a>

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  |  —  |  Sí  |  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](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace).

Para obtener más información, consulte [Almacenamiento de datos temporales en un almacén de instancias de RDS para Oracle](CHAP_Oracle.advanced-features.instance-store.md).