

# Ejecución de tareas comunes de base de datos para instancias de base de datos
<a name="Appendix.Oracle.CommonDBATasks.Database"></a>

A continuación, puede encontrar cómo realizar ciertas tareas comunes de DBA relacionadas con las bases de datos en las instancias de base de datos de Amazon RDS que ejecutan Oracle. Para ofrecer una experiencia de servicio administrado, Amazon RDS no proporciona acceso mediante shell a las instancias de base de datos. Amazon RDS también restringe el acceso a ciertos procedimientos y tablas del sistema que requieren privilegios avanzados. 

**Topics**
+ [

# Cambio del nombre global de una base de datos
](Appendix.Oracle.CommonDBATasks.RenamingGlobalName.md)
+ [

# Uso de espacios de tablas en RDS para Oracle
](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md)
+ [

# Uso de tempfiles en RDS para Oracle
](Appendix.Oracle.CommonDBATasks.using-tempfiles.md)
+ [

# Redimensionamiento de espacios de tablas, archivos de datos y archivos temporales en RDS para Oracle
](Appendix.Oracle.CommonDBATasks.ResizeTempSpaceReadReplica.md)
+ [

# Movimiento de datos entre volúmenes de almacenamiento en RDS para Oracle
](Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes.md)
+ [

# Uso de tablas externas en RDS para Oracle
](Appendix.Oracle.CommonDBATasks.External_Tables.md)

# Cambio del nombre global de una base de datos
<a name="Appendix.Oracle.CommonDBATasks.RenamingGlobalName"></a>

Utilice el procedimiento de Amazon RDS para cambiar el nombre global de una base de dato `rdsadmin.rdsadmin_util.rename_global_name`. El procedimiento `rename_global_name` tiene los siguientes parámetros. 


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_new_global_name`  |  varchar2  |  —  |  Sí  |  El nuevo nombre global de la base de datos.  | 

La base de datos debe estar abierta para que se produzca el cambio de nombre. Para obtener más información acerca de cómo cambiar el nombre global de una base de datos, consulte [ALTER DATABASE](http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_1004.htm#SQLRF52547) en la documentación de Oracle. 

En el siguiente ejemplo se cambia el nombre global de una base de datos a `new_global_name`.

```
EXEC rdsadmin.rdsadmin_util.rename_global_name(p_new_global_name => 'new_global_name');
```

# 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).

# Uso de tempfiles en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.using-tempfiles"></a>

## Adición de un archivo temporal al almacén de instancias en una réplica de lectura
<a name="Appendix.Oracle.CommonDBATasks.adding-tempfile-replica"></a>

Cuando crea un espacio de tabla temporal en una instancia de base de datos principal, la réplica de lectura no crea archivos temporales. Supongamos que existe un espacio de tablas temporal vacío en la réplica de lectura por cualquiera de los siguientes motivos:
+ Eliminó un archivo temporal del espacio de tablas de su réplica de lectura. Para obtener más información, consulte [Eliminación de archivos temporales en una réplica de lectura](Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica.md).
+ Creó un nuevo espacio de tablas temporal en la instancia de base de datos principal. En este caso, RDS para Oracle sincroniza los metadatos con la réplica de lectura.

Puedes añadir un archivo temporal al espacio de tablas temporal vacío y almacenar el archivo temporal en el almacén de instancias. Utilice el procedimiento `rdsadmin.rdsadmin_util.add_inst_store_tempfile` de Amazon RDS para crear un archivo temporal en el almacén de instancias. Este procedimiento solo se puede utilizar en una réplica de lectura. El procedimiento 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 de la réplica de lectura.  | 

En el siguiente ejemplo, el espacio de tabla temporal vacío *temp01* existe en la réplica de lectura. Ejecute el siguiente comando para crear un archivo temporal para este espacio de tabla y almacénelo en el almacén de instancias.

```
EXEC rdsadmin.rdsadmin_util.add_inst_store_tempfile(p_tablespace_name => 'temp01');
```

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).

# Eliminación de archivos temporales en una réplica de lectura
<a name="Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica"></a>

No puede eliminar un espacio de tabla temporal existente en una réplica de lectura. Puede cambiar el almacenamiento del archivo temporal en una réplica de lectura de Amazon EBS al almacén de instancias o del almacén de instancias a Amazon EBS. Para lograr estos objetivos, haga lo siguiente:

1. Elimine los archivos temporales actuales en el espacio de tablas temporal de la réplica de lectura.

1. Cree nuevos archivos temporales en un almacenamiento diferente.

Utilice el procedimiento `rdsadmin.rdsadmin_util. drop_replica_tempfiles` de Amazon RDS para eliminar archivos temporales. Este procedimiento solo se puede utilizar en réplicas de lectura. El procedimiento `drop_replica_tempfiles` 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 de la réplica de lectura.  | 

Suponga que un espacio de tablas temporal denominado *temp01* reside en el almacén de instancias de su réplica de lectura. Elimine todos los archivos temporales de este espacio de tabla ejecutando el siguiente comando.

```
EXEC rdsadmin.rdsadmin_util.drop_replica_tempfiles(p_tablespace_name => 'temp01');
```

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).

# Redimensionamiento de espacios de tablas, archivos de datos y archivos temporales en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.ResizeTempSpaceReadReplica"></a>

De forma predeterminada, los espacios de tabla de Oracle se crean con la ampliación automática activada y sin tamaño máximo. Debido a estos valores predeterminados, los espacios de tabla pueden llegar a ser demasiado grandes en algunos casos. 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.

## Redimensionamiento de espacios de tabla permanentes
<a name="resizing-perm-tbs"></a>

Para cambiar el tamaño de un espacio de tabla permanente en una instancia de base de datos de RDS para Oracle, utilice cualquiera de los siguientes procedimientos de Amazon RDS:
+ `rdsadmin.rdsadmin_util.resize_datafile`
+ `rdsadmin.rdsadmin_util.autoextend_datafile`

El procedimiento `resize_datafile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo de datos que se va a cambiar de tamaño.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del archivo de datos. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).   | 

