

# Realização de tarefas comuns de banco de dados para instâncias de banco de dados
<a name="Appendix.Oracle.CommonDBATasks.Database"></a>

Veja a seguir como executar determinadas tarefas comuns de DBA relacionadas aos bancos de dados nas instâncias de bancos de dados do Amazon RDS que executam o Oracle. Para oferecer uma experiência de serviço gerenciada, o Amazon RDS não fornece acesso ao shell para as instâncias de banco de dados. O Amazon RDS também restringe o acesso a alguns procedimentos e tabelas do sistema que exigem privilégios avançados. 

**Topics**
+ [

# Alteração do nome global de um banco de dados
](Appendix.Oracle.CommonDBATasks.RenamingGlobalName.md)
+ [

# Trabalhar com espaços para tabela no RDS para Oracle
](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md)
+ [

# Trabalhar com arquivos temporários no RDS para Oracle
](Appendix.Oracle.CommonDBATasks.using-tempfiles.md)
+ [

# Redimensionar espaços de tabela, arquivos de dados e arquivos temporários no RDS para Oracle
](Appendix.Oracle.CommonDBATasks.ResizeTempSpaceReadReplica.md)
+ [

# Mover dados entre volumes de armazenamento no RDS para Oracle
](Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes.md)
+ [

# Trabalhar com tabelas externas no RDS para Oracle
](Appendix.Oracle.CommonDBATasks.External_Tables.md)

# Alteração do nome global de um banco de dados
<a name="Appendix.Oracle.CommonDBATasks.RenamingGlobalName"></a>

Para alterar o nome global de um banco de dados, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.rename_global_name`. O procedimento `rename_global_name` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_new_global_name`  |  varchar2  |  —  |  Sim  |  O novo nome global do banco de dados.  | 