El procedimiento `autoextend_datafile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo de datos que se va a cambiar de tamaño.  | 
|  `p_autoextend_state`  |  varchar2  |  —  |  Sí  |  El estado de la característica de ampliación automática. Especifique `ON` para ampliar el archivo de datos automáticamente y `OFF` para desactivar la ampliación automática.   | 
|  `p_next`  |  varchar2  |  —  |  No  |  El tamaño del incremento del siguiente archivo de datos. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).  | 
|  `p_maxsize`  |  varchar2  |  —  |  No  |  El espacio máximo en disco permitido para la ampliación automática. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). Puede especificar `UNLIMITED` para eliminar el límite de tamaño del archivo.  | 

En el ejemplo siguiente, se cambia el tamaño del archivo de datos de 4 a 500 MB.

```
EXEC rdsadmin.rdsadmin_util.resize_datafile(4,'500M');
```

En el siguiente ejemplo, se desactiva la ampliación automática del archivo de datos 4. También se activa la ampliación automática para el archivo de datos 5, con un incremento de 128 MB y sin tamaño máximo.

```
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(4,'OFF');
EXEC rdsadmin.rdsadmin_util.autoextend_datafile(5,'ON','128M','UNLIMITED');
```

## Redimensionamiento de espacios de tabla temporales
<a name="resizing-temp-tbs"></a>

Para redimensionar un espacio de tabla temporal en una instancia de base de datos de RDS para Oracle, incluida una réplica de lectura, utilice cualquiera de los siguientes procedimientos de Amazon RDS:
+ `rdsadmin.rdsadmin_util.resize_temp_tablespace`
+ `rdsadmin.rdsadmin_util.resize_tempfile`
+ `rdsadmin.rdsadmin_util.autoextend_tempfile`

El procedimiento `resize_temp_tablespace` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_temp_tablespace_name`  |  varchar2  |  —  |  Sí  |  El nombre del espacio de tabla temporal al que se va a cambiar el tamaño.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del espacio de tabla. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).   | 

El procedimiento `resize_tempfile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_temp_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo temporal al que se va a cambiar el tamaño.  | 
|  `p_size`  |  varchar2  |  —  |  Sí  |  El tamaño del archivo temporal. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).   | 

El procedimiento `autoextend_tempfile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Valor predeterminado | Obligatorio | Descripción | 
| --- | --- | --- | --- | --- | 
|  `p_temp_file_id`  |  número  |  —  |  Sí  |  El identificador del archivo temporal al que se va a cambiar el tamaño.  | 
|  `p_autoextend_state`  |  varchar2  |  —  |  Sí  |  El estado de la característica de ampliación automática. Especifique `ON` para ampliar el archivo temporal automáticamente y `OFF` para desactivar la ampliación automática.   | 
|  `p_next`  |  varchar2  |  —  |  No  |  El tamaño del incremento del siguiente archivo temporal. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G).  | 
|  `p_maxsize`  |  varchar2  |  —  |  No  |  El espacio máximo en disco permitido para la ampliación automática. Puede especificar el tamaño en bytes (la opción predeterminada), kilobytes (K), megabytes (M) o gigabytes (G). Puede especificar `UNLIMITED` para eliminar el límite de tamaño del archivo.  | 

Los siguientes ejemplos cambian el tamaño de un espacio de tabla temporal llamado `TEMP` hasta 4 GB.

```
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4G');
```

```
EXEC rdsadmin.rdsadmin_util.resize_temp_tablespace('TEMP','4096000000');
```

El siguiente ejemplo cambia el tamaño de un espacio de tabla temporal en función del archivo temporal con el identificador de archivo `1` hasta los 2 MB.

```
EXEC rdsadmin.rdsadmin_util.resize_tempfile(1,'2M');
```

En el siguiente ejemplo, se desactiva la ampliación automática del archivo temporal 1. También se establece el tamaño máximo de ampliación automática del archivo temporal de 2 a 10 GB, con un incremento de 100 MB.

```
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(1,'OFF');
EXEC rdsadmin.rdsadmin_util.autoextend_tempfile(2,'ON','100M','10G');
```

Para obtener más información acerca de las réplicas de lectura para las instancias de base de datos de Oracle, consulte [Trabajo con las réplicas de lectura para Amazon RDS para Oracle](oracle-read-replicas.md).

# Movimiento de datos entre volúmenes de almacenamiento en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes"></a>

Puede mover archivos de datos y objetos de base de datos entre los volúmenes de almacenamiento principal y los adicionales. Antes de mover los datos, se tienen en cuenta los siguientes puntos:
+ Los volúmenes de origen y destino deben tener suficiente espacio libre.
+ Las operaciones de movimiento de datos consumen E/S en ambos volúmenes.
+ Los grandes movimientos de datos pueden afectar al rendimiento de la base de datos.
+ Si restaura una instantánea, el movimiento de los datos entre los volúmenes de almacenamiento puede resultar lento si se ve afectado por la carga diferida de EBS.