O banco de dados deve estar aberto para que a alteração de nome ocorra. Para ter mais informações sobre como alterar o nome global de um banco de dados, consulte [ALTER DATABASE](http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_1004.htm#SQLRF52547) na documentação do Oracle. 

O exemplo a seguir altera o nome global de um banco de dados para `new_global_name`.

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

# Trabalhar com espaços para tabela no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles"></a>

É possível usar espaços para tabela com o RDS para Oracle, que é uma unidade lógica de armazenamento que armazena dados de banco de dados.

**Importante**  
Se sua instância de banco de dados tiver réplicas, recomendamos usar configurações de grupos de parâmetros em vez de alterações em nível de sessão para gerenciar os locais padrão dos arquivos. As alterações em nível de sessão nos locais de arquivos padrão na instância primária não são exibidas automaticamente nas réplicas. O uso de configurações de grupos de parâmetros garante localizações de arquivos consistentes em suas instâncias primária e de réplica.

**Topics**
+ [

## Especificar locais de arquivos de banco de dados no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [

## Criar e usar espaços de tabela no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [

## Criar espaços de tabela em volumes de armazenamento adicionais no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations)
+ [

## Definir o espaço para tabela padrão no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace)
+ [

## Definir o espaço para tabela temporário padrão no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace)
+ [

## Criar um espaço de tabela temporário no armazenamento de instância
](#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store)

## Especificar locais de arquivos de banco de dados no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.DatabaseFileLocations"></a>

O RDS para Oracle usa o Oracle Managed Files (OMF) para nomear arquivos de banco de dados. Quando você cria arquivos de banco de dados, o banco de dados extrai a configuração com base na configuração atual do parâmetro de inicialização `DB_CREATE_FILE_DEST`.

O valor padrão do parâmetro de inicialização `DB_CREATE_FILE_DEST` é `/rdsdbdata/db` para bancos de dados autônomos e `/rdsdbdata/db/pdb` para arquitetura em contêiner (CDB/MT). Se sua instância de banco de dados tiver volumes de armazenamento adicionais, você poderá definir `DB_CREATE_FILE_DEST` seus locais de volume. Por exemplo, se sua instância tiver um volume montado em `/rdsdbdata/db`, você poderá definir `DB_CREATE_FILE_DEST` como esse valor.

Você pode modificar o parâmetro `DB_CREATE_FILE_DEST` em nível de sessão ou em nível de instância do banco de dados Oracle.

### Modificar DB\$1CREATE\$1FILE\$1SET em nível de instância
<a name="Appendix.Oracle.CommonDBATasks.InstanceLevelModification"></a>

Para modificar o parâmetro em nível de instância, atualize o parâmetro no grupo de parâmetros atribuído à sua instância de banco de dados e aplique-o. Para obter mais informações, consulte [Parâmetros de inicialização do RDS para Oracle](Oracle.Concepts.FeatureSupport.Parameters.md) e [Modificar parâmetros em um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Modifying.md).

### Modificar DB\$1CREATE\$1FILE\$1DEST em nível de sessão
<a name="Appendix.Oracle.CommonDBATasks.SessionLevelModification"></a>

É possível modificar o parâmetro em nível de sessão executando uma instrução `ALTER SESSION`. Essa abordagem é útil quando você deseja criar arquivos de banco de dados em um local específico para uma sessão específica sem afetar toda a instância.

O seguinte exemplo mostra como conferir o valor do parâmetro atual e modificá-lo para a sessão:

```
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
```

## Criar e usar espaços de tabela no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles"></a>

Quando você cria espaços de tabela, o banco de dados cria os arquivos de dados no volume de armazenamento especificado pelo parâmetro de inicialização `DB_CREATE_FILE_DEST` no momento da criação. Por padrão, se você não especificar o tamanho de um arquivo de dados, os espaços de tabela serão criados com um tamanho padrão de `AUTOEXTEND ON` e sem um tamanho máximo. No exemplo a seguir, o tablespace *users1* é autoextensível.

```
CREATE TABLESPACE users1;
```

Devido a essas configurações padrão, espaços de tabela podem crescer ao ponto de consumirem todo o armazenamento alocado. Recomendamos que você especifique um tamanho máximo apropriado em espaços de tabela permanentes e temporários e que monitore cuidadosamente o uso do espaço. 

O exemplo a seguir cria um espaço de tabela chamado *users2* com um tamanho inicial de 1 gigabyte. Como o tamanho do arquivo de dados é especificado, mas `AUTOEXTEND ON` não é especificado, o espaço de tabela não é autoextensível.

```
CREATE TABLESPACE users2 DATAFILE SIZE 1G;
```

O exemplo a seguir cria um espaço de tabela chamado *users3* com um tamanho inicial de 1 gigabyte, extensão automática ativada e um tamanho máximo de 10 gigabytes.

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

O exemplo a seguir cria um espaço de tabela temporário chamado *temp01*:

```
CREATE TEMPORARY TABLESPACE temp01;
```

É possível redimensionar um espaço de tabela de arquivos grandes usando `ALTER TABLESPACE`. Você pode especificar o tamanho em quilobytes (K), megabytes (M), gigabytes (G) ou terabytes (T). O exemplo a seguir redimensiona um espaço de tabela de arquivos grandes chamado *users\$1bf* para 200 MB.

```
ALTER TABLESPACE users_bf RESIZE 200M;
```

O exemplo a seguir acrescenta um arquivo de dados adicional a um espaço de tabela de arquivos pequenos chamado *users\$1sf*.

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

## Criar espaços de tabela em volumes de armazenamento adicionais no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.CreatingTablespacesWithFileLocations"></a>

Para criar um espaço para tabela em um volume de armazenamento adicional, modifique o parâmetro `DB_CREATE_FILE_DEST` para a localização do volume. O exemplo a seguir define o local do arquivo como `/rdsdbdata2/db`.

```
ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';

Session altered.
```

No exemplo a seguir, você vai criar um espaço para tabela no volume adicional `/rdsdbdata2/db`.

```
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 criar um espaço para tabela de arquivos pequenos e distribuir seus arquivos de dados em diferentes volumes de armazenamento, adicione arquivos de dados ao espaço para tabela depois de criá-lo. No exemplo a seguir, você vai criar um espaço para tabela com os arquivos de dados no local padrão de `/rdsdbdata/db`. Depois, vai definir o destino padrão como `/rdsdbdata/db2`. Quando você adiciona um arquivo de dados ao seu espaço para tabela recém-criado, o banco de dados armazena o arquivo em `/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
```

## Definir o espaço para tabela padrão no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.SettingDefaultTablespace"></a>

Para definir o espaço padrão tabela padrão, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.alter_default_tablespace`. O procedimento `alter_default_tablespace` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  Sim  |  O nome do espaço de tabela padrão.  | 

O exemplo a seguir define o espaço de tabela padrão como *users2*: 

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

## Definir o espaço para tabela temporário padrão no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace"></a>

Para definir o espaço de tabela temporário padrão, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.alter_default_temp_tablespace`. O procedimento `alter_default_temp_tablespace` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `tablespace_name`  |  varchar  |  —  |  Sim  |  O nome do espaço de tabela temporário padrão.  | 

O exemplo a seguir define o espaço de tabela temporário padrão como *temp01*. 

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

## Criar um espaço de tabela temporário no armazenamento de instância
<a name="Appendix.Oracle.CommonDBATasks.creating-tts-instance-store"></a>

Para criar um espaço de tabela temporário no armazenamento de instância, use o procedimento `rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace` do Amazon RDS. O procedimento `create_inst_store_tmp_tblspace` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  Sim  |  O nome do espaço de tabela temporário.  | 

O exemplo a seguir cria o espaço de tabela temporário *temp01* no armazenamento de instância. 

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

**Importante**  
Quando você executa `rdsadmin_util.create_inst_store_tmp_tblspace`, o espaço de tabela temporário recém-criado não é automaticamente definido como o espaço de tabela temporário padrão. Para defini-lo como padrão, consulte [Definir o espaço para tabela temporário padrão no RDS para Oracle](#Appendix.Oracle.CommonDBATasks.SettingDefTempTablespace).

Para obter mais informações, consulte [Armazenar dados temporários em um armazenamento de instância do RDS for Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Trabalhar com arquivos temporários no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.using-tempfiles"></a>

## Adicionar um arquivo temporário ao armazenamento de instância em uma réplica de leitura
<a name="Appendix.Oracle.CommonDBATasks.adding-tempfile-replica"></a>

Quando você cria um espaço de tabela temporário em uma instância de banco de dados principal, a réplica de leitura não cria arquivos temporários. Suponha que exista um espaço de tabela temporário vazio em sua réplica de leitura por um dos seguintes motivos:
+ Você removeu um arquivo temporário do espaço de tabela em sua réplica de leitura. Para ter mais informações, consulte [Descartar arquivos temporários em uma réplica de leitura](Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica.md).
+ Você criou um espaço de tabela temporário na instância de banco de dados primária. Nesse caso, o RDS para Oracle sincroniza os metadados com a réplica de leitura.

Você pode adicionar um arquivo temporário ao espaço de tabela temporário vazio e armazená-lo no armazenamento de instância. Para criar um arquivo temporário no armazenamento de instância, use o procedimento `rdsadmin.rdsadmin_util.add_inst_store_tempfile` do Amazon RDS. Você pode usar esse procedimento somente em uma réplica de leitura. O procedimento tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  Sim  |  O nome do espaço da tabela temporário em sua réplica de leitura.  | 

No exemplo a seguir, o espaço de tabela temporário vazio *temp01* existe na réplica de leitura. Execute o comando a seguir para criar um arquivo temporário para esse espaço de tabela e armazená-lo no armazenamento de instância.

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

Para obter mais informações, consulte [Armazenar dados temporários em um armazenamento de instância do RDS for Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Descartar arquivos temporários em uma réplica de leitura
<a name="Appendix.Oracle.CommonDBATasks.dropping-tempfiles-replica"></a>

Não é possível descartar um espaço de tabela temporário em uma réplica de leitura. Você pode alterar o armazenamento de arquivos temporários em uma réplica de leitura do Amazon EBS para o armazenamento de instância ou do armazenamento de instância para o Amazon EBS. Para conseguir isso, faça o seguinte:

1. Descarte os arquivos temporários atuais no espaço de tabela temporário na réplica de leitura.

1. Crie arquivos temporários em outro armazenamento.

Para descartar os arquivos temporários, use o procedimento `rdsadmin.rdsadmin_util. drop_replica_tempfiles` do Amazon RDS. Você pode usar esse procedimento somente em réplicas de leitura. O procedimento `drop_replica_tempfiles` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar  |  —  |  Sim  |  O nome do espaço da tabela temporário em sua réplica de leitura.  | 

Suponha que um espaço de tabela temporário chamado *temp01* resida no armazenamento de instância da réplica de leitura. Descarte todos os arquivos temporários nesse espaço de tabela executando o comando a seguir.

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

Para obter mais informações, consulte [Armazenar dados temporários em um armazenamento de instância do RDS for Oracle](CHAP_Oracle.advanced-features.instance-store.md).

# Redimensionar espaços de tabela, arquivos de dados e arquivos temporários no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.ResizeTempSpaceReadReplica"></a>

Por padrão, espaços de tabela Oracle são criados com a opção de extensão automática ativada e sem um tamanho máximo. Devido a essas configurações padrão, os espaços de tabela às vezes podem aumentar demais. Recomendamos que você especifique um tamanho máximo apropriado em espaços de tabela permanentes e temporários e que monitore cuidadosamente o uso do espaço.

## Redimensionar espaços de tabela permanentes
<a name="resizing-perm-tbs"></a>

Para redimensionar um espaço de tabela permanente em uma instância de banco de dados do RDS para Oracle, use qualquer um dos seguintes procedimentos do Amazon RDS:
+ `rdsadmin.rdsadmin_util.resize_datafile`
+ `rdsadmin.rdsadmin_util.autoextend_datafile`

O procedimento `resize_datafile` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  —  |  Sim  |  O identificador do arquivo de dados a ser redimensionado.  | 
|  `p_size`  |  varchar2  |  —  |  Sim  |  O tamanho do arquivo de dados. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G).   | 

O procedimento `autoextend_datafile` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  —  |  Sim  |  O identificador do arquivo de dados a ser redimensionado.  | 
|  `p_autoextend_state`  |  varchar2  |  —  |  Sim  |  O estado do recurso de extensão automática. Especifique `ON` para estender o arquivo de dados automaticamente e `OFF` para desativar a extensão automática.   | 
|  `p_next`  |  varchar2  |  —  |  Não  |  O tamanho do próximo incremento do arquivo de dados. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G).  | 
|  `p_maxsize`  |  varchar2  |  —  |  Não  |  O espaço máximo em disco permitido para extensão automática. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). Você pode especificar `UNLIMITED` para remover o limite de tamanho do arquivo.  | 

O exemplo a seguir redimensiona o arquivo de dados de 4 MB a 500 MB.

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

O exemplo a seguir desativa a opção de extensão automática do arquivo de dados 4. Ele também ativa a extensão automática para o arquivo de dados 5, com um incremento de 128 MB e sem tamanho máximo.

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

## Redimensionar espaços de tabela temporários
<a name="resizing-temp-tbs"></a>

Para redimensionar espaços de tabela temporários em uma instância do RDS para Oracle, inclusive uma réplica de leitura, use qualquer um dos seguintes procedimentos do Amazon RDS:
+ `rdsadmin.rdsadmin_util.resize_temp_tablespace`
+ `rdsadmin.rdsadmin_util.resize_tempfile`
+ `rdsadmin.rdsadmin_util.autoextend_tempfile`

O procedimento `resize_temp_tablespace` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_temp_tablespace_name`  |  varchar2  |  —  |  Sim  |  O nome do espaço de tabela temporário a ser redimensionado.  | 
|  `p_size`  |  varchar2  |  —  |  Sim  |  O nome do espaço de tabela. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G).   | 

O procedimento `resize_tempfile` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_temp_file_id`  |  número  |  —  |  Sim  |  O identificador do arquivo temporário a ser redimensionado.  | 
|  `p_size`  |  varchar2  |  —  |  Sim  |  O tamanho do arquivo temporário. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G).   | 

O procedimento `autoextend_tempfile` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_temp_file_id`  |  número  |  —  |  Sim  |  O identificador do arquivo temporário a ser redimensionado.  | 
|  `p_autoextend_state`  |  varchar2  |  —  |  Sim  |  O estado do recurso de extensão automática. Especifique `ON` para estender o arquivo temporário automaticamente e `OFF` para desativar a extensão automática.   | 
|  `p_next`  |  varchar2  |  —  |  Não  |  O tamanho do próximo incremento do arquivo temporário. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G).  | 
|  `p_maxsize`  |  varchar2  |  —  |  Não  |  O espaço máximo em disco permitido para extensão automática. Especifique o tamanho em bytes (o padrão), em quilobytes (K), em megabytes (M) ou em gigabytes (G). Você pode especificar `UNLIMITED` para remover o limite de tamanho do arquivo.  | 

Os exemplos a seguir redimensionam um espaço de tabela temporário chamado `TEMP` para o tamanho de 4 GB.

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

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

O exemplo a seguir redimensiona um espaço de tabela temporário com base no arquivo temporário com o identificador de arquivo `1` para o tamanho de 2 MB.

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

O exemplo a seguir desativa a opção de extensão automática do arquivo temporário 1. Ele também define o tamanho máximo de extensão automática do arquivo temporário de 2 a 10 GB, com um incremento de 100 MB.

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

Para ter mais informações sobre réplicas de leitura para instâncias de banco de dados Oracle, consulte [Trabalhar com réplicas de leitura do Amazon RDS para Oracle](oracle-read-replicas.md).

# Mover dados entre volumes de armazenamento no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes"></a>

Você pode mover arquivos de dados e objetos de banco de dados entre seus volumes de armazenamento principal e adicional. Antes de mover dados, pense nos seguintes pontos:
+ Os volumes de origem e de destino devem ter espaço livre suficiente.
+ As operações de movimentação de dados consomem E/S em ambos os volumes.
+ Grandes movimentações de dados podem afetar a performance do banco de dados.
+ Se você restaurar um snapshot, a movimentação de dados entre volumes de armazenamento poderá ser lenta se for afetada pelo carregamento lento do EBS.

**Topics**
+ [

## Mover arquivos de dados entre volumes no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.MovingDatafiles)
+ [

## Mover dados e índices da tabela entre volumes no RDS para Oracle
](#Appendix.Oracle.CommonDBATasks.MovingTableData)
+ [

## Gerenciar o armazenamento LOB usando volumes adicionais
](#Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage)

## Mover arquivos de dados entre volumes no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingDatafiles"></a>

Para mover arquivos de dados entre volumes de armazenamento, use o procedimento `rdsadmin.rdsadmin_util.move_datafile` do Amazon RDS. Observe os seguintes requisitos:
+ Você deve usar o Oracle Enterprise Edition para executar o procedimento `move_datafile`.
+ Você não pode mover o espaço para tabela `SYSTEM` e `RDSADMIN`.

O procedimento `move_datafile` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Obrigatório | Descrição | 
| --- | --- | --- | --- | 
|  `p_data_file_id`  |  número  |  Sim  |  O ID do arquivo de dados a ser movido.  | 
|  `p_location`  |  varchar2  |  Sim  |  O volume de armazenamento para o qual você deseja mover o arquivo de dados.  | 

O exemplo a seguir move um espaço para tabela do volume padrão `rdsdbdata` para o volume 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
```

## Mover dados e índices da tabela entre volumes no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.MovingTableData"></a>

Você pode otimizar o armazenamento do banco de dados criando espaços para tabela em volumes de armazenamento adicionais. Depois, você pode mover objetos, como tabelas, índices e partições, para esses espaços para tabela usando o Oracle SQL padrão. Essa abordagem é valiosa para o ajuste de performance quando seu banco de dados contém dados com diferentes padrões de acesso. Por exemplo, você pode armazenar dados operacionais acessados com frequência em volumes de armazenamento de alta performance e, ao mesmo tempo, mover dados históricos raramente acessados para volumes de armazenamento de menor custo.

No exemplo a seguir, você vai criar um espaço para tabela em um volume de alta performance `rdsdbdata2`. Depois, você vai mover uma tabela para o volume de armazenamento adicional enquanto ela está on-line. Você também vai mover o índice para o mesmo volume. A movimentação de tabelas e a recompilação de índices on-line exigem o 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;
```

No exemplo a seguir, você vai criar um espaço para tabela em um volume de baixo custo. Depois, você vai mover uma partição da tabela para seu volume de armazenamento de baixo custo usando uma operação on-line.

```
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;
```

No exemplo a seguir, você vai consultar operações longas de sessões ativas.

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

Você pode conferir o uso de espaços para tabela com a consulta a seguir.

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

## Gerenciar o armazenamento LOB usando volumes adicionais
<a name="Appendix.Oracle.CommonDBATasks.ManagingLargeLOBStorage"></a>

Seu banco de dados pode conter tabelas com objetos BLOB ou CLOB que consomem armazenamento substancial, mas são acessados com pouca frequência. Para otimizar o armazenamento, você pode realocar esses segmentos LOB em um espaço para tabela em um volume de armazenamento adicional.

No exemplo a seguir, você vai criar um espaço para tabela para dados LOB em um volume de baixo custo destinado a dados de baixo acesso. Depois, você vai criar uma tabela que armazene dados nesse volume.

```
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);
```

# Trabalhar com tabelas externas no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.External_Tables"></a>

*Tabelas externas do Oracle *são tabelas com dados que não estão no banco de dados. Em vez disso, os dados estão em arquivos externos que o banco de dados pode acessar. Usando tabelas externas, você pode acessar dados sem carregá-los no banco de dados. Para ter mais informações sobre tabelas externas, consulte [Managing External Tables](http://docs.oracle.com/database/121/ADMIN/tables.htm#ADMIN01507) (Gerenciar tabelas externas) na documentação do Oracle. 

Com o Amazon RDS, você pode armazenar arquivos de tabela externos em objetos de diretório. Você pode criar um objeto de diretório ou pode usar um objeto predefinido no banco de dados Oracle, como o diretório DATA\$1PUMP\$1DIR. Para obter informações sobre como criar os objetos de diretório, consulte [Criar e eliminar diretórios no espaço de armazenamento de dados principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories). Você pode consultar a visualização ALL\$1DIRECTORIES a fim de listar os objetos de diretório para a instância de banco de dados Oracle do Amazon RDS.

**nota**  
Os objetos de diretório apontam para o espaço de armazenamento físico de dados principal (volume do Amazon EBS) usado pela instância. O espaço usado, juntamente com arquivos de dados, logs redo, auditoria, rastreamento e outros arquivos, conta em relação ao armazenamento alocado.

Você pode mover um arquivo de dados externo de um banco de dados Oracle para outro usando o pacote [ DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/database/121/ARPLS/d_ftran.htm#ARPLS095) ou o pacote [UTL\$1FILE](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS069). O arquivo de dados externo é movido de um diretório no banco de dados de origem para o diretório especificado no banco de dados de destino. Para obter informações sobre como utilizar o `DBMS_FILE_TRANSFER`, consulte [Importar usando o Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md).

Depois de mover o arquivo de dados externo, você poderá criar uma tabela externa com ele. O seguinte exemplo cria uma tabela externa que usa o arquivo `emp_xt_file1.txt` no diretório 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;
```

Suponhamos que você queira migrar dados que estejam em uma instância de banco de dados Oracle do Amazon RDS para um arquivo de dados externo. Nesse caso, você pode preencher o arquivo de dados externo criando uma tabela externa e selecionando os dados da tabela no banco de dados. Por exemplo, a instrução SQL a seguir cria a tabela externa `orders_xt` consultando a tabela `orders` no banco de dados.

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

Neste exemplo, os dados são preenchidos no arquivo `orders_xt.dmp` no diretório DATA\$1PUMP\$1DIR.