**Topics**
+ [

## Movimiento de archivos de datos entre volúmenes en RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.MovingDatafiles)
+ [

## Movimiento de datos de tablas e índices entre volúmenes en RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.MovingTableData)
+ [

## Administración del almacenamiento de LOB mediante volúmenes adicionales
](#Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage)

## Movimiento de archivos de datos entre volúmenes en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDatafiles"></a>

Para mover archivos de datos entre volúmenes de almacenamiento, utilice el procedimiento `rdsadmin.rdsadmin_util.move_datafile` de Amazon RDS. Tenga en cuenta los siguientes requisitos:
+ Debe utilizar Oracle Enterprise Edition para ejecutar el procedimiento `move_datafile`.
+ No puede mover el espacio de tablas `SYSTEM` y `RDSADMIN`.

El procedimiento `move_datafile` tiene los siguientes parámetros.


****  

| Nombre del parámetro | Tipo de datos | Obligatorio | Descripción | 
| --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  Sí  |  El ID del archivo de datos que se va a mover.  | 
|  `p_location`  |  varchar2  |  Sí  |  El volumen de almacenamiento al que desea mover el archivo de datos.  | 

En el siguiente ejemplo, se mueve un espacio de tabla del volumen predeterminado `rdsdbdata` al volumen adicional `rdsdbdata2`.

```
SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files
 WHERE tablespace_name = 'MYNEWTABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
MYNEWTABLESPACE                    6 /rdsdbdata/db/ORCL_A/datafile/o1_mf_mynewtab_n123abcd_.dbf

EXECUTE rdsadmin.rdsadmin_util.move_datafile( 6, 'rdsdbdata2');

PL/SQL procedure successfully completed.

SQL> SELECT tablespace_name,file_id,file_name FROM dba_data_files
  WHERE tablespace_name = 'MYNEWTABLESPACE';

TABLESPACE_NAME              FILE_ID FILE_NAME
------------------------- ---------- --------------------------------------------------------------------------------
MYNEWTABLESPACE                    6 /rdsdbdata2/db/ORCL_A/datafile/o1_mf_mynewtab_n356efgh_.dbf
```

## Movimiento de datos de tablas e índices entre volúmenes en RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingTableData"></a>

Puede optimizar el almacenamiento de la base de datos mediante la creación de espacios de tabla en volúmenes de almacenamiento adicionales. A continuación, puede mover objetos como tablas, índices y particiones a estos espacios de tabla mediante el SQL estándar de Oracle. Este enfoque es valioso para ajustar el rendimiento cuando la base de datos contiene datos con patrones de acceso diferentes. Por ejemplo, puede almacenar los datos operativos a los que se accede con frecuencia en volúmenes de almacenamiento de alto rendimiento y, al mismo tiempo, trasladar los datos históricos a los que se accede con menos frecuencia a volúmenes de almacenamiento de menor costo.

En el siguiente ejemplo, se crea un nuevo espacio de tablas en un volumen de alto rendimiento `rdsdbdata2`. A continuación, mueva una tabla al volumen de almacenamiento adicional mientras la tabla está en línea. También mueve el índice al mismo volumen. El movimiento de tablas y la reconstrucción de índices mientras se está en línea necesita Oracle Enterprise Edition.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';
CREATE TABLESPACE perf_tbs DATAFILE SIZE 10G;

ALTER TABLE employees
  MOVE TABLESPACE perf_tbs ONLINE;

ALTER INDEX employees_idx
  REBUILD ONLINE TABLESPACE perf_tbs;
```

En el siguiente ejemplo, se crea un espacio de tablas en un volumen de bajo costo. A continuación, mueva una partición de tabla al volumen de almacenamiento de bajo costo mediante una operación en línea.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata3/db';
CREATE TABLESPACE hist_tbs DATAFILE SIZE 10G;

ALTER TABLE orders
  MOVE PARTITION orders_2022
  TABLESPACE hist_tbs ONLINE;
```

En el siguiente ejemplo, consulte las operaciones largas de sesiones activas.

```
SELECT sid,opname,sofar,totalwork,time_remaining,elapsed_seconds 
  FROM v$session_longops 
  WHERE time_remaining > 0;
```

Puede verificar el uso de los espacios de tabla con la siguiente consulta.

```
SELECT tablespace_name, used_percent
  FROM dba_tablespace_usage_metrics
  ORDER BY used_percent DESC;
```

## Administración del almacenamiento de LOB mediante volúmenes adicionales
<a name="Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage"></a>

La base de datos puede contener tablas con objetos BLOB o CLOB que consumen una cantidad considerable de almacenamiento, pero a los que se accede con poca frecuencia. Para optimizar el almacenamiento, puede reubicar estos segmentos de LOB en un espacio de tablas en un volumen de almacenamiento adicional.

En el siguiente ejemplo, se crea un espacio de tabla para datos de LOB en un volumen de bajo costo destinado a datos de poco acceso. A continuación, cree una tabla que almacene los datos de este volumen.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata3/db';
CREATE TABLESPACE lob_data DATAFILE SIZE 5G AUTOEXTEND ON NEXT 1G;

CREATE TABLE documents (
    doc_id NUMBER PRIMARY KEY,
    doc_date DATE,
    doc_content CLOB
) TABLESPACE user_data
LOB(doc_content) STORE AS (TABLESPACE lob_data);
```

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

Las *tablas externas de Oracle *son tablas con datos no incluidos en la base de datos. Los datos se encuentran en archivos externos a los que la base de datos puede acceder. Las tablas externas le permiten acceder a datos sin cargarlos en la base de datos. Para obtener más información sobre las tablas externas, consulte la sección [Managing External Tables](http://docs.oracle.com/database/121/ADMIN/tables.htm#ADMIN01507) en la documentación de Oracle. 

Amazon RDS le permite almacenar archivos de tablas externas en objetos de directorio. Puede crear un objeto de directorio o utilizar uno predefinido en la base de datos Oracle como, por ejemplo, el directorio DATA\$1PUMP\$1DIR. Para obtener información sobre la creación de objetos de directorio, consulte [Creación y eliminación de directorios en el espacio de almacenamiento de datos principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories). Puede consultar la vista ALL\$1DIRECTORIES para elaborar una lista de los objetos de directorio de la instancia de base de datos de Oracle en Amazon RDS.

**nota**  
Los objetos de directorio apuntan hacia el espacio de almacenamiento de datos principal (volumen de Amazon EBS) utilizado por la instancia. El espacio utilizado, junto con los archivos de datos, registros REDO, archivos de auditoría, de seguimiento y de otro tipo, cuenta a la hora de calcular el almacenamiento asignado.

Puede desplazar un archivo de datos externos de una base de datos Oracle a otra base de datos utilizando el paquete [ DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/database/121/ARPLS/d_ftran.htm#ARPLS095) o el paquete [UTL\$1FILE](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS069). El archivo de datos externos se traslada de un directorio en la base de datos de origen al directorio especificado en la base de datos de destino. Para obtener más información sobre del uso de `DBMS_FILE_TRANSFER`, consulte [Importación mediante Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md).

Después de trasladar el archivo de datos externos, este le permite crear una tabla externa. En el siguiente ejemplo se crea una tabla externa que usa el archivo `emp_xt_file1.txt` en el directorio USER\$1DIR1.

```
CREATE TABLE emp_xt (
  emp_id      NUMBER,
  first_name  VARCHAR2(50),
  last_name   VARCHAR2(50),
  user_name   VARCHAR2(20)
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY USER_DIR1
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    (emp_id,first_name,last_name,user_name)
  )
  LOCATION ('emp_xt_file1.txt')
)
PARALLEL
REJECT LIMIT UNLIMITED;
```

Suponga que quiere trasladar datos de una instancia de base de datos de Oracle en Amazon RDS a un archivo de datos externos. En ese caso, puede rellenar el archivo de datos externos creando una tabla externa y seleccionando los datos de la tabla en la base de datos. Por ejemplo, la siguiente instrucción SQL crea la tabla externa `orders_xt` mediante la consulta a la tabla `orders` de la base de datos.

```
CREATE TABLE orders_xt
  ORGANIZATION EXTERNAL
   (
     TYPE ORACLE_DATAPUMP
     DEFAULT DIRECTORY DATA_PUMP_DIR
     LOCATION ('orders_xt.dmp')
   )
   AS SELECT * FROM orders;
```

En este ejemplo, los datos se rellenan en el archivo `orders_xt.dmp` del directorio DATA\$1PUMP\$1DIR.