

# Amazon RDS para Oracle
<a name="CHAP_Oracle"></a>

O Amazon RDS é compatível com instâncias de banco de dados que executam as seguintes versões e edições do Oracle Database:
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)

**nota**  
O Oracle Database 11g, o Oracle Database 12c e o Oracle Database 18c são versões herdadas que não são mais compatíveis com o Amazon RDS.

Antes de criar uma instância de banco de dados, é necessário concluir as etapas na seção [Configuração do ambiente do Amazon RDS](CHAP_SettingUp.md) deste guia. Ao criar uma instância de banco de dados usando sua conta mestra, a conta obtém privilégios de DBA, com algumas limitações. Use essa conta para tarefas administrativas, como a criação de contas de banco de dados adicionais. Não é possível usar SYS, SYSTEM ou outras contas administrativas fornecidas pelo Oracle.

Você pode criar o seguinte:
+ Instâncias de banco de dados
+ DB snapshots
+ Restaurações point-in-time
+ Backups automatizados
+ Backups manuais

É possível usar instâncias de banco de dados que executam o Oracle Database em uma VPC. Também é possível adicionar recursos à instância de banco de dados habilitando várias opções, como Oracle Spatial ou Oracle Statspack. O Amazon RDS oferece suporte para implantações Multi-AZ para Oracle como uma solução de failover de alta disponibilidade.

**Importante**  
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. Também restringe o acesso a determinados procedimentos e tabelas do sistema que necessitam de privilégios avançados. É possível acessar seu banco de dados usando qualquer aplicação cliente SQL padrão, como o Oracle SQL\$1Plus. No entanto, não é possível acessar o host diretamente usando Telnet ou Secure Shell (SSH).

**Topics**
+ [

# Visão geral do Oracle no Amazon RDS
](Oracle.Concepts.overview.md)
+ [

# Conectar-se a uma instância de banco de dados Oracle
](USER_ConnectToOracleInstance.md)
+ [

# Proteção das conexões de instância de banco de dados Oracle
](Oracle.Concepts.RestrictedDBAPrivileges.md)
+ [

# Trabalhar com CDBs no RDS para Oracle
](oracle-multitenant.md)
+ [

# Administração da sua instância de banco de dados Oracle
](Appendix.Oracle.CommonDBATasks.md)
+ [

# Trabalhar com armazenamento no RDS para Oracle
](User_Oracle_AdditionalStorage.md)
+ [

# Configurar recursos avançados do RDS para Oracle
](CHAP_Oracle.advanced-features.md)
+ [

# Importar dados para o Oracle no Amazon RDS
](Oracle.Procedural.Importing.md)
+ [

# Trabalhar com réplicas de leitura do Amazon RDS para Oracle
](oracle-read-replicas.md)
+ [

# Adição de opções a instâncias de banco de dados Oracle
](Appendix.Oracle.Options.md)
+ [

# Fazer upgrade do mecanismo de banco de dados RDS para Oracle
](USER_UpgradeDBInstance.Oracle.md)
+ [

# Usar software de terceiros com a instância de banco de dados do Oracle
](Oracle.Resources.md)
+ [

# Notas de lançamento do mecanismo Oracle Database
](USER_Oracle_Releases.md)

# Visão geral do Oracle no Amazon RDS
<a name="Oracle.Concepts.overview"></a>

Você pode ler as seções a seguir para obter uma visão geral do RDS para Oracle.

**Topics**
+ [

# Recursos do RDS for Oracle
](Oracle.Concepts.FeatureSupport.md)
+ [

# Versões do RDS para Oracle
](Oracle.Concepts.database-versions.md)
+ [

# Opções de licenciamento do RDS para Oracle
](Oracle.Concepts.Licensing.md)
+ [

# Usuários e privilégios do RDS para Oracle
](Oracle.Concepts.Privileges.md)
+ [

# Classes de instância de banco de dados do RDS para Oracle
](Oracle.Concepts.InstanceClasses.md)
+ [

# Arquitetura de banco de dados RDS para Oracle
](oracle-multi-architecture.md)
+ [

# Parâmetros de inicialização do RDS para Oracle
](Oracle.Concepts.FeatureSupport.Parameters.md)
+ [

# Conjuntos de caracteres do RDS for Oracle
](Appendix.OracleCharacterSets.md)
+ [

# Limitações do RDS para Oracle
](Oracle.Concepts.limitations.md)

# Recursos do RDS for Oracle
<a name="Oracle.Concepts.FeatureSupport"></a>

O Amazon RDS for Oracle oferece suporte à maioria dos recursos e funcionalidades do banco de dados Oracle. Alguns recursos podem ter suporte limitado ou privilégios restritos. Alguns recursos só estão disponíveis no Enterprise Edition, enquanto outros exigem licenças adicionais. Para ter mais informações sobre os recursos do Oracle Database para versões específicas do Oracle Database, consulte o documento *Oracle Database Licensing Information User Manual* da versão que você está usando.

**Topics**
+ [

## Novos recursos no RDS for Oracle
](#Oracle.Concepts.FeatureSupport.new)
+ [

## Recursos com suporte no RDS for Oracle
](#Oracle.Concepts.FeatureSupport.supported)
+ [

## Recursos sem suporte no RDS for Oracle
](#Oracle.Concepts.FeatureSupport.unsupported)

## Novos recursos no RDS for Oracle
<a name="Oracle.Concepts.FeatureSupport.new"></a>

Para ver os novos recursos no RDS para Oracle, pesquise a palavra-chave **Oracle** em [Histórico do documento](WhatsNew.md).

## Recursos com suporte no RDS for Oracle
<a name="Oracle.Concepts.FeatureSupport.supported"></a>

O Amazon RDS para Oracle oferece suporte aos seguintes recursos do Oracle Database:

**nota**  
A lista a seguir não é completa.
+ Compressão avançada
+ Oracle Application Express (APEX)

  Para obter mais informações, consulte [Oracle Application Express (APEX)](Appendix.Oracle.Options.APEX.md).
+ Gerenciamento automatizado da memória
+ Gerenciamento automático de operações Desfazer
+ AWR (Automatic Workload Repository)

  Para ter mais informações, consulte [Gerar relatórios de performance com o AWR (Automatic Workload Repository)](Appendix.Oracle.CommonDBATasks.AWR.md).
+ Ativar o Data Guard com performance máxima na mesma região da AWS ou entre regiões da AWS

  Para ter mais informações, consulte [Trabalhar com réplicas de leitura do Amazon RDS para Oracle](oracle-read-replicas.md).
+ Tabelas blockchain (Oracle Database 21c e posterior)

  Para ter mais informações, consulte [Managing Blockchain Tables](https://docs.oracle.com/en/database/oracle/oracle-database/21/admin/managing-tables.html#GUID-43470B0C-DE4A-4640-9278-B066901C3926) (Gerenciar tabelas blockchain) na documentação do Oracle Database.
+ Notificação de consulta contínua

  Para ter mais informações, consulte [ Usar notificação de consulta contínua (CQN)](https://docs.oracle.com/en/database/oracle/oracle-database/19/adfns/cqn.html#GUID-373BAF72-3E63-42FE-8BEA-8A2AEFBF1C35) na documentação da Oracle.
+ Redação de Dados
+ Notificação de consulta contínua

  Para ter mais informações, consulte [ Notificação de alteração do banco de dados](https://docs.oracle.com/cd/E11882_01/java.112/e16548/dbchgnf.htm#JJDBC28815) na documentação da Oracle.
+ Banco de dados na memória
+ Consultas e transações distribuídas
+ Redefinição baseada em edição

  Para ter mais informações, consulte [Definir a edição padrão para uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.DefaultEdition.md).
+ EM Express (12c e posterior)

  Para ter mais informações, consulte [Oracle Enterprise Manager](Oracle.Options.OEM.md).
+ Auditoria granular
+ Tabela Flashback, consulta Flashback, consulta de transação Flashback
+ Sobreposição gradual de senhas para aplicações (Oracle Database 21c e posterior)

  Para ter mais informações, consulte [Managing Gradual Database Password Rollover for Applications](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-authentication.html#GUID-ACBA8DAE-C5B4-4811-A31D-53B97C50249B) (Gerenciar a sobreposição gradual de senhas de banco de dados para aplicações) na documentação do Oracle Database.
+ HugePages

  Para ter mais informações, consulte [Ativar o HugePages para uma instância do RDS para Oracle](Oracle.Concepts.HugePages.md).
+ Importação/exportação (legadas e Data Pump) e SQL\$1Loader

  Para ter mais informações, consulte [Importar dados para o Oracle no Amazon RDS](Oracle.Procedural.Importing.md).
+ Java Virtual Machine (JVM)

  Para ter mais informações, consulte [Oracle Java Virtual Machine](oracle-options-java.md).
+ JavaScript (Oracle Database 21c e posterior)

  Para ter mais informações, consulte [DBMS\$1MLE](https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/dbms_mle.html#GUID-3F5B47A5-2C73-4317-ACD7-E93AE8B8E301) na documentação do Oracle Database.
+ Label Security

  Para obter mais informações, consulte [Oracle Label Security](Oracle.Options.OLS.md).
+ Localizador

  Para ter mais informações, consulte [Oracle Locator](Oracle.Options.Locator.md).
+ Visualizações materializadas
+ Multilocatário

  A arquitetura multilocatário da Oracle é compatível com o Oracle Database 19c e todas as versões posteriores. Para obter mais informações, consulte [Trabalhar com CDBs no RDS para Oracle](oracle-multitenant.md).
+ Criptografia de rede

  Para obter mais informações, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md) e [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md).
+ Particionamento
+ Testes de aplicativos reais

  Para usar os recursos completos de captura e reprodução, você deve usar o Amazon Elastic File System (Amazon EFS) para acessar arquivos gerados pelo Oracle Real Application Testing. Consulte mais informações em [Integração do Amazon EFS](oracle-efs-integration.md) e na publicação do blog [Use Oracle Real Application Testing features with Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/use-oracle-real-application-testing-features-with-amazon-rds-for-oracle/).
+ Fragmentação no nível da aplicação (mas não o recurso de fragmentação do Oracle)
+ Espacial e gráfico

  Para ter mais informações, consulte [Oracle Spatial](Oracle.Options.Spatial.md).
+ Iniciar a otimização de consultas
+ Streams e enfileiramento avançado
+ Gerenciamento de resumos – Regravação de consulta de visualização materializada
+ Texto (não há suporte para tipos de datastore de arquivo e URL)
+ Recuperação total
+ Transparent Data Encryption (TDE)

  Para ter mais informações, consulte [Oracle Transparent Data Encryption](Appendix.Oracle.Options.AdvSecurity.md).
+ Auditoria unificada, modo misto

  Para ter mais informações, consulte [Auditoria de modo misto](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/introduction-to-auditing.html#GUID-4A3AEFC3-5422-4320-A048-8219EC96EAC1) na documentação da Oracle.
+ XML DB (sem o XML DB Protocol Server)

  Para ter mais informações, consulte [Oracle XML DB](Appendix.Oracle.Options.XMLDB.md).
+ Banco de dados privado virtual

## Recursos sem suporte no RDS for Oracle
<a name="Oracle.Concepts.FeatureSupport.unsupported"></a>

O Amazon RDS para Oracle não oferece suporte aos seguintes recursos do Oracle Database:

**nota**  
A lista a seguir não é completa.
+ Automatic Storage Management (ASM)
+ Database Vault
+ Banco de dados Flashback
**nota**  
Para obter soluções alternativas, consulte a entrada do blog de banco de dados [Alternativas ao atributo de banco de dados flashback Oracle no Amazon RDS para Oracle](https://aws.amazon.com/blogs/database/alternatives-to-the-oracle-flashback-database-feature-in-amazon-rds-for-oracle/) da AWS.
+ FTP e SFTP
+ Tabelas particionadas híbridas
+ Gateway de mensagens
+ Repositório de gerenciamento do Oracle Enterprise Manager Cloud Control
+ Real Application Clusters (Oracle RAC)
+ Real Application Security (RAS)
+ Auditoria unificada, Modo puro
+ Esquema do Workspace Manager (WMSYS)

**Atenção**  
Em geral, o Amazon RDS não impede que você crie esquemas para recursos que não têm suporte. No entanto, se você criar esquemas para recursos e componentes Oracle que exigem privilégios SYSDBA, poderá danificar o dicionário de dados e afetar a disponibilidade da instância de banco de dados. Use apenas recursos e esquemas com suporte que estão disponíveis em [Adição de opções a instâncias de banco de dados Oracle](Appendix.Oracle.Options.md).

# Versões do RDS para Oracle
<a name="Oracle.Concepts.database-versions"></a>

O RDS para Oracle é compatível com várias versões do Oracle Database.

**nota**  
Para obter informações sobre como atualizar suas versões, consulte [Fazer upgrade do mecanismo de banco de dados RDS para Oracle](USER_UpgradeDBInstance.Oracle.md).

**Topics**
+ [

## Oracle Database 21c com o Amazon RDS
](#Oracle.Concepts.FeatureSupport.21c)
+ [

## Oracle Database 19c com Amazon RDS
](#Oracle.Concepts.FeatureSupport.19c)

## Oracle Database 21c com o Amazon RDS
<a name="Oracle.Concepts.FeatureSupport.21c"></a>

O Amazon RDS é compatível com o Oracle Database 21c, que inclui o Oracle Enterprise Edition e o Oracle Standard Edition 2. O Oracle Database 21c (21.0.0.0) inclui muitos recursos novos e atualizações da versão anterior. Uma alteração importante é que o Oracle Database 21c é compatível somente com a arquitetura multilocatário: você não pode mais criar um banco de dados como um não CDB tradicional. Para saber mais sobre as diferenças entre CDBs e não CDBs, consulte [Limitações do RDS for CDBs Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations).

Nesta seção, você pode encontrar os recursos e as alterações que são importantes para usar o Oracle Database 21c (21.0.0.0) no Amazon RDS. Para obter uma lista completa das alterações, consulte a documentação do [Oracle Database 21c](https://docs.oracle.com/en/database/oracle/oracle-database/21/index.html). Para obter uma lista completa de recursos compatíveis com cada edição do Oracle Database 21c, consulte [Permitted Features, Options, and Management Packs by Oracle Database Offering](https://docs.oracle.com/en/database/oracle/oracle-database/21/dblic/Licensing-Information.html) (Recursos, opções e pacotes de gerenciamento permitidos pela oferta Oracle Database) na documentação do Oracle.

### Alterações em parâmetros do Amazon RDS for Oracle Database 21c (21.0.0.0)
<a name="Oracle.Concepts.FeatureSupport.21c.parameters"></a>

O Oracle Database 21c (21.0.0.0) inclui vários parâmetros novos, além de parâmetros com novos intervalos e novos valores padrão.

**Topics**
+ [

#### Novos parâmetros
](#Oracle.Concepts.FeatureSupport.21c.parameters.new)
+ [

#### Alterações no parâmetro compatível
](#Oracle.Concepts.FeatureSupport.21c.parameters.compatible)
+ [

#### Parâmetros removidos
](#Oracle.Concepts.FeatureSupport.21c.parameters.removed)

#### Novos parâmetros
<a name="Oracle.Concepts.FeatureSupport.21c.parameters.new"></a>

A tabela a seguir mostra os novos parâmetros do Amazon RDS for Oracle Database 21c (21.0.0.0).


****  

|  Nome  |  Intervalo de valores  | Valor padrão |  Modificável  |  Descrição  | 
| --- | --- | --- | --- | --- | 
|    [blockchain\$1table\$1max\$1no\$1drop](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/BLOCKCHAIN_TABLE_MAX_NO_DROP.html#GUID-26AF15B2-5621-4602-AA6E-D92842E4285C)    |  `NONE \| 0`  |  `NONE`  |  S  |  Permite controlar a quantidade máxima de tempo ocioso que pode ser especificado ao criar uma tabela blockchain.  | 
|  [dbnest\$1enable](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBNEST_ENABLE.html#GUID-2F30C9D3-808E-42CD-ADA6-595FAE518A60)  |  `NONE \| CDB_RESOURCE_PDB_ALL`  |  `NONE`  |  N  |  Permite habilitar ou desabilitar o dbNest. O dbNest fornece isolamento e gerenciamento de recursos do sistema operacional, isolamento do sistema de arquivos e computação segura para PDBs.   | 
|  [dbnest\$1pdb\$1fs\$1conf](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DBNEST_PDB_FS_CONF.html)  |  `NONE \| pathname`  |  `NONE`  |  N  |  Especifica o arquivo de configuração do sistema de arquivos do dbNest para um PDB.   | 
|  [diagnostics\$1control](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DIAGNOSTICS_CONTROL.html)  |  `ERROR \| WARNING \| IGNORE`  | IGNORE |  S  |  Permite controlar e monitorar os usuários que executam operações de diagnóstico de banco de dados possivelmente inseguras.  | 
|  [drcp\$1dedicated\$1opt](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/DRCP_DEDICATED_OPT.html)  |  `YES \| NO`  | YES |  S  |  Habilita ou desabilita o uso de otimização dedicada com o Database Resident Connection Pooling (DRCP).  | 
|  [enable\$1per\$1pdb\$1drcp](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/ENABLE_PER_PDB_DRCP.html)  |  `true \| false`  |  `true`  |  N  |  Controla se o Database Resident Connection Pooling (DRCP) configura um grupo de conexões para todo o CDB ou um grupo de conexões isolado para cada PDB.  | 
|  [inmemory\$1deep\$1vectorization](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/INMEMORY_DEEP_VECTORIZATION.html#GUID-59E87FDC-1DB4-4ACD-A807-D0C1AE44210D)  |  `true \| false`  |  `true`  |  S  |  Habilita ou desabilita o framework de vetorização profunda.  | 
|  [mandatory\$1user\$1profile](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/MANDATORY_USER_PROFILE.html)  |  *profile\$1name*  |  N/D  |  N  |  Especifica o perfil de usuário obrigatório para um CDB ou PDB.  | 
|  [optimizer\$1capture\$1sql\$1quarantine](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/OPTIMIZER_CAPTURE_SQL_QUARANTINE.html)  |  `true \| false`  |  `false`  |  S  |  Habilita ou desabilita o framework de vetorização profunda.  | 
|  [optimizer\$1use\$1sql\$1quarantine](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/OPTIMIZER_CAPTURE_SQL_QUARANTINE.html#GUID-9DBBDBD3-2AA3-4627-9D3A-5330F447BEBB)  |  `true \| false`  |  `false`  |  S  |  Habilita ou desabilita a criação automática de configurações do SQL Quarantine.   | 
|  [result\$1cache\$1execution\$1threshold](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/RESULT_CACHE_EXECUTION_THRESHOLD.html)  |  `0` para `68719476736`  |  `2`  |  S  |  Especifica o número máximo de vezes que uma função do PL/SQL pode ser executada antes que o respectivo resultado seja armazenado no cache de resultados.   | 
|  [result\$1cache\$1max\$1temp\$1result](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/RESULT_CACHE_MAX_TEMP_RESULT.html)  |  `0` para `100`  |  `5`  |  S  |  Especifica a porcentagem de `RESULT_CACHE_MAX_TEMP_SIZE` que qualquer resultado de consulta armazenado em cache único pode consumir.   | 
|  [result\$1cache\$1max\$1temp\$1size](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/RESULT_CACHE_MAX_TEMP_SIZE.html)  |  `0` para `2199023255552`  |  `RESULT_CACHE_SIZE * 10`  |  S  |  Especifica a quantidade máxima de espaço de tabela temporário (em bytes) que pode ser consumida pelo cache de resultados.   | 
|  [sga\$1min\$1size](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/SGA_MIN_SIZE.html)  |  De `0` a `2199023255552` (o valor máximo é 50% de `sga_target`)  |  `0`  |  S  |  Indica um possível valor mínimo para o uso da SGA de um banco de dados conectável (PDB).  | 
|  [tablespace\$1encryption\$1default\$1algorithm](https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM.html)  |  `GOST256 \| SEED128 \| ARIA256 \| ARIA192 \| ARIA128 \| 3DES168 \| AES256 \| AES192 \| AES128`  | AES128 |  S  |  Especifica o algoritmo padrão que o banco de dados usa ao criptografar um espaço de tabela.   | 

#### Alterações no parâmetro compatível
<a name="Oracle.Concepts.FeatureSupport.21c.parameters.compatible"></a>

O parâmetro `compatible` tem um novo valor máximo para o Oracle Database 21c (21.0.0.0) no Amazon RDS. A tabela a seguir mostra o novo valor padrão.


****  

|  Nome do parâmetro  |  Valor máximo do Oracle Database 21c (21.0.0.0)  | 
| --- | --- | 
|  [ compatible](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/COMPATIBLE.html#GUID-6C57EE11-BD06-4BB8-A0F7-D6CDDD086FA9)  |  21.0.0  | 

#### Parâmetros removidos
<a name="Oracle.Concepts.FeatureSupport.21c.parameters.removed"></a>

Os seguintes parâmetros foram removidos do Oracle Database 21c (21.0.0.0):
+ `remote_os_authent`
+ `sec_case_sensitive_logon`
+ `unified_audit_sga_queue_size`

## Oracle Database 19c com Amazon RDS
<a name="Oracle.Concepts.FeatureSupport.19c"></a>

O Amazon RDS oferece suporte para o Oracle Database 19c, que inclui o Oracle Enterprise Edition e o Oracle Standard Edition Two.

O Oracle Database 19c (19.0.0.0) inclui muitos recursos novos e atualizações da versão anterior. Nesta seção, encontre os recursos e as alterações importantes feitas no uso do Oracle Database 19c (19.0.0.0) no Amazon RDS. Para obter uma lista completa das alterações, consulte a documentação do [Oracle Database 19c](https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html). Para obter uma lista completa de recursos compatíveis com cada edição do Oracle Database 19c, consulte [Permitted Features, Options, and Management Packs by Oracle Database Offering](https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/Licensing-Information.html#GUID-0F9EB85D-4610-4EDF-89C2-4916A0E7AC87) (Recursos, opções e pacotes de gerenciamento permitidos pela oferta Oracle Database) na documentação do Oracle. 

### Alterações em parâmetros do Amazon RDS for Oracle Database 19c (19.0.0.0)
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters"></a>

O Oracle Database 19c (19.0.0.0) inclui vários parâmetros novos, além de parâmetros com novos intervalos e novos valores padrão.

**Topics**
+ [

#### Novos parâmetros
](#Oracle.Concepts.FeatureSupport.19c.Parameters.new)
+ [

#### Alterações no parâmetro compatível
](#Oracle.Concepts.FeatureSupport.19c.Parameters.compatible)
+ [

#### Parâmetros removidos
](#Oracle.Concepts.FeatureSupport.19c.Parameters.compatible.removed-parameters)

#### Novos parâmetros
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters.new"></a>

A tabela a seguir mostra os novos parâmetros do Amazon RDS for Oracle Database 19c (19.0.0.0).


****  

|  Nome  |  Valores  |  Permite modificação  |  Descrição  | 
| --- | --- | --- | --- | 
|   [ lob\$1signature\$1enable](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/lob_signature_enable.html#GUID-62997AB5-1084-4C9A-8258-8CB695C7A1D6)   |  TRUE, FALSE (padrão)  |  Y  |  Habilita ou desabilita o recurso de assinatura do localizador LOB.  | 
|   [ max\$1datapump\$1parallel\$1per\$1job](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/MAX_DATAPUMP_PARALLEL_PER_JOB.html#GUID-33B1F962-B8C3-4DCE-BE68-66FC5D34ECA3)   |  1 a 1024, ou AUTO  |  Y  |  Especifica o número máximo de processos paralelos permitidos para cada trabalho do Oracle Data Pump.  | 

#### Alterações no parâmetro compatível
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters.compatible"></a>

O parâmetro `compatible` tem um novo valor máximo para o Oracle Database 19c (19.0.0.0) no Amazon RDS. A tabela a seguir mostra o novo valor padrão. 


****  

|  Nome do parâmetro  |  Valor máximo do Oracle Database 19c (19.0.0.0)  | 
| --- | --- | 
|  [ compatible](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/COMPATIBLE.html#GUID-6C57EE11-BD06-4BB8-A0F7-D6CDDD086FA9)  |  19.0.0  | 

#### Parâmetros removidos
<a name="Oracle.Concepts.FeatureSupport.19c.Parameters.compatible.removed-parameters"></a>

Os seguintes parâmetros foram removidos no Oracle Database 19c (19.0.0.0):
+ `exafusion_enabled`
+ `max_connections`
+ `o7_dictionary_access`

# Opções de licenciamento do RDS para Oracle
<a name="Oracle.Concepts.Licensing"></a>

O Amazon RDS for Oracle tem duas opções de licenciamento: Licença inclusa (LI) e Traga sua própria licença (BYOL). Depois de criar uma instância de banco de dados Oracle no Amazon RDS, é possível alterar o modelo de licenciamento ao modificar a instância de banco de dados. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

**Importante**  
Verifique se você tem a licença apropriada do Oracle Database, com Software Update License and Support, para a classe da instância de banco de dados e a edição do Oracle Database. Além disso, verifique se você tem licenças para todos os recursos do Oracle Database licenciados separadamente.

**Topics**
+ [

## Modelo de licença incluída para SE2
](#Oracle.Concepts.Licensing.LicenseIncluded)
+ [

## Traga a sua própria licença (BYOL) para EE e SE2
](#Oracle.Concepts.Licensing.BYOL)
+ [

## Licenciar implantações Multi-AZ Oracle
](#Oracle.Concepts.Licensing.MAZ)

## Modelo de licença incluída para SE2
<a name="Oracle.Concepts.Licensing.LicenseIncluded"></a>

No modelo de licença inclusa, você não precisa comprar licenças do Oracle Database separadamente. O AWS tem licença para o software de banco de dados Oracle. O modelo Licença inclusa só é aceito no Amazon RDS para Oracle Database Standard Edition 2 (SE2).

Nesse modelo, se você tiver uma conta do AWS Support com suporte para casos, entre em contato com o Suporte para solicitações de serviço do Amazon RDS e do Oracle Database. O uso da opção LI do RDS para Oracle está sujeito à Seção 10.3.1 dos [Termos de serviço da AWS](https://aws.amazon.com/service-terms/).

## Traga a sua própria licença (BYOL) para EE e SE2
<a name="Oracle.Concepts.Licensing.BYOL"></a>

No modelo BYOL, é possível usar suas licenças existentes do Oracle Database para implantar bancos de dados no Amazon RDS. O Amazon RDS comporta o modelo BYOL somente para Oracle Database Enterprise Edition (EE) e o Oracle Database Standard Edition 2 (SE2).

Verifique se você tem a licença apropriada do Oracle Database (com Software Update License and Support) para a classe da instância de banco de dados e a edição do Oracle Database que deseja executar. Você também deve seguir as políticas da Oracle para o licenciamento do software Oracle Database no ambiente de computação em nuvem. Para obter mais informações sobre a política de licenciamento da Oracle para o Amazon EC2, consulte [Licenciamento de softwares Oracle no ambiente de computação em nuvem](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf).

Nesse modelo, você continua a usar sua conta de suporte ativo do Oracle e entra em contato com a Oracle diretamente para solicitações de serviço do Oracle Database. Caso tenha uma conta do AWS Support com suporte a caso, você pode entrar em contato com o Suporte para solucionar problemas do Amazon RDS.

### Integração com o AWS License Manager
<a name="oracle-lms-integration"></a>

Para facilitar o monitoramento do uso de licenças Oracle no modelo BYOL, o [AWS License Manager](https://aws.amazon.com/license-manager/) integra-se ao Amazon RDS for Oracle. O License Manager oferece suporte ao rastreamento de edições de mecanismos e pacotes de licenças do RDS for Oracle com base em núcleos virtuais (vCPUs). Você também pode usar o License Manager com o AWS Organizations para gerenciar centralmente todas as suas contas organizacionais.

A tabela a seguir mostra os filtros de informações de produtos do RDS para Oracle.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Concepts.Licensing.html)

Para rastrear o uso da licença das instâncias de banco de dados do Oracle, é possível criar uma licença autogerenciada utilizando o AWS License Manager. Nesse caso, os recursos do RDS para Oracle que correspondem ao filtro de informações do produto são automaticamente associados à licença autogerenciada. A detecção de instâncias de banco de dados Oracle pode levar até 24 horas. Também é possível rastrear uma licença entre contas usando o AWS Resource Access Manager.

#### Console
<a name="oracle-lms-integration.console"></a>

**Como criar uma licença autogerenciada no AWS License Manager para rastrear o uso de licença das instâncias de banco de dados do Oracle**

1. Acesse [https://console.aws.amazon.com/license-manager/](https://console.aws.amazon.com/license-manager/).

1. Escolha **Criar licença autogerenciada**.

   Consulte instruções em [Create a self-managed license](https://docs.aws.amazon.com/license-manager/latest/userguide/create-license-configuration.html) no *Guia do usuário do AWS License Manager*.

   Adicione uma regra para um **RDS Product Information Filter (Filtro de informações de produto do RDS)** no painel **Product Information (Informações do produto)**.

   Para obter mais informações, consulte [ProductInformation](https://docs.aws.amazon.com/license-manager/latest/APIReference/API_ProductInformation.html) na *Referência da API do AWS License Manager*.

1. (Somente rastreamento entre contas) Use o AWS Resource Access Manager para compartilhar suas licenças autogerenciadas com qualquer conta da AWS ou por meio do AWS Organizations. Para mais informações, consulte [Compartilhar seus recursos da AWS](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html).

#### AWS CLI
<a name="oracle-lms-integration.cli"></a>

Para criar uma licença autogerenciada usando a AWS CLI, chame o comando [create-license-configuration](https://docs.aws.amazon.com/cli/latest/reference/license-manager/create-license-configuration.html). Use os parâmetros `--cli-input-json` ou `--cli-input-yaml` para passar os parâmetros para o comando.

**Example**  
O exemplo a seguir cria uma licença autogerenciada para o Oracle Enterprise Edition.   

```
aws license-manager create-license-configuration --cli-input-json file://rds-oracle-ee.json
```
Veja a seguir o arquivo `rds-oracle-ee.json` de exemplo usado no exemplo.  

```
{
    "Name": "rds-oracle-ee",
    "Description": "RDS Oracle Enterprise Edition",
    "LicenseCountingType": "vCPU",
    "LicenseCountHardLimit": false,
    "ProductInformationList": [
        {
            "ResourceType": "RDS",
            "ProductInformationFilterList": [
                {
                    "ProductInformationFilterName": "Engine Edition",
                    "ProductInformationFilterValue": ["oracle-ee"],
                    "ProductInformationFilterComparator": "EQUALS"
                }
            ]
        }
    ]
}
```

Para obter mais informações sobre o produto, consulte [Detecção automática do inventário de recursos](https://docs.aws.amazon.com/license-manager/latest/userguide/automated-discovery.html) no *Guia do usuário do AWS License Manager*.

Para obter mais informações sobre o parâmetro `--cli-input`, consulte [Gerar um esqueleto AWS CLI e parâmetros de entrada usando um arquivo de entrada JSON ou YAML ](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html) no *AWS CLI Guia do usuário *.

### Migrar entre edições do Oracle Database
<a name="Oracle.Concepts.EditionsMigrating"></a>

Se você tiver uma licença BYOL do Oracle Database não utilizada e apropriada para a edição e a classe da instância de banco de dados que planeja executar, poderá migrar da Standard Edition 2 (SE2) para a Enterprise Edition (EE). Não é possível migrar da EE para outras edições.

**Como alterar a edição do Oracle Database e reter seus dados**

1. Crie um snapshot da instância de banco de dados.

   Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md).

1. Restaure o snapshot para uma nova instância de banco de dados e selecione a edição de banco de dados Oracle que deseja usar.

   Para obter mais informações, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md).

1. (Opcional) Exclua a antiga instância de banco de dados, a não ser que deseje mantê-la em execução, e tenha as licenças apropriadas do banco de dados Oracle para ela.

   Para obter mais informações, consulte [Excluir uma instância de banco de dados](USER_DeleteInstance.md).

## Licenciar implantações Multi-AZ Oracle
<a name="Oracle.Concepts.Licensing.MAZ"></a>

O Amazon RDS oferece suporte para implantações Multi-AZ para Oracle como uma solução de failover de alta disponibilidade. Recomendamos o Multi-AZ para workloads de produção. Para obter mais informações, consulte [Configurar e gerenciar uma implantação multi-AZ para o Amazon RDS](Concepts.MultiAZ.md). 

Se você usar o modelo Traga sua própria licença, deverá ter uma licença para a instância de banco de dados primária e a instância de banco de dados em espera em uma implantação Multi-AZ. 

# Usuários e privilégios do RDS para Oracle
<a name="Oracle.Concepts.Privileges"></a>

Quando você cria uma instância de banco de dados do Amazon RDS para Oracle, o usuário principal padrão tem a maioria das permissões máximas de usuário na instância de banco de dados. Use a conta de usuário principal para qualquer tarefa administrativa, como criar contas do usuário adicionais no banco de dados. Como o RDS é um serviço gerenciado, você não tem permissão para fazer login como `SYS` e `SYSTEM` e, portanto, não tem privilégios `SYSDBA`.

**Topics**
+ [

## Limitações para privilégios do Oracle DBA
](#Oracle.Concepts.dba-limitations)
+ [

## Como gerenciar privilégios em objetos SYS
](#Oracle.Concepts.Privileges.SYS-objects)

## Limitações para privilégios do Oracle DBA
<a name="Oracle.Concepts.dba-limitations"></a>

Uma função é uma coleção de privilégios que podem ser concedidos ou revogados de um usuário. Um banco de dados Oracle usa funções para fornecer segurança. Para receber mais informações, consulte [Configuring Privilege and Role Authorization](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/configuring-privilege-and-role-authorization.html#GUID-89CE989D-C97F-4CFD-941F-18203090A1AC) na documentação do Oracle Database.

Uma função predefinida, chamada de `DBA`, normalmente fornece todos os privilégios administrativos em um banco de dados Oracle. Ao criar uma instância de banco de dados, sua conta de usuário mestra obtém privilégios de DBA (com algumas limitações). Para fornecer uma experiência gerenciada, um banco de dados do RDS for Oracle não fornece os seguintes privilégios para a função `DBA`: 
+ `ALTER DATABASE`
+ `ALTER SYSTEM`
+ `CREATE ANY DIRECTORY`
+ `DROP ANY DIRECTORY`
+ `GRANT ANY PRIVILEGE`
+ `GRANT ANY ROLE`

Para receber mais informações sobre privilégios e perfis do sistema RDS para Oracle, consulte [Privilégios da conta de usuário mestre](UsingWithRDS.MasterAccounts.md).

## Como gerenciar privilégios em objetos SYS
<a name="Oracle.Concepts.Privileges.SYS-objects"></a>

Você pode gerenciar privilégios em objetos `SYS` usando o pacote `rdsadmin.rdsadmin_util`. Por exemplo, se você criar o usuário do banco de dados `myuser`, poderá usar o procedimento `rdsadmin.rdsadmin_util.grant_sys_object` para conceder privilégios `SELECT` em `V_$SQLAREA` ao `myuser`. Para obter mais informações, consulte os tópicos a seguir.
+ [Concessão de privilégios SELECT ou EXECUTE a objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)
+ [Revogar privilégios SELECT ou EXECUTE em objetos SYS](Appendix.Oracle.CommonDBATasks.RevokePrivileges.md)
+ [Concessão de privilégios a usuários não mestres](Appendix.Oracle.CommonDBATasks.PermissionsNonMasters.md)

# Classes de instância de banco de dados do RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses"></a>

A capacidade de computação e memória de uma instância de banco de dados do RDS para Oracle é determinada de acordo com a classe de instância. A classe de instância de banco de dados da qual você precisa depende dos requisitos de energia e memória de processamento.



## Classes de instância de banco de dados compatíveis do RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Supported"></a>

As classes de instância compatíveis com o RDS para Oracle são um subconjunto das classes de instância de banco de dados do RDS. Para obter a lista completa de classes de instância do RDS, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md).



### Classes de instâncias de banco de dados pré-configuradas do RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Supported.tpc"></a>

O RDS para Oracle também oferece classes de instância pré-configuradas para workloads que necessitem de mais memória, armazenamento e E/S por vCPU. Essas classes de instância usam a convenção de nomenclatura a seguir.

```
db.r5b.instance_size.tpcthreads_per_core.memratio
db.r5.instance_size.tpcthreads_per_core.memratio
```

Veja a seguir um exemplo de classe de instância pré-configurada para memória adicional:

```
db.r5b.4xlarge.tpc2.mem2x
```

Os componentes do nome da classe de instância anterior são os seguintes:
+ `db.r5b.4xlarge`: o nome da classe de instância.
+ `tpc2`: os threads por núcleo. O valor 2 significa que o multithreading está ativado. O valor 1 significa que o multithreading está ativado. 
+ `mem2x`: a proporção de memória adicional à memória padrão para a classe de instância. Nesse exemplo, a otimização fornece o dobro de memória que uma instância de banco de dados db.r5.4xlarge padrão. 

**nota**  
Para conhecer os fatores de normalização das classes de instância do RDS para Oracle, consulte [Especificações de hardware para classes de instância de banco de dados](Concepts.DBInstanceClass.Summary.md).

### Combinações de edição, classe de instância e licenciamento compatíveis no RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Supported.combo"></a>

Se você estiver usando o console do RDS, poderá descobrir se uma combinação específica de edição, classe de instância e licença é compatível escolhendo **Criar banco de dados** e especificando uma opção diferente. Na AWS CLI, é possível executar o seguinte comando:

```
aws rds describe-orderable-db-instance-options --engine engine-type --license-model license-type
```

A tabela a seguir lista todas as edições, classes de instância e tipos de licença compatíveis com o RDS para Oracle. Para obter mais informações sobre os atributos de memória de cada tipo, consulte [Tipos de instância do RDS para Oracle](https://aws.amazon.com//rds/oracle/instance-types). Consulte mais informações sobre preços em [Amazon RDS for Oracle pricing models](https://aws.amazon.com/rds/oracle/pricing/#Pricing_models).


****  
<a name="rds-oracle-instance-class-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Concepts.InstanceClasses.html)

## Classes de instâncias de banco de dados obsoletas do RDS para Oracle
<a name="Oracle.Concepts.InstanceClasses.Deprecated"></a>

Estas classes de instância de banco de dados estão descontinuadas para o RDS para Oracle:
+ db.m1, db.m2, db.m3, db.m4
+ db.t1, db.t2
+ db.r1, db.r2, db.r3, db.r4
+ db.x1, db.x1e

As classes de instâncias de banco de dados anteriores foram substituídas por classes de instâncias de banco de dados com melhor performance que geralmente estão disponíveis a um custo menor. Se você tiver instâncias de banco de dados que usam as classes de instância de banco de dados defasadas, terá as seguintes opções:
+ Permitir que o Amazon RDS modifique cada instância de banco de dados automaticamente para usar uma classe de instância de banco de dados não defasada comparável. Para conferir os cronogramas de defasagem, consulte [Tipos de classe de instância de banco de dados](Concepts.DBInstanceClass.Types.md).
+ Alterar a classe da instância de banco de dados por conta própria, modificando a instância de banco de dados. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

**nota**  
Se você tiver snapshots de banco de dados de instâncias de banco de dados que usavam as classes de instância de banco de dados obsoletas, selecione uma classe de instância de banco de dados que não seja obsoleta ao restaurar os snapshots de banco de dados. Para obter mais informações, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md).

# Arquitetura de banco de dados RDS para Oracle
<a name="oracle-multi-architecture"></a>

A arquitetura multilocatário permite que um banco de dados Oracle funcione como um banco de dados de contêiner (CDB) multilocatário. Um CDB pode incluir bancos de dados conectáveis (PDBs) criados pelo cliente. Um não-CDB é um banco de dados Oracle que usa a arquitetura tradicional, que não pode conter PDBs. Para obter mais informações sobre a arquitetura multilocatário, consulte o [https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22).

Para o Oracle Database 19c e posteriores, você pode criar uma instância de banco de dados do RDS para Oracle que usa a arquitetura CDB. No RDS para Oracle, os PDBs são chamados de bancos de dados de locatários. Suas aplicações cliente se conectam no nível do banco de dados de locatários (PDB), e não no nível de CDB. O RDS for Oracle é compatível com as seguintes configurações da arquitetura CDB:

Configuração de locação múltipla  
Essa plataforma do RDS permite que uma instância de CDB do RDS para Oracle contenha de um a trinta bancos de dados de locatários, dependendo da edição do banco de dados e de quaisquer licenças de opção necessárias. Você pode usar APIs do RDS para adicionar, modificar e remover bancos de dados de locatário. A configuração de multilocatário no RDS para Oracle não oferece compatibilidade para PDBs de aplicação ou PDBs de proxy, que são tipos especiais de PDB. Para ter mais informações sobre PDBs de aplicação e PDBs de proxy, consulte [Types of PDBs](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/overview-of-the-multitenant-architecture.html#GUID-D0F40745-FC70-4BE0-85D3-3745DE3312AC) na documentação do Oracle Database.  
A configuração do Amazon RDS é chamada de “multi-tenant”, em vez de “multitenant”, porque é um recurso da plataforma RDS, não apenas do mecanismo de banco de dados Oracle. Da mesma forma, o termo “locatário” do RDS refere-se a qualquer locatário em uma configuração do RDS, não apenas aos PDBs da Oracle. Na documentação do RDS, o termo “multilocatário da Oracle” (Oracle multitenant), sem hífen, refere-se exclusivamente à arquitetura CDB de banco de dados Oracle, que é compatível com implantações on-premises e do RDS.

Configuração de locatário único  
Esse recurso da plataforma RDS limita uma instância de CDB do RDS para Oracle a um banco de dados de um locatário (PDB). Você não pode adicionar mais PDBs usando as APIs do RDS. A configuração de locatário único da arquitetura multilocatário usa as mesmas APIs do RDS que a arquitetura não CDB. Assim, a experiência de trabalhar com um CDB na configuração de inquilino único é basicamente a mesma de trabalhar com um não-CDB.  
É possível converter um CDB que use a configuração de locatário único na configuração multilocatária permitindo, dessa forma, a inclusão de PDBs no CDB. Essa mudança de arquitetura é permanente e irreversível. Para ter mais informações, consulte [Converter a configuração de locatário único em multilocatário](oracle-single-tenant-converting.md).

**nota**  
Você não pode acessar o CDB em si.

No Oracle Database 21c e posteriores, todos os bancos de dados são CDBs. Por outro lado, você pode criar uma instância de banco de dados do Oracle Database 19c como CDB ou não CDB. Não é possível fazer upgrade de um não CDB para CDB, mas você pode converter um não CDB Oracle Database 19c em CDB, depois fazer upgrade. Não é possível converter um CDB em um não CDB.

Para obter mais informações, consulte os seguintes recursos:
+ [Trabalhar com CDBs no RDS para Oracle](oracle-multitenant.md)
+ [Limitações do RDS for CDBs Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations)
+ [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md)

# Parâmetros de inicialização do RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.Parameters"></a>

No Amazon RDS, você gerencia parâmetros usando um grupo de parâmetros de banco de dados. Usando esse grupo, você pode personalizar os parâmetros de inicialização. Por exemplo, você pode configurar o tamanho da área de classificação com `sort_area_size`. Todas as instâncias de banco de dados do RDS para Oracle associadas a um grupo de parâmetros de banco de dados específico usam as mesmas configurações de parâmetro. Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). 

## Parâmetros de inicialização permitidos do RDS para Oracle
<a name="Oracle.Concepts.FeatureSupport.Parameters.individual"></a>

Os parâmetros permitidos para a instância de banco de dados dependem da edição e versão do Oracle Database. Para visualizar os parâmetros de inicialização compatíveis de uma edição e uma versão específicas do Oracle Database, execute o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-parameters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-parameters.html) da AWS CLI. Por exemplo, para visualizar os parâmetros de inicialização permitidos para a Enterprise Edition do Oracle Database 19c, execute o comando a seguir.

```
aws rds describe-engine-default-parameters \
    --db-parameter-group-family oracle-ee-19 \
    --output json | jq -r '.EngineDefaults.Parameters[].ParameterName'

_add_col_optim_enabled
_adg_parselock_timeout
_allow_insert_with_update_check
_allow_level_without_connect_by
_always_semi_join
_autotask_max_window
_awr_disabled_flush_tables
_awr_mmon_cpuusage
_awr_mmon_deep_purge_all_expired
_b_tree_bitmap_plans
_bct_bitmaps_per_file
_bloom_filter_enabled
_buffered_publisher_flow_control_threshold
_bug29394014_allow_triggers_on_vpd_table
_cleanup_rollback_entries
_client_enable_auto_unregister
_clusterwide_global_transactions
_complex_view_merging
_connect_by_use_union_all
_cost_equality_semi_join
_cursor_features_enabled
_cursor_obsolete_threshold
_datafile_write_errors_crash_instance
_db_block_buffers
...
```

Para descrever um único parâmetro de inicialização, use o comando a seguir, substituindo `sga_max_size` pelo nome do seu parâmetro (exemplo de saída incluído).

```
aws rds describe-engine-default-parameters \
    --db-parameter-group-family oracle-ee-19 \
    --query 'EngineDefaults.Parameters[?ParameterName==`sga_max_size`]' \
    --output json

[
    {
        "ParameterName": "sga_max_size",
        "Description": "max total SGA size",
        "Source": "engine-default",
        "ApplyType": "static",
        "DataType": "integer",
        "AllowedValues": "0-2199023255552",
        "IsModifiable": true
    }
]
```

Para encontrar a documentação sobre os parâmetros de inicialização do Oracle Database, consulte [Initialization Parameters](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/initialization-parameters.html#GUID-6F1C3203-0AA0-4AF1-921C-A027DD7CB6A9) na documentação do Oracle Database. Observe que o parâmetro `ARCHIVE_LAG_TARGET` tem considerações especiais no RDS para Oracle. Esse parâmetro força uma troca de log de redo on-line após o término do tempo especificado. No RDS para Oracle, `ARCHIVE_LAG_TARGET` é definido como `300` porque o objetivo de ponto de recuperação (RPO) é de cinco minutos. Para honrar esse objetivo, o RDS para Oracle troca o log redo on-line a cada cinco minutos e o armazena em um bucket do Amazon S3. 

Se a frequência da troca de log de redo on-line reduzir o desempenho em seu banco de dados do RDS para Oracle, você poderá escalar a instância de banco de dados e o armazenamento para um valor maior de IOPS e throughput. Como alternativa, se você usar o RDS Custom para Oracle ou implantar um banco de dados do Oracle no Amazon EC2, poderá ajustar a configuração do parâmetro de inicialização `ARCHIVE_LAG_TARGET`.

## Valores de parâmetros válidos no RDS para Oracle
<a name="oracle-valid-parameter-values"></a>

No RDS para Oracle, somente os seguintes caracteres são válidos para valores de parâmetro:
+ Letras (`A-Z` e `a-z`)
+ Números (`0-9`)
+ Espaços em branco (espaços, tabulações e quebras de linha)
+ Os seguintes caracteres especiais: `_ / . : + = ( ) ' * , % $ -` (hífen)

# Conjuntos de caracteres do RDS for Oracle
<a name="Appendix.OracleCharacterSets"></a>

O RDS para Oracle é compatível com dois tipos de conjuntos de caracteres: o conjunto de caracteres de banco de dados e o conjunto de caracteres nacionais.

## Conjunto de caracteres de banco de dados
<a name="Appendix.OracleCharacterSets.db-character-set"></a>

O conjunto de caracteres de banco de dados Oracle é usado nos tipos de dados `CHAR`, `VARCHAR2` e `CLOB`. O banco de dados também usa esse conjunto de caracteres para metadados, como nomes de tabelas, nomes de colunas e instruções SQL. O conjunto de caracteres de banco de dados Oracle é normalmente chamado de conjunto de caracteres do banco de dados. 

Você pode definir o conjunto de caracteres ao criar uma instância de banco de dados. Você não pode alterar o conjunto de caracteres de banco de dados depois de criar o banco de dados.

### Conjuntos de caracteres de banco de dados compatíveis
<a name="Appendix.OracleCharacterSets.db-character-set.supported"></a>

A tabela a seguir lista os conjuntos de caracteres de banco de dados Oracle com suporte no Amazon RDS. É possível usar um valor dessa tabela com o parâmetro `--character-set-name` do comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) da AWS CLI ou com o parâmetro `CharacterSetName` da operação [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) da API do Amazon RDS.

**nota**  
O conjunto de caracteres para um CDB é sempre AL32UTF8. Você pode definir um conjunto de caracteres diferente somente para o PDB.


****  

| Valor | Descrição | 
| --- | --- | 
|  AL32UTF8  |  Unicode 5.0 UTF-8 Conjunto de caracteres universal (padrão)  | 
|  AR8ISO8859P6  |  ISO 8859-6 Latin/Arabic  | 
|  AR8MSWIN1256  |  Microsoft Windows Code Page 1256 8 bits Latin/Arabic  | 
|  BLT8ISO8859P13  |  ISO 8859-13 Baltic  | 
|  BLT8MSWIN1257  |  Microsoft Windows Code Page 1257 8 bits Baltic  | 
|  CL8ISO8859P5  |  ISO 88559-5 Latin/Cyrillic  | 
|  CL8MSWIN1251  |  Microsoft Windows Code Page 1251 8 bits Latin/Cyrillic  | 
|  EE8ISO8859P2  |  ISO 8859-2 East European  | 
|  EL8ISO8859P7  |  ISO 8859-7 Latin/Greek  | 
|  EE8MSWIN1250  |  Microsoft Windows Code Page 1250 8 bits East European  | 
|  EL8MSWIN1253  |  Microsoft Windows Code Page 1253 8 bits Latin/Greek  | 
|  IW8ISO8859P8  |  ISO 8859-8 Latin/Hebrew  | 
|  IW8MSWIN1255  |  Microsoft Windows Code Page 1255 8 bits Latin/Hebrew  | 
|  JA16EUC  |  EUC 24 bits Japanese  | 
|  JA16EUCTILDE  |  Igual a JA16EUC, exporto pelo mapeamento do til para e partir do Unicode  | 
|  JA16SJIS  |  Shift-JIS 16 bits Japanese  | 
|  JA16SJISTILDE  |  Igual a JA16SJIS, exporto pelo mapeamento do til para e partir do Unicode  | 
|  KO16MSWIN949  |  Microsoft Windows Code Page 949 Korean  | 
|  NE8ISO8859P10  |  ISO 8859-10 North European  | 
|  NEE8ISO8859P4  |  ISO 8859-4 North e Northeast European  | 
|  TH8TISASCII  |  Thai Industrial Standard 620-2533-ASCII 8 bits  | 
|  TR8MSWIN1254  |  Microsoft Windows Code Page 1254 8 bits Turkish  | 
|  US7ASCII  |  ASCII 7 bits American  | 
|  UTF8  |  Unicode 3.0 UTF-8 conjunto de caracteres universal, compatível com CESU-8  | 
|  VN8MSWIN1258  |  Microsoft Windows Code Page 1258 8 bits Vietnamese  | 
|  WE8ISO8859P1  |  Western European 8 bits ISO 8859 Part 1  | 
|  WE8ISO8859P15  |  ISO 8859-15 West European  | 
|  WE8ISO8859P9  |  ISO 8859-9 West European e Turkish  | 
|  WE8MSWIN1252  |  Microsoft Windows Code Page 1252 8 bits West European  | 
|  ZHS16GBK  |  GBK 16 bits Simplified Chinese  | 
|  ZHT16HKSCS  |  Microsoft Windows Code Page 950 com conjunto de caracteres Hong Kong Supplementary HKSCS-2001. A conversão do conjunto de caracteres é baseada em Unicode 3.0.  | 
|  ZHT16MSWIN950  |  Microsoft Windows Code Page 950 Traditional Chinese  | 
|  ZHT32EUC  |  EUC 32 bits Traditional Chinese  | 

### Variável de ambiente NLS\$1LANG
<a name="Appendix.OracleCharacterSets.db-character-set.nls_lang"></a>

Um local é um conjunto de informações que abordam requisitos linguísticos e culturais que correspondem a um determinado idioma e país. Definir a variável de ambiente NLS\$1LANG no ambiente do seu cliente é a maneira mais simples de especificar o comportamento da localidade para o Oracle. Essa variável define o idioma e o território usados pela aplicação cliente e pelo servidor de banco de dados. Ele também indica o conjunto de caracteres do cliente, que corresponde ao conjunto de caracteres para os dados inseridos ou exibidos por um aplicativo cliente. Para obter mais informações sobre NLS\$1LANG e conjuntos de caracteres, consulte [O que é um conjunto de caracteres ou uma página de código?](http://www.oracle.com/technetwork/database/database-technologies/globalization/nls-lang-099431.html#_Toc110410570) na documentação da Oracle.

### Parâmetros de inicialização do NLS
<a name="Appendix.OracleCharacterSets.db-character-set.nls_parameters"></a>

Você também pode definir os seguintes parâmetros de inicialização do National Language Support (NLS) no nível da instância para uma instância de banco de dados do Oracle no Amazon RDS:
+ NLS\$1COMP
+ NLS\$1DATE\$1FORMAT
+ NLS\$1LENGTH\$1SEMANTICS
+ NLS\$1NCHAR\$1CONV\$1EXCP
+ NLS\$1SORT
+ NLS\$1TIME\$1FORMAT
+ NLS\$1TIME\$1TZ\$1FORMAT
+ NLS\$1TIMESTAMP\$1FORMAT
+ NLS\$1TIMESTAMP\$1TZ\$1FORMAT

Para obter informações sobre como modificar parâmetros de instâncias, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

Você pode definir outros parâmetros de inicialização do NLS no seu cliente SQL. Por exemplo, a seguinte instrução define o parâmetro de inicialização NLS\$1LANGUAGE para GERMAN em um cliente SQL que está conectado a uma instância de banco de dados Oracle:

```
ALTER SESSION SET NLS_LANGUAGE=GERMAN;
```

Para obter informações sobre como se conectar a uma instância de banco de dados Oracle com um cliente SQL, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md).

## Conjunto de caracteres nacionais
<a name="Appendix.OracleCharacterSets.nchar-character-set"></a>

O conjunto de caracteres nacionais é usado nos tipos de dados `NCHAR`, `NVARCHAR2` e `NCLOB`. O conjunto de caracteres nacional é normalmente chamado de conjunto de caracteres NCHAR. Ao contrário do conjunto de caracteres do banco de dados, o conjunto de caracteres NCHAR não afeta os metadados do banco de dados.

O conjunto de caracteres NCHAR é compatível com os seguintes conjuntos de caracteres:
+ AL16UTF16 (padrão)
+ UTF8

Você pode especificar qualquer valor com o `--nchar-character-set-name` parâmetro do comando [create-db-instance](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/create-db-instance.html) (somente AWS CLI versão 2). Se você usar a API do Amazon RDS, especifique o parâmetro `NcharCharacterSetName`da operação [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html). Não é possível alterar o conjunto de caracteres nacionais depois de criar o banco de dados.

Para obter mais informações sobre Unicode em bancos de dados Oracle, consulte [Suporte a bancos de dados multilíngues com unicode](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/supporting-multilingual-databases-with-unicode.html) na documentação da Oracle.

# Limitações do RDS para Oracle
<a name="Oracle.Concepts.limitations"></a>

Nas seções a seguir, você pode encontrar limitações importantes ao uso do RDS para Oracle. Para limitações específicas dos CDBs, consulte [Limitações do RDS for CDBs Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations).

**nota**  
Essa lista não é exaustiva.

**Topics**
+ [

## Limites de tamanho de arquivo do Oracle no Amazon RDS
](#Oracle.Concepts.file-size-limits)
+ [

## Limites de tamanho de bloco no RDS para Oracle
](#Oracle.Concepts.block-size-limits)
+ [

## Sinônimos públicos para schemas fornecidos pela Oracle
](#Oracle.Concepts.PublicSynonyms)
+ [

## Recursos não compatíveis com o RDS para Oracle
](#Oracle.Concepts.unsupported-features)
+ [

## Limitações a privilégios de DBA no RDS para Oracle.
](#Oracle.Concepts.dba-limitations)
+ [

## Descontinuação dos protocolos Transport Layer Security (TLS) 1.0 e 1.1 no RDS para Oracle
](#Oracle.Concepts.tls)

## Limites de tamanho de arquivo do Oracle no Amazon RDS
<a name="Oracle.Concepts.file-size-limits"></a>

O tamanho máximo de um único arquivo em instâncias de banco de dados do RDS para Oracle é de 16 TiB (tebibytes). Esse limite é imposto pelo sistema de arquivos ext4 usado pela instância. Assim, os arquivos de dados grandes do Oracle são limitados a 16 TiB. Se tentar redimensionar um arquivo de dados em um espaço de tabela de arquivos grandes para um valor acima do limite, você receberá um erro como o seguinte.

```
ORA-01237: cannot extend datafile 6
ORA-01110: data file 6: '/rdsdbdata/db/mydir/datafile/myfile.dbf'
ORA-27059: could not reduce file size
Linux-x86_64 Error: 27: File too large
Additional information: 2
```

## Limites de tamanho de bloco no RDS para Oracle
<a name="Oracle.Concepts.block-size-limits"></a>

As instâncias de banco de dados do RDS para Oracle são criadas com um tamanho de bloco de banco de dados padrão (`DB_BLOCK_SIZE`) de 8 KB. O tamanho padrão do bloco de banco de dados é definido na criação do banco de dados e não pode ser alterado. Os espaços de tabela `SYSTEM` e temporários sempre usam o tamanho padrão do bloco de banco de dados. É possível criar espaços de tabela adicionais com tamanhos de bloco não padrão configurando o parâmetro `DB_nK_CACHE_SIZE` correspondente (por exemplo, `DB_16K_CACHE_SIZE`) para alocar um cache de buffer para esse tamanho de bloco e, em seguida, especificando a cláusula `BLOCKSIZE` em sua declaração `CREATE TABLESPACE`.

## Sinônimos públicos para schemas fornecidos pela Oracle
<a name="Oracle.Concepts.PublicSynonyms"></a>

Não crie ou modifique sinônimos públicos para schemas mantidos pela Oracle, incluindo `SYS`, `SYSTEM` e `RDSADMIN`. Isso pode resultar na invalidação de componentes centrais do banco de dados e afetar a disponibilidade da sua instância de banco de dados.

Você pode criar sinônimos públicos fazendo referência a objetos em seus próprios esquemas.

## Recursos não compatíveis com o RDS para Oracle
<a name="Oracle.Concepts.unsupported-features"></a>

Em geral, o Amazon RDS não impede que você crie esquemas para recursos que não têm suporte. No entanto, se você criar schemas para recursos e componentes Oracle que exigem privilégios SYS, poderá danificar o dicionário de dados e afetar a disponibilidade da instância. Use apenas recursos e esquemas com suporte que estão disponíveis em [Adição de opções a instâncias de banco de dados Oracle](Appendix.Oracle.Options.md).

## Limitações a privilégios de DBA no RDS para Oracle.
<a name="Oracle.Concepts.dba-limitations"></a>

Uma função é uma coleção de privilégios que podem ser concedidos ou revogados de um usuário. Um banco de dados Oracle usa funções para fornecer segurança.

Uma função predefinida, chamada de `DBA`, normalmente fornece todos os privilégios administrativos em um banco de dados Oracle. Ao criar uma instância de banco de dados, sua conta de usuário mestra obtém privilégios de DBA (com algumas limitações). Para fornecer uma experiência gerenciada, um banco de dados do RDS for Oracle não fornece os seguintes privilégios para a função `DBA`: 
+ `ALTER DATABASE`
+ `ALTER SYSTEM`
+ `CREATE ANY DIRECTORY`
+ `DROP ANY DIRECTORY`
+ `GRANT ANY PRIVILEGE`
+ `GRANT ANY ROLE`

Use a conta de usuário mestre para tarefas administrativas, como criar contas de usuário adicionais no banco de dados. Não é possível utilizar as contas `SYS`, `SYSTEM` nem outras contas administrativas fornecidas pela Oracle. 

## Descontinuação dos protocolos Transport Layer Security (TLS) 1.0 e 1.1 no RDS para Oracle
<a name="Oracle.Concepts.tls"></a>

Os protocolos Transport Layer Security versões 1.0 e 1.1 (TLS 1.0 e TLS 1.1) foram descontinuados. De acordo com as práticas recomendadas de segurança, a Oracle descontinuou o uso do TLS 1.0 e do TLS 1.1. Para atender aos requisitos de segurança, recomendamos enfaticamente que você use o TLS 1.2 em vez disso.

# Conectar-se a uma instância de banco de dados Oracle
<a name="USER_ConnectToOracleInstance"></a>

Depois que o Amazon RDS provisiona a instância de banco de dados do Oracle, você pode usar qualquer aplicação cliente padrão SQL para fazer login na instância de banco de dados. Como o RDS é um serviço gerenciado, você não pode fazer login como SYS nem SYSTEM. Para ter mais informações, consulte [Usuários e privilégios do RDS para Oracle](Oracle.Concepts.Privileges.md).

Neste tópico, você aprenderá a usar o Oracle SQL Developer ou o SQL\$1Plus para se conectar a uma instância de banco de dados do RDS para Oracle. Consulte e veja um exemplo do processo de criação e conexão com uma instância de banco de dados de amostr [Criar uma instância de banco de dados Oracle e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.Oracle.md). 

**Topics**
+ [

# Encontrar o endpoint da instância de banco de dados do RDS para Oracle
](USER_Endpoint.md)
+ [

# Conectar-se à sua instância de banco de dados usando o Oracle SQL Developer
](USER_ConnectToOracleInstance.SQLDeveloper.md)
+ [

# Conectar-se à sua instância de banco de dados do Linux usando o SQL\$1Plus
](USER_ConnectToOracleInstance.SQLPlus.md)
+ [

# Considerações para grupos de segurança
](USER_ConnectToOracleInstance.Security.md)
+ [

# Considerações para arquitetura de processo
](USER_ConnectToOracleInstance.SharedServer.md)
+ [

# Solução de problema de conexão com a instância de banco de dados Oracle
](USER_ConnectToOracleInstance.Troubleshooting.md)
+ [

# Modificação das propriedades de conexão usando parâmetros sqlnet.ora
](USER_ModifyInstance.Oracle.sqlnet.md)

# Encontrar o endpoint da instância de banco de dados do RDS para Oracle
<a name="USER_Endpoint"></a>

Cada instância de banco de dados do Amazon RDS tem um endpoint, e cada ponto final possui o nome DNS e o número da porta para a instância de banco de dados. Para se conectar à sua instância de banco de dados usando um aplicativo cliente SQL, você precisa do nome DNS e do número da porta para sua instância de banco de dados. 

Você pode encontrar o endpoint de uma instância de banco de dados usando o console do Amazon RDS ou a AWS CLI.

**nota**  
Se você estiver usando a autenticação Kerberos, consulte [Conectar-se ao Oracle com a autenticação Kerberos](oracle-kerberos-connecting.md).

## Console
<a name="USER_Endpoint.Console"></a>

**Para localizar o endpoint usando o console**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do, escolha a região AWS para a instância de banco de dados. 

1. Encontre o nome DNS e o número da porta da instância de banco de dados. 

   1. Escolha **Databases (Bancos de dados)** para exibir a lista das instâncias de banco de dados. 

   1. Escolha o nome da instância de banco de dados Oracle para exibir os detalhes da instância. 

   1. Na guia **Connectivity & security (Conectividade e segurança)**, copie o endpoint. Além disso, anote o número da porta. Você precisará do endpoint e do número da porta para conectar-se à instância de banco de dados.  
![\[Localizar o endpoint e a porta da instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/OracleConnect1.png)

## AWS CLI
<a name="USER_Endpoint.CLI"></a>

Para encontrar o endpoint de uma instância de banco de dados Oracle usando a AWS CLI, chame o comando [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html). 

**Example Para localizar o endpoint usando a AWS CLI**  

```
1. aws rds describe-db-instances
```
Procure o `Endpoint` na saída para encontrar o nome DNS e o número da porta da sua instância de banco de dados. A linha `Address` na saída contém o nome DNS. Este é um exemplo da saída de endpoint JSON.  

```
"Endpoint": {
    "HostedZoneId": "Z1PVIF0B656C1W",
    "Port": 3306,
    "Address": "myinstance.123456789012.us-west-2.rds.amazonaws.com"
},
```

**nota**  
A saída pode conter informações de várias instâncias de banco de dados.

# Conectar-se à sua instância de banco de dados usando o Oracle SQL Developer
<a name="USER_ConnectToOracleInstance.SQLDeveloper"></a>

Neste procedimento, você se conectará à sua instância de banco de dados usando o Oracle SQL Developer. Para fazer download de uma versão independente desse utilitário, consulte a [página de downloads do Oracle SQL Developer](https://www.oracle.com/tools/downloads/sqldev-downloads.html).

Para se conectar à sua instância de banco de dados, você precisa do nome DNS e do número da porta. Para obter informações sobre como encontrar o nome DNS e o número da porta de uma instância de banco de dados, consulte [Encontrar o endpoint da instância de banco de dados do RDS para Oracle](USER_Endpoint.md).

**Como conectar-se a uma instância de banco de dados usando o SQL Developer**

1. Inicie o Oracle SQL Developer.

1. Na guia **Connections (Conexões)**, escolha o ícone **add (\$1) (adicionar (\$1))**.  
![\[Oracle SQL Developer com ícone de adição em destaque\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-sqldev-plus.png)

1. Na caixa de diálogo **New/Select Database Connection (Nova/selecionar conexão de banco de dados)**, forneça as informações da sua instância de banco de dados:
   + Em **Connection Name (Nome da conexão)**, digite um nome que descreva a conexão, como `Oracle-RDS`.
   + Em **Username (Nome do usuário)**, digite o nome do administrador do banco de dados da instância de banco de dados.
   + Em **Password (Senha)**, digite a senha do administrador do banco de dados.
   + Em **Hostname (Nome do host)**, digite o nome DNS da instância de banco de dados.
   + Em **Port (Porta)**, digite o número da porta.
   + Em **SID**, insira o nome do banco de dados. Você pode encontrar o nome do banco de dados na guia **Configuration** (Configuração) da página de detalhes do banco de dados.

   A caixa de diálogo preenchida deve ser semelhante à seguinte.  
![\[Criar uma nova conexão no Oracle SQL Developer\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-sqldev-newcon.png)

1. Selecione **Conectar**.

1. Agora, você pode começar a criar seus próprios bancos de dados e executar consultas em instâncias de banco de dados e bancos de dados como de costume. Para executar uma consulta de teste na sua instância de banco de dados, faça o seguinte:

   1. Na guia **Worksheet (Planilha)** da conexão, digite a consulta SQL a seguir.

      ```
      SELECT NAME FROM V$DATABASE;
      ```

   1. Escolha o ícone **execute (execução)** para executar a consulta.  
![\[Executar uma consulta no Oracle SQL Developer usando o ícone de execução\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-sqldev-run.png)

      O SQL Developer retorna o nome do banco de dados.  
![\[Resultados da consulta no Oracle SQL Developer\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-sqldev-results.png)

# Conectar-se à sua instância de banco de dados do Linux usando o SQL\$1Plus
<a name="USER_ConnectToOracleInstance.SQLPlus"></a>

Você pode usar um utilitário como SQL\$1Plus para se conectar a uma instância de banco de dados do Amazon RDS executando o Oracle. Para fazer o download do Oracle Instant Client, que inclui uma versão independente do SQL\$1Plus, consulte [ Downloads do Oracle Instant Client](https://www.oracle.com/database/technologies/instant-client/downloads.html). 

Para se conectar à sua instância de banco de dados, você precisa do nome DNS e do número da porta. Para obter informações sobre como encontrar o nome DNS e o número da porta de uma instância de banco de dados, consulte [Encontrar o endpoint da instância de banco de dados do RDS para Oracle](USER_Endpoint.md).

**Example Para conectar-se a uma instância de banco de dados Oracle usando o SQL\$1Plus**  
Nos exemplos a seguir, substitua o nome de usuário do administrador de sua instância de banco de dados. Além disso, substitua o nome do DNS da instância de banco de dados e inclua o número da porta e o Oracle SID. O valor de SID é o nome do banco de dados da instância de banco de dados que você especificou quando a criou, e não o nome da instância de banco de dados.   
Para Linux, macOS ou Unix:  

```
1. sqlplus 'user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))'
```
Para Windows:  

```
1. sqlplus user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dns_name)(PORT=port))(CONNECT_DATA=(SID=database_name)))
```
Você deve ver saída semelhante ao seguinte:  

```
SQL*Plus: Release 12.1.0.2.0 Production on Mon Aug 21 09:42:20 2017
```
Depois que você inserir a senha de usuário, o prompt do SQL será exibido.  

```
SQL>
```

**nota**  
Visto que a string de conexão de formato mais curto (EZ Connect), como `sqlplus USER/PASSWORD@longer-than-63-chars-rds-endpoint-here:1521/database-identifier`, pode encontrar um limite máximo de caracteres, recomendamos que não a use para conexão.

# Considerações para grupos de segurança
<a name="USER_ConnectToOracleInstance.Security"></a>

Para se conectar à sua instância de banco de dados, ela deve estar associada a um grupo de segurança que contenha os endereços IP e a configuração de rede que você usa para acessá-la. Sua instância de banco de dados pode usar o grupo de segurança padrão. Se você atribuiu um grupo de segurança padrão não configurado quando criou a instância de banco de dados, o firewall dessa instância impedirá conexões. Para obter informações sobre como criar um novo security group, consulte [Controlar acesso com grupos de segurança](Overview.RDSSecurityGroups.md). 

Depois de criar o novo security group, você modifica sua instância de banco de dados para associá-la a esse security group. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

Você pode aprimorar a segurança usando o SSL para criptografar conexões com sua a instância de banco de dados. Para mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 

# Considerações para arquitetura de processo
<a name="USER_ConnectToOracleInstance.SharedServer"></a>

Os processos do servidor lidam com as conexões do usuário em uma instância de banco de dados Oracle. Por padrão, a instância de banco de dados Oracle usa processos de servidores dedicados. Com os processos de servidores dedicados, cada processo de servidor lida somente com um processo de usuário. Se preferir, você pode configurar processos de servidores compartilhados. Com os processos de servidores compartilhados, cada processo de servidor lida com vários processos de usuário.

Você pode considerar processos de servidores compartilhados quando uma quantidade elevada de sessões de usuários estiver consumindo muita memória no servidor. Você também pode considerar os processos do servidores compartilhados quando as sessões se conectarem e desconectarem com muita frequência, resultando em problemas de performance. Há também desvantagens na utilização de processos de servidores compartilhados. Por exemplo, eles podem prejudicar os recursos da CPU e são mais complexos para configurar e administrar.

Para obter mais informações sobre processos de servidores dedicados e compartilhados, consulte [Sobre os processos de servidores dedicados e compartilhados](https://docs.oracle.com/database/121/ADMIN/manproc.htm#ADMIN11166) na documentação do Oracle. Para obter mais informações sobre como configurar processos de servidores compartilhados em uma instância de banco de dados Oracle, consulte [How do I configure Amazon RDS for Oracle database to work with shared servers?](https://aws.amazon.com/premiumsupport/knowledge-center/oracle-db-shared/) na Central de Conhecimento.

# Solução de problema de conexão com a instância de banco de dados Oracle
<a name="USER_ConnectToOracleInstance.Troubleshooting"></a>

Veja a seguir os problemas que você pode encontrar ao tentar se conectar à sua instância de banco de dados Oracle. 


****  

| Problema | Sugestões de solução de problemas | 
| --- | --- | 
|  Não é possível conectar-se à sua instância de banco de dados.   |  Uma instância de banco de dados recém-criada fica com o status **creating (criando)** até que ela esteja pronta para uso. Quando o status muda para **available (disponível)**, você pode se conectar à instância de banco de dados. Dependendo da classe da instância de banco de dados e da quantidade de armazenamento, pode levar até 20 minutos para que a nova instância de banco de dados esteja disponível.   | 
|  Não é possível conectar-se à sua instância de banco de dados.   |  Se você não pode enviar ou receber comunicações através da porta que especificou quando criou a instância de banco de dados, não poderá se conectar à instância de banco de dados. Verifique com o administrador da rede para verificar se a porta que você especificou para a sua instância de banco de dados permite comunicação de entrada e saída.   | 
|  Não é possível conectar-se à sua instância de banco de dados.   |  As regras de acesso aplicadas pelo seu firewall local e os endereços IP autorizados para acessar sua instância de banco de dados no security group para a instância de banco de dados podem não corresponder. O problema está provavelmente com as regras de saída ou de entrada no seu firewall. É possível adicionar ou editar uma regra de entrada no grupo de segurança. Em **Source (Origem)**, selecione **My IP (Meu IP)**. Isso concede acesso à instância de banco de dados do endereço IP detectado no navegador. Para obter mais informações, consulte [Amazon VPC e Amazon RDS](USER_VPC.md). Para obter mais informações sobre security groups, consulte [Controlar acesso com grupos de segurança](Overview.RDSSecurityGroups.md).  Para orientação pelo processo de configuração de regras para o seu security group, consulte [Tutorial: Criar uma VPC para usar com uma instância de banco de dados (somente IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md).   | 
|  **Connect failed because target host or object does not exist – Oracle, Error: ORA-12545 (A conexão falhou pois o host de destino ou o objeto não existe – Oracle, erro: ORA-12545 **   |  Verifique se você especificou o nome do servidor e o número da porta corretamente. Em **Server name (Nome do servidor)**, digite o nome DNS no console.  Para obter informações sobre como encontrar o nome DNS e o número da porta de uma instância de banco de dados, consulte [Encontrar o endpoint da instância de banco de dados do RDS para Oracle](USER_Endpoint.md).  | 
|  **Invalid username/password; logon denied – Oracle, Error: ORA-01017 (Nome de usuário/senha inválidos; login negado – Oracle, erro: ORA-01017**   |  Você conseguiu acessar a instância de banco de dados, mas a conexão foi recusada. Isso geralmente é causado pelo fornecimento de nome de usuário ou senha incorretos. Verifique o nome do usuário e a senha e tente novamente.   | 
|  **No momento, TNS:listener não conhece o SID fornecido no descritor de conexão - Oracle, ERRO: ORA-12505**   |  Certifique-se de que o SID correto esteja inserido. O SID equivale ao nome do seu banco de dados. Encontre o nome do banco de dados na guia **Configuration** (Configuração) da página **Databases** (Bancos de dados) para sua instância. Você também pode encontrar o nome do banco de dados usando a AWS CLI:  <pre>aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,DBName]' --output text</pre>  | 

Para ter mais informações sobre problemas de conexão, consulte [Não é possível conectar-se à instância de banco de dados do Amazon RDS](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting).

# Modificação das propriedades de conexão usando parâmetros sqlnet.ora
<a name="USER_ModifyInstance.Oracle.sqlnet"></a>

O arquivo sqlnet.ora inclui os parâmetros que configuram os recursos do Oracle Net em servidores e clientes de banco de dados Oracle. Usando os parâmetros no arquivo sqlnet.ora, você pode modificar propriedades para conexões dentro e fora do banco de dados. 

Para obter mais informações sobre por que convém definir parâmetros do sqlnet.ora, consulte [Configurar parâmetros do perfil](https://docs.oracle.com/database/121/NETAG/profile.htm#NETAG009) na documentação da Oracle.

## Configurar parâmetros do sqlnet.ora
<a name="USER_ModifyInstance.Oracle.sqlnet.Setting"></a>

Os grupos de parâmetros do Amazon RDS for Oracle incluem um subconjunto de parâmetros sqlnet.ora. Você os configura da mesma forma que configura outros parâmetros do Oracle. O prefixo `sqlnetora.` identifica quais parâmetros são parâmetros do sqlnet.ora. Por exemplo, em um parameter group Oracle no Amazon RDS, o parâmetro `default_sdu_size` do sqlnet.ora é `sqlnetora.default_sdu_size`.

Para obter informações sobre como gerenciar parameter groups e definir valores de parâmetros, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

## Parâmetros do sqlnet.ora compatíveis
<a name="USER_ModifyInstance.Oracle.sqlnet.Supported"></a>

O Amazon RDS oferece suporte aos seguintes parâmetros do sqlnet.ora. As alterações nos parâmetros dinâmicos do sqlnet.ora entram em vigor imediatamente.


****  

| Parâmetro | Valores válidos | Estático/dinâmico | Descrição | 
| --- | --- | --- | --- | 
|  `sqlnetora.default_sdu_size`  |  `512` para `2097152`   |  Dinâmico  |  O tamanho da unidade de dados da sessão (SDU), em bytes.  A SDU é a quantidade de dados que são armazenados em um buffer e enviados pela rede ao mesmo tempo.  | 
|  `sqlnetora.diag_adr_enabled`  |  `ON`, `OFF`   |  Dinâmico  |  Um valor que ativa e desativa o rastreamento do Repositório de Diagnóstico Automático (ADR).  `ON` especifica que é usado o rastreamento de arquivos de ADR. `OFF` especifica que é usado o rastreamento de arquivos que não são de ADR.  | 
|  `sqlnetora.recv_buf_size`  |  `8192` para `268435456`   |  Dinâmico  |  O limite de espaço de buffer para receber operações de sessões, compatíveis com os protocolos TCP/IP, TCP/IP com SSL e SDP.   | 
|  `sqlnetora.send_buf_size`  |  `8192` para `268435456`   |  Dinâmico  |  O limite de espaço de buffer para enviar operações de sessões, compatíveis com os protocolos TCP/IP, TCP/IP com SSL e SDP.   | 
|  `sqlnetora.sqlnet.allowed_logon_version_client`  |  `8`, `10`, `11`, `12`   |  Dinâmico  |  A versão mínima do protocolo de autenticação permite que clientes e servidores atuando como clientes estabeleçam uma conexão com instâncias de bancos de dados Oracle.  | 
|  `sqlnetora.sqlnet.allowed_logon_version_server`  |  `8`, `9`, `10`, `11`, `12`, `12a`   |  Dinâmico  |  A versão mínima do protocolo de autenticação permite estabelecer uma conexão com instâncias de bancos de dados Oracle.  | 
|  `sqlnetora.sqlnet.expire_time`  |  `0` para `1440`   |  Dinâmico  |  Intervalo de tempo, em minutos, para enviar uma verificação para conferir se as conexões cliente/servidor estão ativas.   | 
|  `sqlnetora.sqlnet.inbound_connect_timeout`  |  `0` ou `10` a `7200`   |  Dinâmico  |  Tempo, em segundos, para um cliente se conectar ao servidor de banco de dados e fornecer as informações de autenticação necessárias.   | 
|  `sqlnetora.sqlnet.outbound_connect_timeout`  |  `0` ou `10` a `7200`   |  Dinâmico  |  Tempo, em segundos, para um cliente estabelecer uma conexão do Oracle Net com a instância de banco de dados.   | 
|  `sqlnetora.sqlnet.recv_timeout`  |  `0` ou `10` a `7200`   |  Dinâmico  |  Tempo, em segundos, para um servidor de banco de dados aguardar os dados do cliente depois de estabelecer uma conexão.   | 
|  `sqlnetora.sqlnet.send_timeout`  |  `0` ou `10` a `7200`   |  Dinâmico  |  Tempo, em segundos, para um servidor de banco de dados concluir uma operação de envio para os clientes depois de estabelecer uma conexão.   | 
|  `sqlnetora.tcp.connect_timeout`  |  `0` ou `10` a `7200`   |  Dinâmico  |  Tempo, em segundos, para um cliente estabelecer uma conexão TCP com o servidor de banco de dados.   | 
|  `sqlnetora.trace_level_server`  |  `0`, `4`, `10`, `16`, `OFF`, `USER`, `ADMIN`, `SUPPORT`  |  Dinâmico  | Para rastreamento que não abrange arquivos de ADR, ativa o rastreamento do servidor em um nível especificado ou o desativa. | 

O valor padrão para cada parâmetro do sqlnet.ora compatível é o padrão do Oracle Database para a versão.

## Exibir parâmetros do sqlnet.ora
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing"></a>

Você pode exibir os parâmetros do sqlnet.ora e suas configurações usando o Console de gerenciamento da AWS, a AWS CLI ou um cliente SQL.

### Exibir parâmetros do sqlnet.ora usando o console
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.Console"></a>

Para obter informações sobre como exibir parâmetros em um parameter group, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

Nos parameter groups do Oracle, o prefixo `sqlnetora.` identifica quais parâmetros são parâmetros do sqlnet.ora.

### Exibir parâmetros do sqlnet.ora usando a AWS CLI
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.CLI"></a>

Para exibir os parâmetros do sqlnet.ora que foram configurados em um parameter group do Oracle, use o comando [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) da AWS CLI.

Para exibir todos os parâmetros do sqlnet.ora para uma instância de banco de dados Oracle, chame o comando [download-db-log-file-portion](https://docs.aws.amazon.com/cli/latest/reference/rds/download-db-log-file-portion.html) da AWS CLI. Especifique o DB instance identifier, o nome do arquivo de log e o tipo de saída. 

**Example**  
O código a seguir lista todos os parâmetros do sqlnet.ora par `mydbinstance`.   
Para Linux, macOS ou Unix:  

```
aws rds download-db-log-file-portion \
    --db-instance-identifier mydbinstance \
    --log-file-name trace/sqlnet-parameters \
    --output text
```
Para Windows:  

```
aws rds download-db-log-file-portion ^
    --db-instance-identifier mydbinstance ^
    --log-file-name trace/sqlnet-parameters ^
    --output text
```

### Exibir parâmetros do sqlnet.ora usando um cliente SQL
<a name="USER_ModifyInstance.Oracle.sqlnet.Viewing.SQL"></a>

Depois de se conectar à instância de banco de dados Oracle em um cliente SQL, a consulta a seguir lista os parâmetros do sqlnet.ora.

```
1. SELECT * FROM TABLE
2.    (rdsadmin.rds_file_util.read_text_file(
3.         p_directory => 'BDUMP',
4.         p_filename  => 'sqlnet-parameters'));
```

Para obter informações sobre como se conectar a uma instância de banco de dados Oracle em um cliente SQL, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md).

# Proteção das conexões de instância de banco de dados Oracle
<a name="Oracle.Concepts.RestrictedDBAPrivileges"></a>

O Amazon RDS for Oracle oferece suporte a conexões criptografadas em SSL/TLS, além da opção Oracle Native Network Encryption (NNE), para criptografar conexões entre a aplicação e a instância de banco de dados Oracle. Para obter mais informações sobre a opção Oracle Native Network Encryption, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md). 

**Topics**
+ [

# Usar SSL com uma instância de banco de dados Oracle
](Oracle.Concepts.SSL.md)
+ [

# Atualizar aplicações para conexão com instâncias de banco de dados Oracle usando novos certificados SSL/TLS
](ssl-certificate-rotation-oracle.md)
+ [

# Usar a criptografia de rede com uma instância de banco de dados do RDS para Oracle
](Oracle.Concepts.NNE.md)
+ [

# Configurar a autenticação Kerberos do Amazon RDS para Oracle
](oracle-kerberos.md)
+ [

# Configurar o acesso UTL\$1HTTP usando certificados e uma carteira Oracle
](Oracle.Concepts.ONA.md)

# Usar SSL com uma instância de banco de dados Oracle
<a name="Oracle.Concepts.SSL"></a>

O Secure Sockets Layer (SSL) é um protocolo padrão do setor para proteger as conexões de rede entre o cliente e o servidor. Após o SSL versão 3.0, o nome mudou para Transport Layer Security (TLS), mas ainda costuma ser chamado de SSL. O Amazon RDS é compatível com criptografia SSL para instâncias de banco de dados Oracle. Usando o SSL, você pode criptografar uma conexão entre seu cliente de aplicativo e sua instância de banco de dados Oracle. O suporte a SSL está disponível em todas as regiões da AWS para Oracle.

Para habilitar a criptografia SSL para uma instância de banco de dados Oracle, adicione a opção Oracle SSL ao grupo de opções associado a instância de banco de dados. O Amazon RDS usa uma segunda porta, conforme exigido pela Oracle, para conexões SSL. Isso permite que comunicações de texto sem formatação e de texto com criptografia SSL ocorram ao mesmo tempo entre uma instância de banco de dados e um cliente Oracle. Por exemplo, você pode usar a porta com comunicação de texto simples para se comunicar com outros recursos dentro de uma VPC enquanto usa a porta com comunicação criptografada em SSL para se comunicar com recursos fora da VPC. 

Para obter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 

**nota**  
Não é possível usar a Oracle Native Network Encryption (NNE) na mesma instância de banco de dados. Antes de poder usar a criptografia SSL, você deve desabilitar qualquer outra criptografia de conexão. 

# Atualizar aplicações para conexão com instâncias de banco de dados Oracle usando novos certificados SSL/TLS
<a name="ssl-certificate-rotation-oracle"></a>

Em 13 de janeiro de 2023, o Amazon RDS publicou novos certificados de autoridade de certificação (CA) para se conectar às suas instâncias de banco de dados do RDS via Secure Socket Layer ou Transport Layer Security (SSL/TLS). A seguir, você pode encontrar informações sobre como atualizar seus aplicativos para usar os novos certificados.

Este tópico pode ajudá-lo a determinar se algum aplicativo cliente usa SSL/TLS para conectar-se às suas instâncias de banco de dados. 

**Importante**  
Quando você altera o certificado de uma instância de banco de dados do Amazon RDS for Oracle, somente o listener do banco de dados é reiniciado. A instância de banco de dados não é reiniciada. As conexões de banco de dados existentes não são afetadas, mas novas conexões encontrarão erros por um breve período enquanto o listener é reiniciado.  
Recomendamos reiniciar o banco de dados Oracle para evitar erros de conexão.

**nota**  
Para aplicativos cliente que usam SSL/TLS para conectar-se às instâncias de banco de dados, atualize os armazenamentos confiáveis do aplicativo cliente para incluir os novos certificados de CA. 

Depois de atualizar seus certificados de CA nos armazenamentos confiáveis do aplicativo cliente, você pode fazer o rodízio dos certificados nas suas instâncias de banco de dados. É altamente recomendável testar esses procedimentos em um ambiente de desenvolvimento ou teste antes de implementá-los em seus ambientes de produção.

Para obter mais informações sobre a mudança de certificados, consulte [Alternar o certificado SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md). Para obter mais informações sobre como baixar certificados, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md). Para obter informações sobre o uso de SSL/TLS com instâncias de bancos de dados Oracle, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md).

**Topics**
+ [

## Como descobrir se as aplicações se conectam usando SSL
](#ssl-certificate-rotation-oracle.determining)
+ [

## Atualizar o armazenamento confiável de aplicações
](#ssl-certificate-rotation-oracle.updating-trust-store)
+ [

## Exemplo de código Java para estabelecer conexões SSL
](#ssl-certificate-rotation-oracle.java-example)

## Como descobrir se as aplicações se conectam usando SSL
<a name="ssl-certificate-rotation-oracle.determining"></a>

Se a instância banco de dados Oracle usa um grupo de opção com a opção `SSL` adicionada, você pode estar usando SSL. Confira isso seguindo as instruções em [Listar as opções e as configurações de opções para um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ListOption). Para obter informações sobre a opção `SSL`, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md).

Verifique o log do ouvinte para determinar se há conexões SSL. Esta é uma saída de exemplo em um log de ouvinte.

```
date time * (CONNECT_DATA=(CID=(PROGRAM=program)
(HOST=host)(USER=user))(SID=sid)) * 
(ADDRESS=(PROTOCOL=tcps)(HOST=host)(PORT=port)) * establish * ORCL * 0
```

Quando `PROTOCOL` tem o valor `tcps` para uma entrada, ele mostra uma conexão SSL. No entanto, quando `HOST` é `127.0.0.1` , você pode ignorar a entrada. As conexões de `127.0.0.1` são um agente de gerenciamento local na instância de banco de dados. Essas conexões não são conexões SSL externas. Portanto, você terá aplicativos conectados usando SSL se você vir entradas de log do ouvinte em que `PROTOCOL` é `tcps` e `HOST` *não é* `127.0.0.1`.

Para verificar o log do ouvinte, você pode publicá-lo no Amazon CloudWatch Logs. Para obter mais informações, consulte [Publicação de logs da Oracle no Amazon CloudWatch Logs](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Oracle.PublishtoCloudWatchLogs).

## Atualizar o armazenamento confiável de aplicações
<a name="ssl-certificate-rotation-oracle.updating-trust-store"></a>

Você pode atualizar o armazenamento confiável para aplicativos que usam conexões SQL\$1Plus ou JDBC para SSL/TLS.

### Atualizar o armazenamento confiável de aplicações para SQL\$1Plus
<a name="ssl-certificate-rotation-oracle.updating-trust-store.sqlplus"></a>

Você pode atualizar o armazenamento confiável para aplicativos que usam conexões SQL\$1Plus para SSL/TLS.

**nota**  
Ao atualizar o armazenamento confiável, é possível reter certificados mais antigos, além de adicionar os novos certificados.

**Como atualizar o armazenamento confiável para aplicativos SQL\$1Plus**

1. Baixe o novo certificado raiz que funciona para todas as regiões da AWS e coloque o arquivo no diretório `ssl_wallet`.

   Para obter informações sobre como baixar o certificado raiz, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

1. Execute o comando a seguir para atualizar o Oracle Wallet.

   ```
   prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert
         $ORACLE_HOME/ssl_wallet/ssl-cert.pem -auto_login_only
   ```

   Substitua o nome do arquivo pelo arquivo baixado.

1. Execute o seguinte comando para confirmar que a carteira foi atualizada com sucesso.

   ```
   prompt>orapki wallet display -wallet $ORACLE_HOME/ssl_wallet                     
   ```

   Sua saída deve conter o seguinte.

   ```
   Trusted Certificates: 
   Subject: CN=Amazon RDS Root 2019 CA,OU=Amazon RDS,O=Amazon Web Services\, Inc.,L=Seattle,ST=Washington,C=US
   ```

### Atualizar o armazenamento confiável de aplicações para JDBC
<a name="ssl-certificate-rotation-oracle.updating-trust-store.jdbc"></a>

Você pode atualizar o armazenamento confiável para aplicativos que usam conexões JDBC para SSL/TLS.

Para obter informações sobre como baixar o certificado raiz, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

Para obter exemplos de scripts que importam certificados, consulte [Script de exemplo para importar certificados para o seu armazenamento confiável](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

## Exemplo de código Java para estabelecer conexões SSL
<a name="ssl-certificate-rotation-oracle.java-example"></a>

O exemplo de código a seguir mostra como configurar a conexão SSL usando o JDBC.

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class OracleSslConnectionTest {
    private static final String DB_SERVER_NAME = "<dns-name-provided-by-amazon-rds>";
    private static final Integer SSL_PORT = "<ssl-option-port-configured-in-option-group>";
    private static final String DB_SID = "<oracle-sid>";
    private static final String DB_USER = "<user name>";
    private static final String DB_PASSWORD = "<password>";
    // This key store has only the prod root ca.
    private static final String KEY_STORE_FILE_PATH = "<file-path-to-keystore>";
    private static final String KEY_STORE_PASS = "<keystore-password>";
 
    public static void main(String[] args) throws SQLException {
        final Properties properties = new Properties();
        final String connectionString = String.format(
                "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))",
                DB_SERVER_NAME, SSL_PORT, DB_SID);
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);
        properties.put("oracle.jdbc.J2EE13Compliant", "true");
        properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        properties.put("javax.net.ssl.trustStoreType", "JKS");
        properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);
        final Connection connection = DriverManager.getConnection(connectionString, properties);
        // If no exception, that means handshake has passed, and an SSL connection can be opened
    }
}
```

**Importante**  
Depois de determinar que suas conexões com o banco de dados usam SSL/TLS e ter atualizado o armazenamento confiável de aplicações, você poderá atualizar o banco de dados para usar os certificados rds-ca-rsa2048-g1. Para obter instruções, consulte a etapa 3 em [Atualizar o certificado CA modificando a instância ou o cluster de banco de dados](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).

# Usar a criptografia de rede com uma instância de banco de dados do RDS para Oracle
<a name="Oracle.Concepts.NNE"></a>

O Oracle Database oferece duas maneiras de criptografar dados pela rede: criptografia de rede nativa (NNE) e Transport Layer Security (TLS). A NNE é um recurso de segurança proprietário da Oracle, enquanto o TLS é um padrão do setor. O RDS para Oracle é compatível com a NNE para todas as edições do Oracle Database.

A NNE tem as seguintes vantagens em relação ao TLS:
+ Você pode controlar a NNE no cliente e no servidor usando as configurações na opção NNE:
  + `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS` e `SQLNET.ALLOW_WEAK_CRYPTO`
  + `SQLNET.CRYPTO_CHECKSUM_CLIENT` e `SQLNET.CRYPTO_CHECKSUM_SERVER`
  + `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` e `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`
  + `SQLNET.ENCRYPTION_CLIENT` e `SQLNET.ENCRYPTION_SERVER`
  + `SQLNET.ENCRYPTION_TYPES_CLIENT` e `SQLNET.ENCRYPTION_TYPES_SERVER`
+ Na maioria dos casos, não é preciso configurar seu cliente nem o servidor. Por outro lado, o TLS exige que você configure o cliente e o servidor.
+ Nenhum certificado é necessário. No TLS, o servidor exige um certificado (que expira) e o cliente exige um certificado raiz confiável para a autoridade de certificação que emitiu o certificado do servidor.

Para ativar a criptografia NNE para uma instância de banco de dados Oracle, adicione a opção Oracle NNE ao grupo de opções associado à instância de banco de dados. Para obter mais informações, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md). 

**nota**  
Não é possível usar a NNE e o TLS na mesma instância de banco de dados.

# Configurar a autenticação Kerberos do Amazon RDS para Oracle
<a name="oracle-kerberos"></a>

É possível usar a autenticação Kerberos para autenticar usuários quando se conectam à instância de banco de dados do Amazon RDS para Oracle. Nesta configuração, sua instância de banco de dados funciona com AWS Directory Service for Microsoft Active Directory, também chamada AWS Managed Microsoft AD. Quando os usuários são autenticados por uma instância de banco de dados do RDS para Oracle unida ao domínio confiável, as solicitações de autenticação são encaminhadas para o diretório criado com o Directory Service.

Manter todas as suas credenciais no mesmo diretório pode economizar tempo e esforço. Você tem um lugar centralizado para armazenar e gerenciar credenciais para várias instâncias de banco de dados. Um diretório também pode melhorar o perfil de segurança geral.

# Disponibilidade de regiões e versões
<a name="oracle-kerberos-setting-up.RegionVersionAvailability"></a>

A disponibilidade e a compatibilidade de recursos varia entre versões específicas de cada mecanismo de banco de dados e entre Regiões da AWS. Para obter mais informações sobre a disponibilidade de versões e regiões do RDS para Oracle com autenticação de Kerberos, consulte [Regiões e mecanismos de banco de dados compatíveis com a autenticação Kerberos no Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md).

**nota**  
A autenticação Kerberos não é compatível com classes de instância de banco de dados que estão obsoletas para instâncias de banco de dados do RDS para Oracle. Para obter mais informações, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

**Topics**
+ [

# Disponibilidade de regiões e versões
](oracle-kerberos-setting-up.RegionVersionAvailability.md)
+ [

# Configurar o Kerberos para instâncias de banco de dados do Oracle
](oracle-kerberos-setting-up.md)
+ [

# Gerenciamento de uma instância de banco de dados em um domínio
](oracle-kerberos-managing.md)
+ [

# Conectar-se ao Oracle com a autenticação Kerberos
](oracle-kerberos-connecting.md)

# Configurar o Kerberos para instâncias de banco de dados do Oracle
<a name="oracle-kerberos-setting-up"></a>

Use o AWS Directory Service for Microsoft Active Directory, também chamado de AWS Managed Microsoft AD, para configurar a autenticação Kerberos para uma instância de banco de dados do Oracle. Para configurar a autenticação Kerberos, conclua as seguintes etapas:
+ [Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD](#oracle-kerberos.setting-up.create-directory)
+ [Etapa 2: Criar uma confiança](#oracle-kerberos.setting-up.create-forest-trust)
+ [Etapa 3: Configurar as permissões do IAM para o Amazon RDS](#oracle-kerberos.setting-up.CreateIAMRole)
+ [Etapa 4: Criar e configurar usuários](#oracle-kerberos.setting-up.create-users)
+ [Etapa 5: Ativar o tráfego entre VPCs entre o diretório e a instância de banco de dados](#oracle-kerberos.setting-up.vpc-peering)
+ [Etapa 6: Criar ou modificar uma instância de banco de dados Oracle](#oracle-kerberos.setting-up.create-modify)
+ [Etapa 7: Criar logins do Oracle da autenticação Kerberos](#oracle-kerberos.setting-up.create-logins)
+ [Etapa 8: Configurar um cliente Oracle](#oracle-kerberos.setting-up.configure-oracle-client)

**nota**  
Durante a configuração, o RDS cria um usuário de banco de dados Oracle chamado *managed\$1service\$1user*@*example.com* com o privilégio `CREATE SESSION`, em que *example.com* é seu nome de domínio. Este usuário corresponde ao usuário que o Directory Service cria dentro do Active Directory gerenciado. Periodicamente, o RDS usa as credenciais fornecidas pelo Directory Service para efetuar logon no banco de dados Oracle. Depois, o RDS destrói imediatamente o cache do tíquete.

## Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD
<a name="oracle-kerberos.setting-up.create-directory"></a>

O Directory Service cria um Active Directory totalmente gerenciado na Nuvem AWS. Ao criar um diretório do AWS Managed Microsoft AD, o Directory Service cria dois controladores de domínio e servidores do Domain Name System (DNS) em seu nome. Os servidores do diretório são criados em sub-redes diferentes em uma VPC. Essa redundância ajuda a garantir que o diretório permaneça acessível mesmo se ocorrer uma falha. 

Ao criar um diretório do AWS Managed Microsoft AD, o Directory Service executa as seguintes tarefas em seu nome: 
+ Configura um Active Directory dentro da VPC. 
+ Cria uma conta de administrador do diretório com o nome de usuário Admin e a senha especificada. Use essa conta para gerenciar seu diretório. 
**nota**  
Salve essa senha. O Directory Service não a armazena. Você pode redefini-la, mas não recuperá-la. 
+ Cria um grupo de segurança para os controladores do diretório. 

Quando você inicia o AWS Managed Microsoft AD, o AWS cria uma Unidade organizacional (UO) que contém todos os objetos do diretório. Essa OU, que tem o nome NetBIOS que você digitou quando criou o diretório, está localizada na raiz do domínio. A raiz do domínio é controlada e de propriedade da AWS. 

A conta admin que foi criada com o diretório do AWS Managed Microsoft AD tem permissões para as atividades administrativas mais comuns de sua OU: 
+ Criar, atualizar ou excluir usuários 
+ Adicionar recursos ao domínio, como servidores de arquivos ou de impressão, e atribuir permissões para esses recursos aos usuários na UO 
+ Criar OUs adicionais e contêineres 
+ Delegar autoridade 
+ Restaurar objetos excluídos da Lixeira do Active Directory 
+ Execute os módulos AD e DNS do Windows PowerShell no Active Directory Web Service 

A conta admin também tem direitos para executar as seguintes atividades em todo o domínio: 
+ Gerenciar configurações de DNS (adicionar, remover ou atualizar registros, zonas e encaminhadores) 
+ Visualizar logs de eventos de DNS 
+ Visualizar logs de eventos de segurança 

Para criar o diretório, use a API Console de gerenciamento da AWS, AWS CLI ou Directory Service. Certifique-se de abrir as portas de saída relevantes no security group de diretórios para que o diretório possa se comunicar com a instância de banco de dados Oracle.

**Como criar um diretório com AWS Managed Microsoft AD**

1. Faça login no Console de gerenciamento da AWS e abra o console do Directory Service em [https://console.aws.amazon.com/directoryservicev2/](https://console.aws.amazon.com/directoryservicev2/).

1. No painel de navegação, escolha **Directories (Diretórios)** e escolha **Set up directory (Configurar diretório)**. 

1. Escolha **AWS Managed Microsoft AD**. O AWS Managed Microsoft AD é a única opção que você pode usar atualmente com o Amazon RDS. 

1.  Insira as seguintes informações:   
**Nome do DNS do diretório**  
O nome completo do diretório, como **corp.example.com**.   
**Nome de NetBIOS do diretório**  
O nome curto do diretório, como **CORP**.   
**Descrição do diretório**  
(Opcional) Uma descrição do diretório.   
**Senha do Admin**  
A senha do administrador do diretório. O processo de criação do diretório cria uma conta de administrador com o nome de usuário Admin e essa senha.   
A senha do administrador do diretório e não pode incluir a palavra "admin". A senha diferencia letras maiúsculas de minúsculas e deve ter entre 8 e 64 caracteres. Ela também precisa conter pelo menos um caractere de três das quatro categorias a seguir:   
   + Letras minúsculas (a–z) 
   + Letras maiúsculas (A–Z) 
   + Números (0–9) 
   + Caracteres não alfanuméricos (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**Confirmar senha**  
A senha do administrador digitada novamente. 

1. Escolha **Next (Próximo)**.

1.  Insira as seguintes informações na seção **Networking (Rede)** e escolha **Next (Próximo)**:   
**VPC**  
A VPC do diretório. Crie a instância de banco de dados Oracle nessa mesma VPC.   
**Sub-redes**  
Sub-redes para os servidores do diretório. As duas sub-redes deve estar em diferentes zonas de disponibilidade. 

1.  Revise as informações do diretório e faça as alterações necessárias. Quando as informações estiverem corretas, selecione **Create directory (Criar diretório)**.   
![\[Página de detalhes do diretório durante a criação\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

A criação do diretório leva vários minutos. Depois que o diretório tiver sido criado com sucesso, o valor de **Status** muda para **Active (Ativo)**. 

Para ver informações sobre o diretório, selecione o nome do diretório na listagem de diretórios. Anote o valor do **Directory ID (ID de diretório)** pois você precisará desse valor ao criar ou modificar a instância de banco de dados Oracle. 

![\[Página de detalhes do diretório\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Etapa 2: Criar uma confiança
<a name="oracle-kerberos.setting-up.create-forest-trust"></a>

Se você planeja usar somente o AWS Managed Microsoft AD, vá para [Etapa 3: Configurar as permissões do IAM para o Amazon RDS](#oracle-kerberos.setting-up.CreateIAMRole).

Para habilitar a autenticação Kerberos usando seu Active Directory autogerenciado, você deve criar uma relação de confiança de floresta entre seu Active Directory autogerenciado e o AWS Managed Microsoft AD criado na etapa anterior. A relação de confiança pode ser unidirecional, na qual o AWS Managed Microsoft AD confia no Active Directory autogerenciado. A confiança também pode ser bidirecional, onde os dois Active Directories confiam um no outro. Para ter mais informações sobre como configurar confianças de floresta usando o Directory Service, consulte [Quando criar um relacionamento de confiança](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) no *Guia de administração do Directory Service*.

## Etapa 3: Configurar as permissões do IAM para o Amazon RDS
<a name="oracle-kerberos.setting-up.CreateIAMRole"></a>

Para chamar o Directory Service para você, o Amazon RDS precisa de um perfil do IAM que use a política gerenciada do IAM `AmazonRDSDirectoryServiceAccess`. Esta função permite que o Amazon RDS faça chamadas ao Directory Service.

**nota**  
Para o perfil permitir o acesso, o endpoint do AWS Security Token Service (AWS STS) deve estar ativado na Região da AWS correta de sua Conta da AWS. Os endpoints do AWS STS são ativados por padrão em todas as Regiões da AWS e você pode usá-los sem precisar tomar medidas adicionais. Para ter mais informações, consulte [ Ativar e desativar o AWS STS em uma Região da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate) no *Guia do usuário do IAM*.

### Criar uma função do IAM
<a name="oracle-kerberos.setting-up.CreateIAMRole.create-role"></a>

Quando você cria uma instância de banco de dados usando o Console de gerenciamento da AWS e o usuário do console tem a permissão `iam:CreateRole`, o console cria essa `rds-directoryservice-kerberos-access-role` automaticamente. Caso contrário, é necessário criar a função do IAM manualmente. Ao criar um perfil do IAM, escolha `Directory Service` e associe a política gerenciada `AmazonRDSDirectoryServiceAccess` da AWS a ele. 

Para ter mais informações sobre como criar funções do IAM para um serviço, consulte o tópico sobre como [Criar uma função para delegar permissões a um serviço da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html), no *Guia do usuário do IAM*.

**nota**  
A função do IAM usada para a autenticação do Windows para RDS para o Microsoft SQL Server não pode ser usada para o RDS for Oracle.

### Criar uma política de confiança do IAM manualmente
<a name="oracle-kerberos.setting-up.CreateIAMRole.trust-policy"></a>

Se preferir, você poderá criar políticas de recursos com as permissões exigidas em vez de usar a política gerenciada do IAM `AmazonRDSDirectoryServiceAccess`. Especifique `directoryservice.rds.amazonaws.com` e `rds.amazonaws.com` como entidades principais.

Recomendamos o uso das chaves de contexto de condição global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) em políticas de recursos para limitar as permissões que o Amazon RDS concede a outro serviço para um recurso específico. A maneira mais eficaz de se proteger contra o problema do substituto confuso é usar a chave de contexto de condição global `aws:SourceArn` com o ARN completo do recurso do Amazon RDS. Para obter mais informações, consulte [Prevenção do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

O exemplo a seguir mostra como é possível usar as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount` no Amazon RDS, a fim de evitar o problema do substituto confuso.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

Em relação a regiões de adesão, você também deve incluir uma entidade principal de serviço para essa região na forma de `directoryservice.rds.region_name.amazonaws.com`. Por exemplo, na região África (Cidade do Cabo), use a seguinte política de confiança:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "directoryservice.rds.af-south-1.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:rds:af-south-1:123456789012:db:mydbinstance"
        },
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

O perfil também deve ter a política do IAM a seguir.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:GetAuthorizedApplicationDetails"
      ],
    "Effect": "Allow",
    "Resource": "*"
    }
  ]
}
```

------

## Etapa 4: Criar e configurar usuários
<a name="oracle-kerberos.setting-up.create-users"></a>

 É possível criar usuários com a ferramenta Usuários e computadores do Active Directory, que faz parte dos Serviços de Domínio Active Directory e das ferramentas do Active Directory Lightweight Directory Services. Nesse caso, os *usuários* são pessoas ou entidades individuais que têm acesso ao diretório. 

Para criar usuários em um diretório do Directory Service, é necessário estar conectado a uma instância do Amazon EC2 baseada no Windows que seja membro do diretório do Directory Service. Ao mesmo tempo, é necessário estar conectado como um usuário que tenha privilégios para criar usuários. Para obter mais informações sobre como criar usuários no Microsoft Active Directory, consulte [Gerenciar usuários e grupos em AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) no *Directory ServiceGuia de administração*

## Etapa 5: Ativar o tráfego entre VPCs entre o diretório e a instância de banco de dados
<a name="oracle-kerberos.setting-up.vpc-peering"></a>

Se você planeja localizar o diretório e a instância de banco de dados na mesma VPC, ignore esta etapa e prossiga para [Etapa 6: Criar ou modificar uma instância de banco de dados Oracle](#oracle-kerberos.setting-up.create-modify).

Se você planeja localizar o diretório e a instância de banco de dados em VPCs ou contas da AWS diferentes, configure o tráfego entre VPCs usando o emparelhamento de VPCs ou o [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html). O procedimento a seguir habilita o tráfego entre VPCs usando o emparelhamento de VPCs. Siga as instruções em [O que é o emparelhamento de VPCs?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) no *Guia de emparelhamento do Amazon Virtual Private Cloud*.

**Como habilitar o tráfego entre VPCs usando o emparelhamento de VPCs**

1. Configure regras apropriadas de roteamento de VPC para garantir que o tráfego de rede possa fluir em ambos os sentidos.

1. Certifique-se de que o grupo de segurança da instância de banco de dados possa receber o tráfego de entrada do grupo de segurança do diretório. Para obter mais informações, consulte [ Práticas recomendadas para AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_best_practices.html) no *Guia deDirectory Service Administração*.

1. Garanta que não há nenhuma regra na lista de controle de acesso (ACL) de rede para bloquear o tráfego.

Se uma conta diferente da AWS for proprietária do diretório, é necessário compartilhá-lo.

**Como compartilhar o diretório entre contas da AWS.**

1. Inicie o compartilhamento do diretório com a conta da AWS na qual a instância de banco de dados será criada seguindo as instruções em [Tutorial: Compartilhar o diretório AWS Managed Microsoft AD para ingresso perfeito no domínio do EC2 ](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html) no *Directory ServiceGuia de administração*.

1. Faça login no console do Directory Service usando a conta para a instância de banco de dados e garanta que o domínio tenha o status `SHARED` antes de prosseguir.

1. Enquanto estiver conectado ao console do Directory Service usando a conta da instância de banco de dados, observe o valor do **Directory ID (ID do diretório)**. Use esse ID do diretório para associar a instância de banco de dados ao domínio.

## Etapa 6: Criar ou modificar uma instância de banco de dados Oracle
<a name="oracle-kerberos.setting-up.create-modify"></a>

Crie ou modifique uma instância de banco de dados do Oracle para ser usada com o diretório. É possível usar o console, a CLI ou a API do RDS para associar uma instância de banco de dados a um diretório. Você pode fazer isso por meio de uma das seguintes maneiras:
+ Crie uma instância de banco de dados do Oracle usando o console, o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) da CLI ou a operação de API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) do RDS.

  Para obter instruções, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
+ Modifique uma instância de banco de dados existente do Oracle usando o console, o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI ou a operação de API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) do RDS.

  Para obter instruções, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).
+ Restaure uma instância de banco de dados de um snapshot de banco de dados usando o console, o comando [ restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) da CLI ou a operação de API [ RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) do RDS.

  Para obter instruções, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md).
+ Restaure uma instância de banco de dados para determinado momento usando o console, o comando [ restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) da CLI ou a operação de API [ RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) do RDS.

  Para obter instruções, consulte [Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS](USER_PIT.md).

A autenticação Kerberos só é compatível com instâncias de banco de dados do Oracle em uma VPC. A instância de banco de dados pode estar na mesma VPC do diretório ou em uma VPC diferente. Ao criar ou modificar a instância de banco de dados, faça o seguinte:
+ Forneça o identificador de domínio (identificador `d-*`) que foi gerado quando você criou seu diretório.
+ Forneça o nome da função do IAM criada.
+ Certifique-se de que o security group da instância de banco de dados possa receber tráfego de entrada do security group de diretórios e enviar tráfego de saída para o diretório.

Ao usar o console para criar uma instância de banco de dados, selecione **Password and Kerberos authentication (Senha e autenticação Kerberos)** na seção **Database authentication (Autenticação de banco de dados)**. Escolha **Browse Directory (Procurar diretório)** e selecione o diretório ou escolha **Create a new directory (Criar um diretório)**.

![\[Configuração de autenticação Kerberos ao criar uma instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/kerberos-authentication.png)


Ao usar o console para modificar ou restaurar uma instância de banco de dados, escolha o diretório na seção **Kerberos authentication (Autenticação Kerberos)** ou escolha **Create a new directory (Criar um diretório)**.

![\[Configuração da autenticação Kerberos ao modificar ou restaurar uma instância de banco de dados\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/kerberos-auth-modify-restore.png)


Quando você usa a AWS CLI, são necessários os seguintes parâmetros para que a instância de banco de dados possa usar o diretório criado:
+ Para o parâmetro `--domain`, use o identificador de domínio (identificador "d-\$1") gerado quando o diretório foi criado.
+ Para o parâmetro `--domain-iam-role-name`, use a função criada que usa a política gerenciada `AmazonRDSDirectoryServiceAccess` do IAM.

Por exemplo, o comando da CLI a seguir modifica uma instância de banco de dados para usar um diretório.

Para Linux, macOS ou Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --domain d-ID \
    --domain-iam-role-name role-name
```

Para Windows:

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --domain d-ID ^
    --domain-iam-role-name role-name
```

**Importante**  
Se você modificar uma instância de banco de dados para permitir a autenticação Kerberos, reinicialize a instância de banco de dados após fazer a alteração.

**nota**  
*MANAGED\$1SERVICE\$1USER* é uma conta de serviço cujo nome é gerado aleatoriamente pelo Directory Service para RDS. Durante a configuração de autenticação Kerberos, o RDS for Oracle cria um usuário com o mesmo nome e atribui a ele o privilégio `CREATE SESSION`. O usuário do Oracle DB é identificado externamente como *MANAGED\$1SERVICE\$1USER@EXAMPLE.COM*, em que *EXAMPLE.COM* é o nome de seu domínio. Periodicamente, o RDS usa as credenciais fornecidas pelo Serviço de Diretório para efetuar logon no banco de dados Oracle. Depois, o RDS destrói imediatamente o cache do tíquete.

## Etapa 7: Criar logins do Oracle da autenticação Kerberos
<a name="oracle-kerberos.setting-up.create-logins"></a>

Use as credenciais de usuário mestre do Amazon RDS para se conectar à instância de banco de dados do Oracle como você faz com qualquer outra instância de banco de dados. A instância de banco de dados é ingressada no domínio AWS Managed Microsoft AD. Portanto, é possível provisionar logins e usuários do Oracle com base em usuários do Microsoft Active Directory em seu domínio. Para gerenciar permissões de banco de dados, conceda e revogue permissões padrão do Oracle para esses logins.

**Para permitir que um usuário do Microsoft Active Directory se autentique com o Oracle**

1. Conecte-se à instância de banco de dados Oracle usando suas credenciais de usuário Amazon RDS mestre.

1. Crie um usuário autenticado externamente no banco de dados Oracle.

   No exemplo a seguir, substitua `KRBUSER@CORP.EXAMPLE.COM` pelo nome de usuário e pelo nome de domínio.

   ```
   CREATE USER "KRBUSER@CORP.EXAMPLE.COM" IDENTIFIED EXTERNALLY; 
   GRANT CREATE SESSION TO "KRBUSER@CORP.EXAMPLE.COM";
   ```

   Os usuários (humanos e aplicações) de seu domínio agora podem se conectar à instância de banco de dados Oracle em uma máquina cliente conectada ao domínio usando a autenticação Kerberos. 

## Etapa 8: Configurar um cliente Oracle
<a name="oracle-kerberos.setting-up.configure-oracle-client"></a>

Para configurar um cliente Oracle, atenda aos seguintes requisitos:
+ Crie um arquivo de configuração chamado krb5.conf (Linux) ou krb5.ini (Windows) para apontar para o domínio. Configure o cliente Oracle para usar este arquivo de configuração.
+ Verifique se o tráfego pode fluir entre o host do cliente e o Directory Service pela porta DNS 53 por TCP/UDP, portas Kerberos (88 e 464 para Directory Service gerenciado) por TCP e porta LDAP 389 por TCP.
+ Verifique se o tráfego pode fluir entre o host do cliente e a instância de banco de dados pela porta do banco de dados.

Este é o conteúdo de amostra para AWS Managed Microsoft AD.

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
[domain_realm]
 .example.com = CORP.EXAMPLE.COM
 example.com = CORP.EXAMPLE.COM
```

Veja a seguir um exemplo de conteúdo para o Microsoft AD on-premises: No arquivo krb5.conf ou krb5.ini, substitua *on-prem-ad-server-name* pelo nome do seu servidor AD local.

```
[libdefaults]
 default_realm = ONPREM.COM
[realms]
 AWSAD.COM = {
  kdc = awsad.com
  admin_server = awsad.com
 }
 ONPREM.COM = {
  kdc = on-prem-ad-server-name
  admin_server = on-prem-ad-server-name
 }
[domain_realm]
 .awsad.com = AWSAD.COM
 awsad.com= AWSAD.COM
 .onprem.com = ONPREM.COM
 onprem.com= ONPREM.COM
```

**nota**  
Depois de configurar o arquivo krb5.ini ou krb5.conf, recomendamos que você reinicie o servidor.

Veja a seguir um exemplo de conteúdo sqlnet.ora para uma configuração do SQL\$1Plus:

```
SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5PRE,KERBEROS5)
SQLNET.KERBEROS5_CONF=path_to_krb5.conf_file
```

Para obter um exemplo de uma configuração do SQL Developer, consulte o [Documento 1609359.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1609359.1) no suporte da Oracle.

# Gerenciamento de uma instância de banco de dados em um domínio
<a name="oracle-kerberos-managing"></a>

É possível usar o console, a CLI ou a API do RDS para gerenciar a instância de banco de dados e suas relações com o Microsoft Active Directory. Por exemplo, é possível associar um Microsoft Active Directory para permitir a autenticação Kerberos. Também é possível desassociar um Microsoft Active Directory para desabilitar a autenticação Kerberos. Também é possível mover uma instância de banco de dados para ser autenticada externamente por um Microsoft Active Directory para outra.

Por exemplo, usando a CLI, é possível fazer o seguinte: 
+ Para tentar habilitar a autenticação Kerberos novamente para uma assinatura com falha, use o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI e especifique o ID do diretório atual da assinatura para a opção `--domain`.
+ Para desabilitar a autenticação Kerberos em uma instância de banco de dados, use o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI e especifique `none` para a opção `--domain`.
+ Para mover uma instância de banco de dados de um domínio para outro, use o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI e especifique o identificador de domínio do novo domínio para a opção `--domain`.

## Visualizar o status da associação ao domínio
<a name="oracle-kerberos-managing.understanding"></a>

Após criar ou modificar a instância de banco de dados, ela se tornará um membro do domínio. É possível visualizar o status da assinatura do domínio para a instância de banco de dados no console ou executando o comando [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) da CLI. O status da instância de banco de dados pode ser um dos seguintes: 
+ `kerberos-enabled` – a instância de banco de dados que tem a autenticação Kerberos habilitada.
+ `enabling-kerberos`: a AWS está no processo de habilitar a autenticação Kerberos nessa instância de bancos de dados.
+ `pending-enable-kerberos` – a habilitação da autenticação Kerberos está pendente nessa instância de banco de dados.
+ `pending-maintenance-enable-kerberos`: a AWS tentará habilitar a autenticação Kerberos na instância de bancos de dados durante a próxima janela de manutenção programada.
+ `pending-disable-kerberos` – a desabilitação da autenticação Kerberos está pendente nessa instância de banco de dados.
+ `pending-maintenance-disable-kerberos`: a AWS tentará desabilitar a autenticação Kerberos na instância de banco de dados durante a próxima janela de manutenção programada.
+ `enable-kerberos-failed`: um problema de configuração impediu que a AWS habilitasse a autenticação Kerberos na instância de banco de dados. Corrija o problema de configuração antes de emitir o comando novamente para modificar a instância de banco de dados.
+ `disabling-kerberos`: a AWS está no processo de desabilitar a autenticação Kerberos nessa instância de bancos de dados.

Uma solicitação para habilitar a autenticação Kerberos pode falhar por conta de um novo problema de conectividade de rede ou de uma função do IAM incorreta. Se a tentativa de habilitar a autenticação Kerberos falhar ao criar ou modificar uma instância de banco de dados, verifique se você está usando a função do IAM correta. Depois, modifique a instância de banco de dados para ingressar no domínio.

**nota**  
Somente a autenticação Kerberos com o Amazon RDS para Oracle envia tráfego para os servidores DNS do domínio. Todas as outras solicitações de DNS são tratadas como acesso à rede de saída nas instâncias de bancos de dados que executam o Oracle. Para obter mais informações sobre o acesso à rede de saída com o Amazon RDS para Oracle, consulte [Configuração de um servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS).

## Chaves Kerberos de alternância forçada
<a name="oracle-kerberos-managing.rotation"></a>

Uma chave secreta é compartilhada entre AWS Managed Microsoft AD e o Amazon RDS para Oracle para a instância de banco de dados Oracle. Essa chave é alternada automaticamente a cada 45 dias. É possível usar o procedimento do Amazon RDS a seguir para forçar a rotação dessa chave.

```
SELECT rdsadmin.rdsadmin_kerberos_auth_tasks.rotate_kerberos_keytab AS TASK_ID FROM DUAL;
```

**nota**  
Em uma configuração de réplica de leitura, esse procedimento está disponível apenas na instância de banco de dados de origem e não na réplica de leitura.

A instrução `SELECT` retorna o ID da tarefa em um tipo de dados `VARCHAR2`. Você pode visualizar o status de uma tarefa em andamento em um arquivo bdump. Os arquivos bdump estão localizados no diretório `/rdsdbdata/log/trace`. Cada nome de arquivo bdump está no seguinte formato.

```
dbtask-task-id.log
```

Você pode visualizar o resultado exibindo o arquivo de saída da tarefa.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Substitua *`task-id`* pelo ID da tarefa retornado pelo procedimento.

**nota**  
As tarefas são executadas de forma assíncrona.

# Conectar-se ao Oracle com a autenticação Kerberos
<a name="oracle-kerberos-connecting"></a>

Esta seção pressupõe que você tenha configurado o cliente Oracle conforme descrito em [Etapa 8: Configurar um cliente Oracle](oracle-kerberos-setting-up.md#oracle-kerberos.setting-up.configure-oracle-client). Para conectar-se ao banco de dados Oracle com a autenticação Kerberos, faça login usando o tipo de autenticação Kerberos. Por exemplo, após iniciar o Oracle SQL Developer, selecione **Autenticação do Kerberos** como o tipo de autenticação, conforme mostrado no exemplo a seguir. 

![\[Mostra a caixa de diálogo Novo/Selecionar conexão do banco de dados no Oracle SQL Developer. A caixa de seleção Autenticação do Kerberos está marcada.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ora-kerberos-auth.png)


Para conectar-se ao Oracle com a autenticação Kerberos com SQL\$1Plus:

1. Em um prompt de comando, execute o seguinte comando:

   ```
   kinit username
   ```

   Substitua *`username`* pelo nome de usuário e, no prompt, insira a senha armazenada no Microsoft Active Directory para o usuário.

1. Abra o SQL\$1Plus e conecte-se usando o nome de DNS e o número da porta da instância de banco de dados do Oracle.

   Para obter mais informações sobre como se conectar à instância de banco de dados no SQL\$1Plus, consulte [Conectar-se à sua instância de banco de dados do Linux usando o SQL\$1Plus](USER_ConnectToOracleInstance.SQLPlus.md).

**dica**  
Se estiver usando um cache nativo do Windows, você também poderá definir o parâmetro `SQLNET.KERBEROS5_CC_NAME` para `OSMSFT://` ou `MSLSA` no arquivo sqlnet.ora para usar as credenciais armazenadas no Microsoft Active Directory.

# Configurar o acesso UTL\$1HTTP usando certificados e uma carteira Oracle
<a name="Oracle.Concepts.ONA"></a>

O Amazon RDS comporta o acesso à rede de saída nas instâncias de banco de dados Oracle. Para conectar sua instância de banco de dados à rede, você pode usar os seguintes pacotes PL/SQL:

`UTL_HTTP`  
Este pacote faz chamadas HTTP do SQL e PL/SQL. Você pode usá-lo para acessar dados na Internet com HTTP. Para obter mais informações, consulte [UTL\$1HTTP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_HTTP.html#GUID-A85D2D1F-90FC-45F1-967F-34368A23C9BB) na documentação da Oracle.

`UTL_TCP`  
Este pacote fornece funcionalidade de acesso TCP/IP do lado do cliente em PL/SQL. Esse pacote é útil para aplicações PL/SQL que usam protocolos de Internet e e-mail. Para obter mais informações, consulte [UTL\$1TCP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_TCP.html#GUID-348AFFE8-78B2-4217-AE73-384F46A1D292)na documentação da Oracle.

`UTL_SMTP`  
Este pacote fornece interfaces aos comandos SMTP que permitem que um cliente despache e-mails para um servidor SMTP. Para obter mais informações, consulte [UTL\$1SMTP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_SMTP.html#GUID-F0065C52-D618-4F8A-A361-7B742D44C520) na documentação da Oracle.

Ao concluir as tarefas a seguir, você pode configurar o `UTL_HTTP.REQUEST` para trabalhar com sites que exigem certificados de autenticação de cliente durante o handshake SSL. Você também pode configurar a autenticação por senha para acesso `UTL_HTTP` a sites modificando os comandos de geração da carteira Oracle e o procedimento `DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACE`. Para obter mais informações, consulte [DBMS\$1NETWORK\$1ACL\$1ADMIN](https://docs.oracle.com/en/database/oracle/oracle-database/21/arpls/DBMS_NETWORK_ACL_ADMIN.html) na documentação do Oracle Database.

**nota**  
Você pode adaptar as seguintes tarefas para o `UTL_SMTP`, que permite enviar e-mails por SSL/TLS (incluindo o [Amazon Simple Email Service](https://aws.amazon.com/ses/)).

**Topics**
+ [

## Considerações ao configurar o acesso UTL\$1HTTP
](#utl_http-considerations)
+ [

## Etapa 1: obter o certificado raiz de um site
](#website-root-certificate)
+ [

## Etapa 2: criar uma carteira Oracle
](#create-oracle-wallet)
+ [

## Etapa 3: baixar a carteira Oracle para sua instância do RDS for Oracle
](#upload-wallet-to-instance)
+ [

## Etapa 4: conceder permissões de usuário para a carteira Oracle
](#config-oracle-wallet-user)
+ [

## Etapa 5: configurar o acesso a um site da sua instância de banco de dados
](#config-website-access)
+ [

## Etapa 6: testar conexões de sua instância de banco de dados para um site
](#test_utl_http)

## Considerações ao configurar o acesso UTL\$1HTTP
<a name="utl_http-considerations"></a>

Antes de configurar o acesso, pense no seguinte:
+ É possível usar SMTP com a opção UTL\$1MAIL. Para obter mais informações, consulte [Oracle UTL\$1MAIL](Oracle.Options.UTLMAIL.md).
+ O nome do servidor de nomes de domínio (DNS) do host remoto pode ser um dos seguintes: 
  + Resolvível publicamente.
  + O endpoint de uma instância de banco de dados do Amazon RDS.
  + Resolvível através de um servidor DNS personalizado. Para obter mais informações, consulte [Configuração de um servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS). 
  + O nome DNS privado de uma instância do Amazon EC2 na mesma VPC ou em uma VPC emparelhada. Nesse caso, certifique-se de que o nome seja resolvível através de um servidor DNS personalizado. Como alternativa, para usar o DNS fornecido pela Amazon, você pode habilitar o atributo `enableDnsSupport` nas configurações da VPC e habilitar o suporte à resolução de DNS para a conexão de emparelhamento de VPC. Para obter mais informações, consulte [Suporte ao DNS na VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) e [Modificação da conexão de emparelhamento de VPC](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html#modify-peering-connections). 
  + Para se conectar com segurança a recursos remotos de SSL/TLS, você pode criar e carregar carteiras Oracle personalizadas. Usando o recurso de Integração do Amazon S3 com o Amazon RDS for Oracle, você pode baixar uma carteira do Amazon S3 em instâncias de banco de dados Oracle. Para obter informações sobre a integração do Amazon S3 para Oracle, consulte [Integração do Amazon S3](oracle-s3-integration.md).
+ Você poderá estabelecer links de banco de dados entre instâncias de bancos de dados Oracle em um endpoint SSL/TLS se a opção Oracle SSL estiver configurada para cada instância. Nenhuma outra configuração é necessária. Para obter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md).

## Etapa 1: obter o certificado raiz de um site
<a name="website-root-certificate"></a>

Para que a instância de banco de dados do RDS para Oracle faça conexões seguras com um site, adicione o certificado de CA raiz. O Amazon RDS usa o certificado raiz para assinar o certificado do site para a carteira Oracle.

Você pode obter o certificado raiz de várias maneiras. Por exemplo, você pode fazer o seguinte:

1. Use um servidor Web para visitar o site protegido pelo certificado.

1. Baixe o certificado raiz usado para assinatura.

Para serviços da AWS, os certificados geralmente podem ser encontrados no [Repositório de serviços de confiança da Amazon](https://www.amazontrust.com/repository/).

## Etapa 2: criar uma carteira Oracle
<a name="create-oracle-wallet"></a>

Crie uma carteira Oracle que contenha os certificados do servidor Web e os certificados de autenticação do cliente. A instância Oracle do RDS usa o certificado do servidor Web para estabelecer uma conexão segura com o site. O site precisa do certificado do cliente para autenticar o usuário do banco de dados Oracle.

Talvez você queira configurar conexões seguras sem usar certificados de cliente para autenticação. Nesse caso, você pode ignorar as etapas do armazenamento de chaves Java no procedimento a seguir.

**Para criar uma carteira Oracle**

1. Coloque os certificados raiz e do cliente em um único diretório e, em seguida, mude para esse diretório.

1. Converta o certificado do cliente .p12 para o repositório de chaves Java.
**nota**  
Se não estiver usando certificados de cliente para autenticação, ignore esta etapa.

   O exemplo a seguir converte o certificado do cliente chamado *client\$1certificate.p12* para o repositório de chaves Java chamado *client\$1keystore.jks*. O repositório de chaves é então incluído na carteira Oracle. A senha do repositório de chaves é *P12PASSWORD*.

   ```
   orapki wallet pkcs12_to_jks -wallet ./client_certificate.p12 -jksKeyStoreLoc ./client_keystore.jks -jksKeyStorepwd P12PASSWORD
   ```

1. Crie um diretório para sua carteira Oracle diferente do diretório de certificados.

   O exemplo a seguir cria o diretório `/tmp/wallet`.

   ```
   mkdir -p /tmp/wallet
   ```

1. Crie uma carteira Oracle no diretório da carteira.

   O exemplo a seguir define a senha da carteira Oracle como *P12PASSWORD*, que é a mesma senha usada pelo repositório de chaves Java em uma etapa anterior. Usar a mesma senha é conveniente, mas não é necessário. O parâmetro `-auto_login` ativa o recurso de login automático para que você não precise especificar uma senha toda vez que quiser acessá-la.
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

   ```
   orapki wallet create -wallet /tmp/wallet -pwd P12PASSWORD -auto_login
   ```

1. Adicione o repositório de chaves Java à sua carteira Oracle.
**nota**  
Se não estiver usando certificados de cliente para autenticação, ignore esta etapa.

   O exemplo a seguir inclui o repositório de chaves *client\$1keystore.jks* para a carteira Oracle chamada */tmp/wallet*. Neste exemplo, você especifica a mesma senha para o repositório de chaves Java e para a carteira Oracle.

   ```
   orapki wallet jks_to_pkcs12 -wallet /tmp/wallet -pwd P12PASSWORD -keystore ./client_keystore.jks -jkspwd P12PASSWORD
   ```

1. Adicione o certificado raiz do seu site de destino à carteira Oracle.

   O exemplo a seguir inclui um certificado chamado *Root\$1CA.cer*.

   ```
   orapki wallet add -wallet /tmp/wallet -trusted_cert -cert ./Root_CA.cer -pwd P12PASSWORD
   ```

1. Inclua qualquer certificado intermediário.

   O exemplo a seguir inclui um certificado chamado *Intermediate.cer*. Repita essa etapa quantas vezes for necessário para carregar todos os certificados intermediários.

   ```
   orapki wallet add -wallet /tmp/wallet -trusted_cert -cert ./Intermediate.cer -pwd P12PASSWORD
   ```

1. Confirme se sua carteira Oracle recém-criada tem os certificados necessários.

   ```
   orapki wallet display -wallet /tmp/wallet -pwd P12PASSWORD
   ```

## Etapa 3: baixar a carteira Oracle para sua instância do RDS for Oracle
<a name="upload-wallet-to-instance"></a>

Nesta etapa, você carrega sua carteira Oracle para o Simple Storage Service (Simple Storage Service (Amazon S3)) e, em seguida, baixa a carteira do Simple Storage Service (Amazon S3) para sua instância do RDS for Oracle.

**Para baixar sua carteira Oracle em sua instância de banco de dados do RDS for Oracle**

1. Conclua os pré-requisitos para a integração do Amazon S3 com o Oracle e adicione a opção `S3_INTEGRATION` à sua instância de banco de dados Oracle. Certifique-se de que a função do IAM para a opção tenha acesso ao bucket do Amazon S3 que você está usando.

   Para obter mais informações, consulte [Integração do Amazon S3](oracle-s3-integration.md).

1. Faça login na sua instância de banco de dados como o usuário primário e crie um diretório Oracle para manter a carteira Oracle.

   O exemplo a seguir cria um diretório Oracle chamado *WALLET\$1DIR*.

   ```
   EXEC rdsadmin.rdsadmin_util.create_directory('WALLET_DIR');
   ```

   Para obter mais informações, consulte [Criar e eliminar diretórios no espaço de armazenamento de dados principal](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.NewDirectories).

1. Carregue a carteira Oracle para o seu bucket do Simple Storage Service (Amazon S3).

   Você pode usar qualquer técnica de carregamento compatível.

1. Se estiver carregando novamente uma carteira Oracle, exclua a carteira existente. Caso contrário, vá para a próxima etapa.

   O exemplo a seguir remove a carteira existente chamada *cwallet.sso*.

   ```
   EXEC UTL_FILE.FREMOVE ('WALLET_DIR','cwallet.sso');
   ```

1. Baixe a carteira Oracle do seu bucket do Simple Storage Service (Simple Storage Service (Amazon S3)) para a instância de banco de dados Oracle.

   O exemplo a seguir baixa a carteira chamada *cwallet.sso* do bucket do Amazon S3 chamado *my\$1s3\$1bucket* para o diretório da instância de banco de dados chamado *WALLET\$1DIR*.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
         p_bucket_name    =>  'my_s3_bucket', 
         p_s3_prefix      =>  'cwallet.sso', 
         p_directory_name =>  'WALLET_DIR') 
      AS TASK_ID FROM DUAL;
   ```

1. (Opcional) Baixe uma carteira Oracle protegida por senha.

   Baixe esta carteira somente se quiser exigir uma senha para cada uso da carteira. O exemplo a seguir baixa a carteira protegida por senha *ewallet.p12*.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
         p_bucket_name    =>  'my_s3_bucket', 
         p_s3_prefix      =>  'ewallet.p12', 
         p_directory_name =>  'WALLET_DIR') 
      AS TASK_ID FROM DUAL;
   ```

1. Verifique o status da sua tarefa do banco de dados.

   Substitua o ID da tarefa retornado das etapas anteriores para *dbtask-1234567890123-4567.log* no exemplo a seguir.

   ```
   SELECT TEXT FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1234567890123-4567.log'));
   ```

1. Verifique o conteúdo do diretório que você está usando para armazenar a carteira Oracle.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'WALLET_DIR'));
   ```

   Para obter mais informações, consulte [Listagem de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ListDirectories).

## Etapa 4: conceder permissões de usuário para a carteira Oracle
<a name="config-oracle-wallet-user"></a>

Você pode criar um novo usuário do banco de dados ou configurar um usuário existente. Em ambos os casos, você deve configurar o usuário para acessar a carteira Oracle para conexões seguras e autenticação do cliente usando certificados.

**Para conceder permissões do usuário para a carteira Oracle**

1. Faça login na instância de banco de dados do RDS for Oracle como usuário primário.

1. Se não quiser configurar um usuário do banco de dados existente, crie um novo usuário. Caso contrário, vá para a próxima etapa.

   O exemplo a seguir cria um usuário do banco de dados chamado *my-user*.

   ```
   CREATE USER my-user IDENTIFIED BY my-user-pwd;
   GRANT CONNECT TO my-user;
   ```

1. Conceda permissão ao usuário do banco de dados no diretório que contém sua carteira Oracle.

   O exemplo a seguir concede acesso de leitura ao usuário *my-user* no diretório *WALLET\$1DIR*.

   ```
   GRANT READ ON DIRECTORY WALLET_DIR TO my-user;
   ```

1. Conceda permissão ao usuário do banco de dados para usar o pacote `UTL_HTTP`.

   O programa PL/SQL a seguir concede acesso `UTL_HTTP` ao usuário *my-user*.

   ```
   BEGIN 
     rdsadmin.rdsadmin_util.grant_sys_object('UTL_HTTP', UPPER('my-user')); 
     END;
   /
   ```

1. Conceda permissão ao usuário do banco de dados para usar o pacote `UTL_FILE`.

   O programa PL/SQL a seguir concede acesso `UTL_FILE` ao usuário *my-user*.

   ```
   BEGIN 
     rdsadmin.rdsadmin_util.grant_sys_object('UTL_FILE', UPPER('my-user')); 
     END;
   /
   ```

## Etapa 5: configurar o acesso a um site da sua instância de banco de dados
<a name="config-website-access"></a>

Nesta etapa, você configura o usuário do banco de dados Oracle para que ele possa se conectar ao site de destino usando o `UTL_HTTP`, a carteira Oracle carregada e o certificado do cliente. Para obter mais informações, consulte [Configuring Access Control to an Oracle Wallet](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-fine-grained-access-in-pl-sql-packages-and-types.html#GUID-0BCB5925-A40F-4507-95F9-5DA4A1919EBD) (Configurar o controle de acesso a uma carteira Oracle) na documentação do Oracle Database.

**Para configurar o acesso a um site da instância de banco de dados do RDS for Oracle**

1. Faça login na instância de banco de dados do RDS for Oracle como usuário primário.

1. Crie uma entrada de controle de acesso ao host (ACE) para o usuário e o site de destino em uma porta segura.

   O exemplo a seguir configura *my-user* para acessar o *secret.encrypted-website.com* na porta segura 443.

   ```
   BEGIN
     DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
       host       => 'secret.encrypted-website.com', 
       lower_port => 443,
       upper_port => 443,
       ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                 principal_name => 'my-user',
                                 principal_type => xs_acl.ptype_db)); 
                              -- If the program unit results in PLS-00201, set
                              -- the principal_type parameter to 2 as follows:
                              -- principal_type => 2));
   END;
   /
   ```
**Importante**  
A unidade do programa anterior pode ocasionar o seguinte erro: `PLS-00201: identifier 'XS_ACL' must be declared`. Se esse erro for exibido, substitua a linha que atribui um valor a `principal_type` com a seguinte linha e, depois, execute novamente a unidade do programa:  

   ```
   principal_type => 2));
   ```
Para ter mais informações sobre constantes no pacote PL/SQL `XS_ACL`, consulte o [https://docs.oracle.com/en/database/oracle/oracle-database/19/dbfsg/XS_ACL-package.html#GUID-A157FB28-FE23-4D30-AAEB-8224230517E7](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbfsg/XS_ACL-package.html#GUID-A157FB28-FE23-4D30-AAEB-8224230517E7) na documentação do Oracle Database.

   Para obter mais informações, consulte [Configuring Access Control for External Network Services](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-fine-grained-access-in-pl-sql-packages-and-types.html#GUID-3D5B66BC-0277-4887-9CD1-97DB44EB5213) (Configuração do controle de acesso para serviços de rede externos) na documentação do Oracle Database.

1. (Opcional) Crie uma ACE para seu usuário e site de destino na porta padrão. 

   Talvez seja necessário usar a porta padrão se algumas páginas da Web forem exibidas da porta padrão do servidor Web (80) em vez da porta segura (443).

   ```
   BEGIN
     DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
       host       => 'secret.encrypted-website.com', 
       lower_port => 80,
       upper_port => 80,
       ace        => xs$ace_type(privilege_list => xs$name_list('http'),
                                 principal_name => 'my-user',
                                 principal_type => xs_acl.ptype_db)); 
                              -- If the program unit results in PLS-00201, set
                              -- the principal_type parameter to 2 as follows:
                              -- principal_type => 2));
   END;
   /
   ```

1. Confirme se as entradas de controle de acesso existem.

   ```
   SET LINESIZE 150
   COLUMN HOST FORMAT A40
   COLUMN ACL FORMAT A50
   
   SELECT HOST, LOWER_PORT, UPPER_PORT, ACL
     FROM DBA_NETWORK_ACLS
   ORDER BY HOST;
   ```

1. Conceda permissão ao usuário do banco de dados para usar o pacote `UTL_HTTP`.

   O programa PL/SQL a seguir concede acesso `UTL_HTTP` ao usuário *my-user*.

   ```
   BEGIN 
     rdsadmin.rdsadmin_util.grant_sys_object('UTL_HTTP', UPPER('my-user')); 
     END;
   /
   ```

1. Confirme se existem listas de controle de acesso relacionadas.

   ```
   SET LINESIZE 150
   COLUMN ACL FORMAT A50
   COLUMN PRINCIPAL FORMAT A20
   COLUMN PRIVILEGE FORMAT A10
   
   SELECT ACL, PRINCIPAL, PRIVILEGE, IS_GRANT,
          TO_CHAR(START_DATE, 'DD-MON-YYYY') AS START_DATE,
          TO_CHAR(END_DATE, 'DD-MON-YYYY') AS END_DATE
     FROM DBA_NETWORK_ACL_PRIVILEGES
   ORDER BY ACL, PRINCIPAL, PRIVILEGE;
   ```

1. Conceda permissão ao usuário do banco de dados para usar certificados para autenticação de cliente e sua carteira Oracle para conexões.
**nota**  
Se não estiver usando certificados de cliente para autenticação, ignore esta etapa.

   ```
   DECLARE
     l_wallet_path all_directories.directory_path%type;
   BEGIN
     SELECT DIRECTORY_PATH 
       INTO l_wallet_path 
       FROM ALL_DIRECTORIES
      WHERE UPPER(DIRECTORY_NAME)='WALLET_DIR';
     DBMS_NETWORK_ACL_ADMIN.APPEND_WALLET_ACE(
       wallet_path => 'file:/' || l_wallet_path,
       ace         =>  xs$ace_type(privilege_list => xs$name_list('use_client_certificates'),
                                   principal_name => 'my-user',
                                   principal_type => xs_acl.ptype_db));
   END;
   /
   ```

## Etapa 6: testar conexões de sua instância de banco de dados para um site
<a name="test_utl_http"></a>

Nesta etapa, você configura o usuário do banco de dados para que ele possa se conectar ao site usando o `UTL_HTTP`, a carteira Oracle carregada e o certificado do cliente.

**Para configurar o acesso a um site da instância de banco de dados do RDS for Oracle**

1. Faça login na instância de banco de dados do RDS for Oracle como usuário do banco de dados com permissões `UTL_HTTP`.

1. Confirme se uma conexão com o site de destino pode resolver o endereço do host.

   O exemplo a seguir obtém o endereço do host de *secret.encrypted-website.com*.

   ```
   SELECT UTL_INADDR.GET_HOST_ADDRESS(host => 'secret.encrypted-website.com')
     FROM DUAL;
   ```

1. Teste uma conexão com falha.

   A consulta a seguir falha porque `UTL_HTTP` requer a localização da carteira Oracle com os certificados.

   ```
   SELECT UTL_HTTP.REQUEST('secret.encrypted-website.com') FROM DUAL;
   ```

1. Teste o acesso ao site usando `UTL_HTTP.SET_WALLET` e selecionando do `DUAL`.

   ```
   DECLARE
     l_wallet_path all_directories.directory_path%type;
   BEGIN
     SELECT DIRECTORY_PATH
       INTO l_wallet_path 
       FROM ALL_DIRECTORIES
      WHERE UPPER(DIRECTORY_NAME)='WALLET_DIR';
     UTL_HTTP.SET_WALLET('file:/' || l_wallet_path);
   END;
   /
   
   SELECT UTL_HTTP.REQUEST('secret.encrypted-website.com') FROM DUAL;
   ```

1. (Opcional) Teste o acesso ao site armazenando sua consulta em uma variável e usando `EXECUTE IMMEDIATE`.

   ```
   DECLARE
     l_wallet_path all_directories.directory_path%type;
     v_webpage_sql VARCHAR2(1000);
     v_results     VARCHAR2(32767);
   BEGIN
     SELECT DIRECTORY_PATH
       INTO l_wallet_path 
       FROM ALL_DIRECTORIES
      WHERE UPPER(DIRECTORY_NAME)='WALLET_DIR';
     v_webpage_sql := 'SELECT UTL_HTTP.REQUEST(''secret.encrypted-website.com'', '''', ''file:/' ||l_wallet_path||''') FROM DUAL';
     DBMS_OUTPUT.PUT_LINE(v_webpage_sql);
     EXECUTE IMMEDIATE v_webpage_sql INTO v_results;
     DBMS_OUTPUT.PUT_LINE(v_results);
   END;
   /
   ```

1. (Opcional) Encontre a localização do sistema de arquivos do diretório da carteira Oracle.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'WALLET_DIR'));
   ```

   Use a saída do comando anterior para fazer uma solicitação HTTP. Por exemplo, se o diretório for *rdsdbdata/userdirs/01*, execute a consulta a seguir.

   ```
   SELECT UTL_HTTP.REQUEST('https://secret.encrypted-website.com/', '', 'file://rdsdbdata/userdirs/01') 
   FROM   DUAL;
   ```

# Trabalhar com CDBs no RDS para Oracle
<a name="oracle-multitenant"></a>

Na arquitetura multilocatário do Oracle, um banco de dados de contêiner (CDB) pode incluir bancos de dados conectáveis (PDBs) criados pelo cliente. Para obter mais informações sobre CDBs, consulte [Introduction to the Multitenant Architecture](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22) na documentação do Oracle Database.

**Topics**
+ [

# Visão geral dos CDBs RDS para Oracle
](Oracle.Concepts.CDBs.md)
+ [

# Configurar um CDB RDS para Oracle
](oracle-cdb.configuring.md)
+ [

# Fazer backup e restaurar um CDB
](Oracle.Concepts.single-tenant.snapshots.md)
+ [

# Converter um não CDB RDS para Oracle em um CDB
](oracle-cdb-converting.md)
+ [

# Converter a configuração de locatário único em multilocatário
](oracle-single-tenant-converting.md)
+ [

# Adicionar um banco de dados de locatários do RDS for Oracle à sua instância de CDB
](oracle-cdb-configuring.adding.pdb.md)
+ [

# Modificando um banco de dados de locatários do RDS para Oracle
](oracle-cdb-configuring.modifying.pdb.md)
+ [

# Excluindo um banco de dados de locatários do RDS for Oracle do seu CDB
](oracle-cdb-configuring.deleting.pdb.md)
+ [

# Visualizando detalhes do banco de dados do inquilino
](oracle-cdb-configuring.describing.pdb.md)
+ [

# Fazer upgrade de um CDB
](Oracle.Concepts.single-tenant.upgrades.md)

# Visão geral dos CDBs RDS para Oracle
<a name="Oracle.Concepts.CDBs"></a>

Você pode criar uma instância de banco de dados do RDS para Oracle como um banco de dados de contêiner (CDB) ao executar o Oracle Database 19c ou posterior. A partir do Oracle Database 21c, todos os bancos de dados são CDBs. Um CDB é diferente de um não CDB porque pode conter bancos de dados conectáveis (PDBs), que são chamados de bancos de dados de locatário no RDS para Oracle. Um PDB é uma coleção portátil de esquemas e objetos que aparece para uma aplicação como um banco de dados separado.

Você vai criar o banco de dados de locatários (PDB) inicial ao criar a instância de CDB. No RDS para Oracle, a aplicação cliente interage com um PDB e não com um CDB. Sua experiência com um PDB é majoritariamente idêntica à experiência com um não CDB.

**Topics**
+ [

## Configuração de multilocatário da arquitetura CDB
](#multi-tenant-configuration)
+ [

## Configuração de locatário único da arquitetura CDB
](#Oracle.Concepts.single-tenant)
+ [

## Opções de criação e conversão em CDBs
](#oracle-cdb-creation-conversion)
+ [

## Contas de usuário e privilégios em um CDB
](#Oracle.Concepts.single-tenant.users)
+ [

## Famílias de grupos de parâmetros em um CDB
](#Oracle.Concepts.single-tenant.parameters)
+ [

## Limitações do RDS for CDBs Oracle
](#Oracle.Concepts.single-tenant-limitations)

## Configuração de multilocatário da arquitetura CDB
<a name="multi-tenant-configuration"></a>

O RDS para Oracle é compatível com a configuração de multilocatário da arquitetura multilocatária da Oracle, também chamada de *arquitetura CDB*. Nessa configuração, a instância de CDB do RDS para Oracle pode conter bancos de dados de um a trinta locatários, dependendo da edição do banco de dados e de quaisquer licenças de opção necessárias. No banco de dados Oracle, um banco de dados de locatários é um PDB. Sua instância de banco de dados deve usar a versão 19.0.0.0.ru-2022-01.rur-2022.r1 ou posterior.

**nota**  
A configuração do Amazon RDS é chamada de “multi-tenant”, em vez de “multitenant”, porque é um recurso do Amazon RDS, não apenas do mecanismo de banco de dados Oracle. Da mesma forma, o termo “locatário” do RDS refere-se a qualquer locatário em uma configuração do RDS, não apenas aos PDBs da Oracle. Na documentação do RDS, o termo “multilocatário da Oracle” (Oracle multitenant), sem hífen, refere-se exclusivamente à arquitetura CDB de banco de dados Oracle, que é compatível com implantações on-premises e do RDS.

Agora, é possível definir as seguintes configurações:
+ Nome do banco de dados do locatário
+ Nome de usuário mestre do banco de dados locatário
+ Senha principal do banco de dados de locatário (integrada opcionalmente ao Secrets Manager)
+ Conjunto de caracteres de banco de dados locatário
+ Conjunto de caracteres nacionais do banco de dados do inquilino

O conjunto de caracteres do banco de dados locatário pode ser diferente do conjunto de caracteres do CDB. O mesmo se aplica ao conjunto de caracteres nacionais. Depois de criar seu banco de dados locatário inicial, você pode criar, modificar ou excluir bancos de dados locatário usando as APIs do RDS. O nome do CDB é padronizado como `RDSCDB` e não pode ser alterado. Para obter mais informações, consulte [Configurações para instâncias de banco de dados](USER_CreateDBInstance.Settings.md) e [Modificando um banco de dados de locatários do RDS para Oracle](oracle-cdb-configuring.modifying.pdb.md).

## Configuração de locatário único da arquitetura CDB
<a name="Oracle.Concepts.single-tenant"></a>

O RDS para Oracle é compatível com a configuração legada da arquitetura multilocatário da Oracle chamada configuração de locatário único. Nessa configuração, uma instância CDB RDS para Oracle pode conter apenas um locatário (PDB). Não será possível criar mais PDBs posteriormente.

## Opções de criação e conversão em CDBs
<a name="oracle-cdb-creation-conversion"></a>

O Oracle Database 21c só é compatível com CDBs, enquanto o Oracle Database 19c é compatível com CDBs e não CDBs. Todas as instâncias do CDB RDS para Oracle são compatíveis com as configurações de multilocatário e locatário único.

### Opções de criação, conversão e atualização para a arquitetura de banco de dados Oracle
<a name="oracle-cdb-creation-conversion.architecture"></a>

A tabela a seguir mostra as diferentes opções de arquitetura para criação e atualização de bancos de dados RDS para Oracle.


| Versão | Opções de criação de banco de dados | Opções de conversão de arquitetura | Destinos de upgrade da versão principal | 
| --- | --- | --- | --- | 
| Oracle Database 21c | Somente arquitetura CDB | N/D | N/D | 
| Oracle Database 19c | Arquitetura CDB ou não CDB | Arquitetura não CDB para CDB (RU de abril de 2021 ou posterior) | CDB do Oracle Database 21c | 

Conforme mostrado na tabela anterior, não é possível atualizar de um não CDB para um CDB diretamente em uma nova versão principal. Mas você pode converter um não CDB Oracle Database 19c em um CDB Oracle Database 19c, depois fazer upgrade do CDB Oracle Database 19c para CDB Oracle Database 21c. Para obter mais informações, consulte [Converter um não CDB RDS para Oracle em um CDB](oracle-cdb-converting.md).

### Opções de conversão para configurações de arquitetura CDB
<a name="oracle-cdb-creation-conversion.configuration"></a>

A tabela a seguir mostra as diferentes opções para converter a configuração de arquitetura de uma instância de banco de dados RDS para Oracle.


| Arquitetura e configuração atuais | Conversão para a configuração de locatário único da arquitetura CDB | Conversão para a configuração de multilocatário da arquitetura CDB | Conversão para a arquitetura não CDB | 
| --- | --- | --- | --- | 
| Não CDB | Compatível | Compatível\$1 | N/D | 
| CDB usando a configuração de locatário único | N/D | Compatível | Não compatível | 
| CDB usando a configuração multilocatário | Não compatível | N/D | Não compatível | 

\$1 Não é possível converter um não CDB na configuração de multilocatário em uma única operação. Quando você converte um não CDB em CDB, o CDB está na configuração de locatário único. Você pode converter a configuração de locatário único na configuração de multilocatário em uma operação separada.

## Contas de usuário e privilégios em um CDB
<a name="Oracle.Concepts.single-tenant.users"></a>

Na arquitetura multilocatário do Oracle, todas as contas de usuário são usuários comuns ou usuários locais. Um usuário comum do CDB é um usuário de banco de dados cuja única identidade e senha são conhecidas na raiz CDB e em todos os PDB existentes e futuros. Em contraste, um usuário local existe somente em um único PDB.

O usuário principal do RDS é uma conta de usuário local no PDB, que você nomeia ao criar sua instância de banco de dados. Se você criar novas contas de usuário, esses usuários também serão usuários locais residentes no PDB. Você não pode usar nenhuma conta de usuário para criar novos PDBs ou modificar o estado do PDB existente.

O usuário `rdsadmin` é uma conta de usuário comum. Você pode executar pacotes do RDS para Oracle que existem nesta conta, mas não pode fazer login como `rdsadmin`. Para obter mais informações, consulte [Sobre usuários comuns e usuários locais](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-security-for-oracle-database-users.html#GUID-BBBD9904-F2F3-442B-9AFC-8ACDD9A588D8) na documentação da Oracle.

Para usuários principais nas configurações multilocatário e de locatário único, você pode usar credenciais que são autogerenciadas ou gerenciadas pelo AWS Secrets Manager. Na configuração de locatário único, você usa comandos da CLI em nível de instância, como `create-db-instance` para senhas principais gerenciadas. Na configuração multilocatário, você usa comandos do banco de dados de locatário, como `create-tenant-database` para senhas principais gerenciadas. Para ter mais informações sobre a integração do Secrets Manager, consulte [Gerenciar a senha do usuário principal para um banco de dados de locatário do RDS para Oracle com o Secrets Manager](rds-secrets-manager.md#rds-secrets-manager-tenant).

## Famílias de grupos de parâmetros em um CDB
<a name="Oracle.Concepts.single-tenant.parameters"></a>

Os CDBs têm suas próprias famílias de grupos de parâmetros e valores de parâmetros padrão. As famílias de grupos de parâmetros de CDB são as seguintes:
+ oracle-ee-cdb-21
+ oracle-se2-cdb-21
+ oracle-ee-cdb-19
+ oracle-se2-cdb-19

## Limitações do RDS for CDBs Oracle
<a name="Oracle.Concepts.single-tenant-limitations"></a>

O RDS para Oracle é compatível com um subconjunto de atributos disponíveis em um CDB on-premises.

### Limitações do CDB
<a name="oracle-cdb-limitations.cdb"></a>

As limitações a seguir se aplicam aos RDS para Oracle em nível de CDB:
+ Não é possível se conectar a um CDB. Você sempre se conecta ao banco de dados (PDB) locatário em vez do CDB. Especifique o endpoint para o PDB assim como para um não CDB. A única diferença é que você especifica *pdb\$1name* para o nome do banco de dados, em que * pdb\$1name* é o nome que você escolheu para seu PDB.
+ Não é possível converter um CDB na configuração de multilocatário em um CDB na configuração de locatário único. A conversão na configuração de multilocatário é unidirecional e irreversível.
+ Não será possível habilitar ou converter na configuração de multilocatário se sua instância de banco de dados usar uma versão de banco de dados Oracle menor que 19.0.0.0.ru-2022-01.rur-2022.r1.
+ Não é possível usar o Database Activity Streams em um CDB.
+ Não é possível habilitar a auditoria em `CDB$ROOT`. É necessário habilitar a auditoria em cada PDB individualmente.

### Limitações do banco de dados (PDB) locatário
<a name="oracle-cdb-limitations.pdb"></a>

As seguintes limitações se aplicam aos bancos de dados locatários na configuração de multilocatário do RDS para Oracle:
+ Não é possível transferir as operações do banco de dados locatário para a janela de manutenção. Todas as alterações ocorrem imediatamente.
+ Não é possível adicionar um banco de dados locatário a um CDB que usa a configuração de locatário único.
+ Não é possível adicionar ou modificar vários bancos de dados locatários em uma única operação. Só é possível adicioná-los ou modificá-los um de cada vez.
+ Não é possível alterar o nome de um banco de dados locatário para `CDB$ROOT` ou `PDB$SEED`.
+ Não será possível excluir um banco de dados locatário se ele for o único locatário no CDB.
+ Nem todos os tipos de classe de instância de banco de dados têm recursos suficientes para oferecer suporte a vários PDBs em uma instância de CDB RDS para Oracle. Um aumento na contagem de PDBs afeta a performance e a estabilidade das classes de instâncias menores e aumenta o tempo da maioria das operações em nível de instância, por exemplo, atualizações de banco de dados.
+ Não é possível renomear um PDB usando `rdsadmin.rdsadmin_util.rename_global_name`. Em vez disso, é necessário usar a API `modify-tenant-database`.
+ Não é possível usar várias Contas da AWS para criar PDBs no mesmo CDB. Os PDBs devem ser de propriedade da mesma conta da instância de banco de dados em que os PDBs estão hospedados.
+ Todos os PDBs em um CDB usam o mesmo endpoint e o mesmo receptor de banco de dados.
+ As seguintes operações não são compatíveis no nível do PDB, mas sim no nível do CDB:
  + Backup e recuperação
  + Atualizações do banco de dados
  + Ações de manutenção
+ Os seguintes atributos não são compatíveis no nível do PDB, mas sim no nível do CDB:
  + Grupos de opções (as opções são instaladas em todos os PDBs em sua instância de CDB)
  + Grupos de parâmetros (todos os parâmetros são derivados do grupo de parâmetros associado à sua instância de CDB)
+ As operações em nível de PDB que são compatíveis com a arquitetura de CDB on-premises, mas não são compatíveis com CDB RDS para Oracle, incluem o seguinte:
**nota**  
A lista a seguir não é completa.
  + PDBs de aplicação
  + PDBs de proxy
  + Iniciar e encerrar um PDB
  + Desconectar e conectar PDBs

    Para inserir ou remover dados de um CDB, use as mesmas técnicas de um não CDB. Para obter mais informações sobre a migração de dados, consulte [Importar dados para o Oracle no Amazon RDS](Oracle.Procedural.Importing.md).
  + Opções de configuração no nível do PDB

    O PDB herda as configurações de opções do grupo de opções do CDB. Para obter mais informações sobre as opções de configuração, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). Para ver as práticas recomendadas, consulte [Trabalhar com grupos de parâmetros de banco de dados](CHAP_BestPractices.md#CHAP_BestPractices.DBParameterGroup).
  + Configurar parâmetros em um PDB

    O PDB herda as configurações de parâmetros do CDB. Para obter mais informações sobre as opções de configuração, consulte [Adição de opções a instâncias de banco de dados Oracle](Appendix.Oracle.Options.md).
  + Configurar diferentes receptores para PDBs no mesmo CDB
  + Atributos do Oracle Flashback

# Configurar um CDB RDS para Oracle
<a name="oracle-cdb.configuring"></a>

A configuração de um CDB é semelhante à configuração de um não CDB. 

**Topics**
+ [

## Criar uma instância de CDB do RDS para Oracle
](#Oracle.Concepts.single-tenant.creation)
+ [

## Conectar-se a um PDB em seu CDB RDS para Oracle
](#Oracle.Concepts.connecting.pdb)

## Criar uma instância de CDB do RDS para Oracle
<a name="Oracle.Concepts.single-tenant.creation"></a>

No RDS para Oracle, a criação de uma instância de CDB é quase idêntica à criação de uma instância não CDB. A diferença é que você escolhe a arquitetura multilocatário Oracle ao criar a instância de banco de dados e também escolhe a configuração de arquitetura: multilocatário ou locatário único. Se você criar tags ao criar um CDB na configuração de vários locatários, o RDS propagará as tags para o banco de dados inicial do inquilino. Para criar um CDB, use o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS.

### Console
<a name="Oracle.Concepts.single-tenant.creation.console"></a>

**Como criar uma instância de CDB**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS na qual você deseja criar a instância de CDB.

1. No painel de navegação, escolha **Databases** (Bancos de dados).

1. Escolha **Create database (Criar banco de dados)**.

1. Em **Choose a database creation method (Selecionar um método de criação de banco de dados)**, selecione **Standard Create (Criação padrão)**.

1. Em **Engine options (Opções de mecanismo)**, escolha **Oracle**. 

1. Em **Tipo de gerenciamento de banco de dados**, escolha **Amazon RDS**.

1. Em **Configurações de arquitetura**, escolha **Arquitetura multilocatário**. 

1. Para a **configuração da arquitetura**, faça o seguinte:
   + Escolha a **configuração multilocatário** e avance para a próxima etapa.
   + Escolha a **configuração de inquilino único** e vá para a Etapa 11.

1. (Configuração multilocatária) Para as configurações do **banco de dados do locatário**, faça as seguintes alterações:
   + Em **Nome do banco de dados inicial**, insira o nome do PDB. O nome do PDB deve ser diferente do nome do CDB, cujo padrão é. `RDSCDB`
   + Em Nome de **usuário principal do banco de dados do locatário**, insira o nome de usuário principal do seu PDB. Você não pode usar o nome de usuário principal para fazer login na raiz do CDB.
   + Em **Gerenciamento de credenciais**, escolha uma das seguintes opções de gerenciamento de credenciais:
     + **Gerenciado no AWS Secrets Manager**

       A senha gerenciada é para o banco de dados de locatário inicial e não para a instância. Em **Selecionar a chave de criptografia**, escolha uma chave do KMS que o Secrets Manager cria ou uma chave que você criou. 
**nota**  
Recomendamos o AWS Secrets Manager como a técnica mais segura para gerenciar credenciais. Aplicam-se cobranças adicionais. Para obter mais informações, consulte [Gerenciamento de senhas com Amazon RDS e AWS Secrets Manager](rds-secrets-manager.md).
     + **Autogerenciado**

       Para especificar uma senha, desmarque a caixa de seleção **Gerar uma senha automaticamente** se ela estiver marcada. Insira a mesma senha em **Senha primária** e **Confirmar senha**.
   + Para o **conjunto de caracteres do banco de dados do locatário**, escolha um conjunto de caracteres para o PDB. Você pode escolher um conjunto de caracteres do banco de dados do inquilino que seja diferente do conjunto de caracteres do CDB.

     O conjunto de caracteres PDB padrão é **AL32UTF8**. Se você escolher um conjunto de caracteres PDB não padrão, a criação do CDB poderá ser mais lenta. 
**nota**  
Não é possível especificar vários bancos de dados de locatário na operação de criação. O CDB tem um PDB quando é criado. Você pode adicionar PDBs a um CDB existente em uma operação separada.

1. (Configuração de locatário único) Escolha as configurações desejadas com base nas opções listadas em [Configurações para instâncias de banco de dados](USER_CreateDBInstance.Settings.md):

   1. Na seção **Settings** (Configurações), abra **Credential Settings** (Configurações de credencial). Faça o seguinte:

     1. Em **Nome do usuário principal**, insira o nome de um usuário local em seu PDB. Você não pode usar o nome de usuário principal para fazer login na raiz do CDB.

     1. Em **Gerenciamento de credenciais**, escolha uma das seguintes opções de gerenciamento de credenciais:
        + **Gerenciado no AWS Secrets Manager**

          Em **Selecionar a chave de criptografia**, escolha uma chave do KMS que o Secrets Manager cria ou uma chave que você criou. 
**nota**  
Recomendamos o AWS Secrets Manager como a técnica mais segura para gerenciar credenciais. Aplicam-se cobranças adicionais. Para obter mais informações, consulte [Gerenciamento de senhas com Amazon RDS e AWS Secrets Manager](rds-secrets-manager.md).
        + **Autogerenciado**

          Para especificar uma senha, desmarque a caixa de seleção **Gerar uma senha automaticamente** se ela estiver marcada. Insira a mesma senha em **Senha primária** e **Confirmar senha**.

1. Nas seções restantes, especifique suas configurações de instância de banco de dados. Para ter informações sobre cada configuração, consulte [Configurações para instâncias de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html).

1. Selecione **Criar banco de dados**.

### AWS CLI
<a name="Oracle.Concepts.single-tenant.creation.cli"></a>

Para criar um CDB na configuração multilocatário, use o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) com os seguintes parâmetros:
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--engine { oracle-ee-cdb | oracle-se2-cdb }`
+ `--master-username`
+ `--master-user-password` ou `--manage-master-user-password`
+ `--multi-tenant`(para a configuração de inquilino único, não especifique `multi-tenant` ou especifique) `--no-multi-tenant`
+ `--allocated-storage`
+ `--backup-retention-period`

Para obter informações sobre cada configuração, consulte [Configurações para instâncias de banco de dados](USER_CreateDBInstance.Settings.md).

O exemplo a seguir cria uma instância de banco de dados do RDS para Oracle chamada *my-cdb-inst*. Se você especificar `--no-multi-tenant` ou não especificar`--multi-tenant`, a configuração padrão do CDB será de inquilino único. O mecanismo é`oracle-ee-cdb`: um comando que especifica `oracle-ee` e `--multi-tenant` falha com um erro. O banco de dados inicial do inquilino é denominado *mypdb*.

**Example**  
Para Linux, macOS ou Unix:  

```
 1. aws rds create-db-instance \
 2.     --engine oracle-ee-cdb \
 3.     --db-instance-identifier my-cdb-inst \
 4.     --multi-tenant \
 5.     --db-name mypdb \
 6.     --allocated-storage 250 \
 7.     --db-instance-class db.t3.large \
 8.     --master-username pdb_admin \
 9.     --manage-master-user-password \
10.     --backup-retention-period 3
```
Para Windows:  

```
 1. aws rds create-db-instance ^
 2.     --engine oracle-ee-cdb ^
 3.     --db-instance-identifier my-cdb-inst ^
 4.     --multi-tenant ^
 5.     --db-name mypdb ^
 6.     --allocated-storage 250 ^
 7.     --db-instance-class db.t3.large ^
 8.     --master-username pdb_admin ^
 9.     --manage-master-user-password \ ^
10.     --backup-retention-period 3
```
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.
O comando gerará uma saída semelhante à seguinte: O nome do banco de dados, o conjunto de caracteres, o conjunto de caracteres nacionais, o usuário principal e o segredo do usuário principal não estão incluídos na saída. Você pode visualizar essas informações usando o comando CLI. `describe-tenant-databases`  

```
 1. {
 2.     "DBInstance": {
 3.         "DBInstanceIdentifier": "my-cdb-inst",
 4.         "DBInstanceClass": "db.t3.large",
 5.         "MultiTenant": true,
 6.         "Engine": "oracle-ee-cdb",
 7.         "DBResourceId": "db-ABCDEFGJIJKLMNOPQRSTUVWXYZ",
 8.         "DBInstanceStatus": "creating",
 9.         "AllocatedStorage": 250,
10.         "PreferredBackupWindow": "04:59-05:29",
11.         "BackupRetentionPeriod": 3,
12.         "DBSecurityGroups": [],
13.         "VpcSecurityGroups": [
14.             {
15.                 "VpcSecurityGroupId": "sg-0a1bcd2e",
16.                 "Status": "active"
17.             }
18.         ],
19.         "DBParameterGroups": [
20.             {
21.                 "DBParameterGroupName": "default.oracle-ee-cdb-19",
22.                 "ParameterApplyStatus": "in-sync"
23.             }
24.         ],
25.         "DBSubnetGroup": {
26.             "DBSubnetGroupName": "default",
27.             "DBSubnetGroupDescription": "default",
28.             "VpcId": "vpc-1234567a",
29.             "SubnetGroupStatus": "Complete",
30.             ...
```

### API do RDS
<a name="Oracle.Concepts.single-tenant.creation.api"></a>

Para criar uma instância de banco de dados utilizando a API do Amazon RDS, chame a operação [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) com os seguintes parâmetros.

Para obter informações sobre cada configuração, consulte [Configurações para instâncias de banco de dados](USER_CreateDBInstance.Settings.md). 

## Conectar-se a um PDB em seu CDB RDS para Oracle
<a name="Oracle.Concepts.connecting.pdb"></a>

Você pode usar um utilitário como o SQL\$1Plus para se conectar a um PDB. Para fazer o download do Oracle Instant Client, que inclui uma versão independente do SQL\$1Plus, consulte [ Downloads do Oracle Instant Client](https://www.oracle.com/database/technologies/instant-client/downloads.html).

Para conectar o SQL\$1Plus ao PDB, são necessárias as seguintes informações:
+ Nome do PDB
+ Nome de usuário e senha do banco de dados
+ Endpoint da sua instância de banco de dados
+ Número da porta

Para obter informações sobre como encontrar as informações anteriores, consulte [Encontrar o endpoint da instância de banco de dados do RDS para Oracle](USER_Endpoint.md).

**Example Como se conectar ao seu PDB usando o SQL\$1Plus**  
Nos exemplos a seguir, substitua o usuário principal por *master\$1user\$1name*. Além disso, substitua o endpoint da instância de banco de dados e inclua o número da porta e o Oracle SID. O valor do SID é o nome do PDB que você especificou ao criar a instância de banco de dados, não o identificador da instância de banco de dados.  
Para Linux, macOS ou Unix:  

```
1. sqlplus 'master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))'
```
Para Windows:  

```
1. sqlplus master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))
```
Você deve ver saída semelhante ao seguinte:  

```
SQL*Plus: Release 19.0.0.0.0 Production on Mon Aug 21 09:42:20 2021
```
Depois que você inserir a senha de usuário, o prompt do SQL será exibido.  

```
SQL>
```

**nota**  
A string de conexão de formato mais curto (Easy connect ou EZCONNECT), como `sqlplus username/password@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/database-identifier`, pode encontrar um limite máximo de caracteres e não deve ser usada para conexão. 

# Fazer backup e restaurar um CDB
<a name="Oracle.Concepts.single-tenant.snapshots"></a>

Você pode fazer backup e restaurar seu CDB usando os snapshots de banco de dados do RDS ou o Recovery Manager (RMAN).

## Fazer backup e restaurar um CDB usando snapshots de bancos de dados
<a name="br-cdb.db-snapshots"></a>

Os snapshots de banco de dados funcionam de forma semelhante nas arquiteturas CDB e não CDB. As principais diferenças são as seguintes.
+ Ao restaurar um snapshot de banco de dados de um CDB, você não pode renomear o CDB. O nome do CDB é `RDSCDB` e não pode ser alterado.
+ Ao restaurar um snapshot de banco de dados de um CDB, você não pode renomear o PDB. Você pode alterar o nome do PDB usando o comando [modify-tenant-database](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyTenantDatabase.html).
+ Para encontrar bancos de dados locatários em um snapshot, utilize o comando da CLI [describe-db-snapshot-tenant-databases.](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotTenantDatabases.html)
+ Você não pode interagir diretamente com os bancos de dados locatários em um snapshot de CDB que usa a configuração da arquitetura de multilocatário. Se você restaurar o snapshot do banco de dados, restaurará todos os bancos de dados locatários. 
+ O RDS para Oracle copia implicitamente as tags de um banco de dados locatário no banco de dados locatário de um snapshot de banco de dados. Quando você restaura um banco de dados locatário, as tags aparecem no banco de dados restaurado.
+ Se você restaurar um snapshot de banco de dados e especificar novas tags usando o parâmetro `--tags`, as novas tags substituirão todas as tags existentes.
+ Se você tirar um DB snapshot de uma instância de CDB que tem tags e especificar`--copy-tags-to-snapshot`, o RDS para Oracle copia as tags dos bancos de dados locatário nos bancos de dados locatário no snapshot.

Para obter mais informações, consulte [Considerações sobre o Oracle Database](USER_RestoreFromSnapshot.md#USER_RestoreFromSnapshot.Oracle).

## Fazer backup e restaurar um CDB usando o RMAN
<a name="br-cdb.rman"></a>

Para saber como fazer backup e restaurar um CDB ou banco de dados locatário individual usando o RMAN, consulte. [Realização de tarefas comuns do RMAN para instâncias de banco de dados Oracle](Appendix.Oracle.CommonDBATasks.RMAN.md)

# Converter um não CDB RDS para Oracle em um CDB
<a name="oracle-cdb-converting"></a>

É possível alterar a arquitetura de um banco de dados Oracle da arquitetura tradicional não CDB para a arquitetura multilocatária, também chamada de *arquitetura CDB*, com o comando `modify-db-instance`. Na maioria dos casos, essa técnica é preferível à criação de um CDB e à importação de dados. A operação de conversão gera tempo de inatividade.

Ao fazer upgrade da versão do mecanismo de banco de dados, você não pode alterar a arquitetura do banco de dados na mesma operação. Portanto, para fazer upgrade de um não CDB Oracle Database 19c para um CDB Oracle Database 21c, primeiro é necessário converter o não CDB em CDB, depois fazer upgrade do CDB 19c para CDB 21c.

A operação de conversão de não CDB apresenta os seguintes requisitos:
+ Você deve especificar `oracle-ee-cdb` ou `oracle-se2-cdb` para o tipo de mecanismo de banco de dados. Esses são os únicos valores compatíveis.
+ Seu mecanismo de banco de dados deve usar o Oracle Database 19c com uma atualização de versão (RU) de abril de 2021 ou posterior.

A operação tem as seguintes limitações:
+ Não é possível converter um CDB em um não CDB. Só é possível converter um não CDB em CDB.
+ Não é possível converter um não CDB na configuração de locatário em uma única chamada. `modify-db-instance` Depois de converter um não CDB em CDB, seu CDB estará na configuração de locatário único. Para converter a configuração de inquilino único em configuração de vários locatários, execute novamente. `modify-db-instance` Para ter mais informações, consulte [Converter a configuração de locatário único em multilocatário](oracle-single-tenant-converting.md).
+ Não é possível converter um banco de dados primário ou de réplica que tenha o Oracle Data Guard habilitado. Para converter um não-CDB que tenha réplicas de leitura, primeiro exclua todas as réplicas de leitura.
+ Não é possível fazer upgrade da versão do mecanismo de banco de dados e converter um não CDB em CDB na mesma operação.

Antes de converter a não CDB, pense no seguinte:
+ As considerações para grupos de opções e parâmetros são iguais àquelas do upgrade do mecanismo de banco de dados. Para ter mais informações, consulte [Considerações sobre atualizações de bancos de dados Oracle](USER_UpgradeDBInstance.Oracle.OGPG.md).
+ Você pode converter instâncias não CDB existentes que usam senhas principais gerenciadas em instâncias de locatário único em uma única operação. As instâncias de locatário único herdam as senhas gerenciadas.
+ Se sua instância de banco de dados tiver a opção `OEMAGENT` instalada, uma prática recomendada é remover essa opção antes de converter a não CDB. Depois que a não CDB for convertida em CDB, reinstale a opção. Para ter mais informações, consulte [Oracle Management Agent para Enterprise Manager Cloud Control](Oracle.Options.OEMAgent.md).
+ Durante o processo de conversão, o RDS redefine o tamanho do log redo online para o padrão de 128 M.

## Console
<a name="oracle-cdb-converting.console"></a>

**Como converter um não CDB em CDB**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS em que sua instância de banco de dados se encontra.

1. No painel de navegação, escolha **Bancos de dados** e selecione a instância de não CDB que deseja converter em instância de CDB. 

1. Escolha **Modificar**.

1. Em **Configurações de arquitetura**, selecione **Arquitetura multilocatário da Oracle**. Após a conversão, seu CDB estará na configuração de locatário único.

1. (Opcional) Em **Grupo de parâmetros de banco de dados**, escolha um novo grupo de parâmetros para a instância de CDB. As mesmas considerações de grupos de parâmetros se aplicam tanto ao converter uma instância de banco de dados como ao fazer upgrade de uma instância de banco de dados. Para ter mais informações, consulte [Considerações de grupos de parâmetros](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.PG).

1. (Opcional) Em **Grupo de opções**, escolha um novo grupo de opções para sua instância de CDB. As mesmas considerações de grupos de opções se aplicam tanto ao converter uma instância de banco de dados como ao fazer upgrade de uma instância de banco de dados. Para ter mais informações, consulte [Considerações de grupos de opções](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG).

1. (Opcional) Em **Gerenciamento de credenciais**, escolha **Gerenciado no AWS Secrets Manager** ou **Autogerenciado** Para ter mais informações, consulte [Gerenciar a senha do usuário principal para uma instância de banco de dados com o Secrets Manager](rds-secrets-manager.md#rds-secrets-manager-db-instance).

1. Quando todas as alterações estiverem conforme o desejado, escolha **Continue (Continuar)** e verifique o resumo das modificações. 

1. (Opcional) Escolha **Apply immediately (Aplicar imediatamente)** para aplicar as alterações imediatamente. Escolher essa opção pode causar uma inatividade em alguns casos. Para obter mais informações, consulte [Usar a configuração de programação de modificações](USER_ModifyInstance.ApplyImmediately.md).

1. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha **Modificar instância de banco de dados**.

   Ou escolha **Back (Voltar)** para editar as alterações ou **Cancel (Cancelar)** para cancelar as alterações.

## AWS CLI
<a name="oracle-cdb-converting.cli"></a>

Para converter o não CDB de sua instância de banco de dados em CDB, defina `--engine` como `oracle-ee-cdb` ou `oracle-se2-cdb` no comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da AWS CLI. Para ter mais informações, consulte [Configurações para instâncias de banco de dados](USER_ModifyInstance.Settings.md).

O exemplo a seguir converte a instância de banco de dados chamada *my-non-cdb* e especifica um grupo de opções e um grupo de parâmetros personalizados. O comando também habilita o gerenciamento de senhas com o Secrets Manager.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my-non-cdb \
    --engine oracle-ee-cdb \
    --option-group-name custom-option-group \
    --db-parameter-group-name custom-parameter-group \
    --manage-master-user-password
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-non-cdb ^
    --engine oracle-ee-cdb ^
    --option-group-name custom-option-group ^
    --db-parameter-group-name custom-parameter-group ^
    --manage-master-user-password
```

## API do RDS
<a name="oracle-cdb-converting.api"></a>

Para converter um não CDB em CDB, especifique `Engine` na operação de API [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) do RDS.

# Converter a configuração de locatário único em multilocatário
<a name="oracle-single-tenant-converting"></a>

Você pode modificar a arquitetura de um CDB RDS para Oracle da configuração de locatário único para a configuração de multilocatário. Antes e depois da conversão, o CDB conterá um banco de dados de locatário único (PDB). As tags da instância de banco de dados se propagam para o banco de dados de locatário inicial criado durante a conversão.

Antes de começar, verifique se sua política do IAM tem permissão para criar um banco de dados de locatário. Durante a conversão, o RDS para Oracle migra os seguintes metadados para o novo banco de dados de locatários:
+ Nome do usuário principal
+ A senha principal gerenciada (se o CDB de origem se integrar ao Secrets Manager)
+ Nome do banco de dados
+ Conjunto de caracteres
+ Conjunto de caracteres nacionais

Antes da conversão, você visualiza as informações anteriores usando o comando `describe-db-instances`. Após da conversão, você pode visualizar as informações usando o comando `describe-tenant-database`.

A conversão de locatário único em multilocatário tem as seguintes limitações:
+ Portanto, não é possível voltar para a configuração de locatário único depois que você muda para a configuração multilocatário. A conversão é irreversível.
+ Não é possível converter um banco de dados primário ou de réplica que tenha o Oracle Data Guard habilitado.
+ Não é possível atualizar a versão do mecanismo de banco de dados e converter em uma configuração de multilocatário na mesma operação.
+ Durante a conversão, não é possível habilitar ou desabilitar senhas de usuário principal gerenciadas.

## Console
<a name="oracle-cdb.configuring.converting.console"></a>

**Para converter um CDB usando a configuração de locatário único na configuração de vários locatários**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS em que sua instância de banco de dados se encontra.

1. No painel de navegação, escolha **Bancos de dados** e selecione a instância de não CDB que deseja converter em instância de CDB. 

1. Escolha **Modificar**.

1. Em **Configurações de arquitetura**, selecione **Arquitetura multilocatário da Oracle**.

1. Em **Configuração de arquitetura**, selecione **Configuração multilocatária.**

1. (Opcional) Em **Grupo de parâmetros de banco de dados**, escolha um novo grupo de parâmetros para a instância de CDB. As mesmas considerações de grupos de parâmetros se aplicam tanto ao converter uma instância de banco de dados como ao fazer upgrade de uma instância de banco de dados.

1. (Opcional) Em **Grupo de opções**, escolha um novo grupo de opções para sua instância de CDB. As mesmas considerações de grupos de opções se aplicam tanto ao converter uma instância de banco de dados como ao fazer upgrade de uma instância de banco de dados.

1. Quando todas as alterações estiverem conforme o desejado, escolha **Continue (Continuar)** e verifique o resumo das modificações. 

1. Escolha **Apply immediately (Aplicar imediatamente)**. Essa opção é necessária quando você alterna para uma configuração de multilocatário. Essa opção pode causar inatividade em alguns casos.

1. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha **Modificar instância de banco de dados**.

   Ou escolha **Back (Voltar)** para editar as alterações ou **Cancel (Cancelar)** para cancelar as alterações.

## AWS CLI
<a name="oracle-cdb.configuring.converting.cli"></a>

Para converter um CDB usando a configuração de locatário único na configuração de multilocatário, especifique `--multi-tenant` no comando AWS CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html).

O exemplo a seguir converte a instância de banco de dados chamada `my-st-cdb` da configuração de inquilino único para a configuração de multilocatário. A opção `--apply-immediately` é obrigatória.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-instance --region us-east-1\
    --db-instance-identifier my-st-cdb \
    --multi-tenant \
    --apply-immediately
```
Para Windows:  

```
aws rds modify-db-instance --region us-east-1 ^
    --db-instance-identifier my-st-cdb ^
    --multi-tenant ^
    --apply-immediately
```
A saída é semelhante ao apontado abaixo.  

```
{
    "DBInstance": {
        "DBInstanceIdentifier": "my-st-cdb",
        "DBInstanceClass": "db.r5.large",
        "MultiTenant": false,
        "Engine": "oracle-ee-cdb",
        "DBResourceId": "db-AB1CDE2FGHIJK34LMNOPRLXTXU",
        "DBInstanceStatus": "modifying",
        "MasterUsername": "admin",
        "DBName": "ORCL",
        ...
        "EngineVersion": "19.0.0.0.ru-2022-01.rur-2022-01.r1",
        "AutoMinorVersionUpgrade": true,
        "ReadReplicaDBInstanceIdentifiers": [],
        "LicenseModel": "bring-your-own-license",
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "default:oracle-ee-cdb-19",
                "Status": "in-sync"
            }
        ],
        ...
        "PendingModifiedValues": {
            "MultiTenant": "true"
        }
    }
}
```

# Adicionar um banco de dados de locatários do RDS for Oracle à sua instância de CDB
<a name="oracle-cdb-configuring.adding.pdb"></a>

Na configuração multilocatária do RDS for Oracle, um banco de dados de inquilinos é um PDB. Para adicionar um banco de dados de inquilinos, certifique-se de que os seguintes pré-requisitos sejam atendidos:
+ Seu CDB tem a configuração multilocatária ativada. Para obter mais informações, consulte [Configuração de multilocatário da arquitetura CDB](Oracle.Concepts.CDBs.md#multi-tenant-configuration).
+ Você tem as permissões necessárias do IAM para criar o banco de dados do inquilino.

Você pode adicionar um banco de dados de inquilinos usando a Console de gerenciamento da AWSAWS CLI, a ou a API do RDS. Você não pode adicionar vários bancos de dados de inquilinos em uma única operação: você deve adicioná-los um por vez. Se o CDB tiver a retenção de backup ativada, o Amazon RDS fará backup da instância de banco de dados antes e depois de adicionar um novo banco de dados de inquilinos. Se o CDB tiver réplicas de leitura, só será possível adicionar um banco de dados de locatários à instância de banco de dados primário. O Amazon RDS cria automaticamente o banco de dados de locatários nas réplicas. A integridade da replicação também é validada, garantindo que todas as réplicas estejam disponíveis e que o atraso na replicação seja inferior a 5 minutos antes da criação do locatário.

## Console
<a name="oracle-cdb-configuring.adding.pdb.console"></a>

**Para adicionar um banco de dados de inquilinos à sua instância de banco de dados**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, selecione a Região da AWS na qual você deseja criar o cluster de banco de dados.

1. No painel de navegação, escolha **Bancos de dados**.

1. Escolha a instância do CDB à qual você deseja adicionar um banco de dados de locatários. Sua instância de banco de dados deve usar a configuração multilocatária da arquitetura CDB. 

1. Escolha **Ações** e, em seguida, **Adicionar banco de dados de inquilinos**.

1. Para **Global database settings (Configurações de banco de dados globais)**, faça o seguinte:
   + Em **Nome do banco de dados inicial**, insira o nome do PDB.
   + Para o nome de **usuário mestre do banco** de dados do locatário, insira o nome do usuário mestre do seu PDB.
   + Escolha uma das seguintes opções de gerenciamento de credenciais:
     + **Gerenciado no AWS Secrets Manager**

       Em **Selecionar a chave de criptografia**, escolha uma chave do KMS que o Secrets Manager cria ou uma chave que você criou. 
**nota**  
Recomendamos o AWS Secrets Manager como a técnica mais segura para gerenciar credenciais. Cobranças adicionais se aplicam. O AWS Secrets Manager não é compatível com instâncias que usam réplicas de leitura. Para obter mais informações, consulte [Gerenciamento de senhas com Amazon RDS e AWS Secrets Manager](rds-secrets-manager.md).
     + **Autogerenciado**

       Para especificar uma senha, desmarque a caixa de seleção **Gerar uma senha automaticamente** se ela estiver marcada. Insira a mesma senha em **Senha primária** e **Confirmar senha**.
     + Em **Configuração adicional**, insira o nome do seu PDB em **Nome do banco de dados inicial**. Você não pode nomear o CDB, que tem o nome padrão  `RDSCDB`.
   + Para o **conjunto de caracteres do banco de dados do locatário**, escolha um conjunto de caracteres para o PDB. O padrão é **AL32UTF8**. Você pode escolher um conjunto de caracteres PDB diferente do conjunto de caracteres CDB. Se a instância tiver réplicas de leitura, não será possível criar locatários com um conjunto de caracteres personalizado. É possível criar locatários com um conjunto de caracteres personalizado antes de criar uma réplica de leitura, se necessário.
   + Para o **conjunto de caracteres nacionais do banco de dados do inquilino**, escolha um conjunto de caracteres nacional para o PDB. O padrão é **AL32UTF8**. O conjunto de caracteres nacionais especifica a codificação somente para colunas que usam o tipo de `NCHAR` dados (`NCHAR`,`NVARCHAR2`, e`NCLOB`) e não afeta os metadados do banco de dados.

   Para obter mais informações sobre os arquivos de configurações, consulte [Configurações para instâncias de banco de dados](USER_CreateDBInstance.Settings.md).

1. Escolha **Adicionar inquilino.**

## AWS CLI
<a name="oracle-cdb-configuring.adding.pdb.cli"></a>

Para adicionar um banco de dados de inquilinos ao seu CDB com oAWS CLI, use o comando [create-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/create-tenant-database.html) com os seguintes parâmetros necessários:
+ `--db-instance-identifier`
+ `--tenant-db-name`
+ `--master-username`
+ `--master-user-password`

*O exemplo a seguir cria um banco de dados de inquilinos chamado *mypdb2* na instância RDS para Oracle CDB chamada my-cdb-inst.* O conjunto de caracteres do PDB é`UTF-16`.

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name mypdb2 \
4.     --master-username mypdb2-admin \
5.     --master-user-password mypdb2-pwd \
6.     --character-set-name UTF-16
```
Para Windows:  

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name mypdb2 ^
4.     --master-username mypdb2-admin ^
5.     --master-user-password mypdb2-pwd ^
6.     --character-set-name UTF-16
```
A saída será semelhante à seguinte.  

```
...}
    "TenantDatabase" :
         {
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac567",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:mypdb2",
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "mypdb2",
            "Status" : "creating",
            "MasterUsername" : "mypdb2",
            "CharacterSetName" : "UTF-16",
            ...
        }
}...
```

# Modificando um banco de dados de locatários do RDS para Oracle
<a name="oracle-cdb-configuring.modifying.pdb"></a>

Você pode modificar somente o nome do PDB e a senha do usuário mestre de um banco de dados de inquilinos no seu CDB. Anote os seguintes requisitos e limitações para o :
+ Para modificar as configurações de um banco de dados de inquilinos em sua instância de banco de dados, o banco de dados de inquilinos deve existir. 
+ Você não pode modificar vários bancos de dados de inquilinos em uma única operação. É possível modificar apenas um banco de dados de inquilinos de cada vez.
+ Você não pode alterar o nome de um banco de dados de inquilinos para `CDB$ROOT` ou`PDB$SEED`.
+ Se a instância de banco de dados tiver réplicas de leitura, só será possível modificar os locatários na instância de banco de dados primário. A integridade da replicação também é validada, garantindo que as réplicas estejam disponíveis e que o atraso na replicação seja inferior a 5 minutos antes da modificação do locatário.

Você pode modificar um cluster de banco de dados usando o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS.

## Console
<a name="oracle-cdb-configuring.modifying.pdb.console"></a>

**Para modificar o nome do PDB ou a senha mestra de um banco de dados de inquilinos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, selecione a Região da AWS na qual você deseja criar o cluster de banco de dados.

1. No painel de navegação, escolha **Bancos de dados**.

1. Escolha o banco de dados do inquilino cujo nome do banco de dados ou senha do usuário mestre você deseja modificar.

1. Escolha **Modificar**.

1. Para **Global database settings (Configurações de banco de dados globais)**, faça o seguinte:
   + Em **Nome do banco de dados inicial**, insira o nome do PDB.
   + Para **Senha mestra do banco de dados do locatário**, insira uma nova senha.

1. Escolha **Modificar inquilino.**

## AWS CLI
<a name="oracle-cdb-configuring.modifying.pdb.cli"></a>

Para modificar um banco de dados de inquilinos usando oAWS CLI, chame o comando [modify-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-tenant-database.html) com os seguintes parâmetros:
+ `--db-instance-identifier` *Valor do*
+ `--tenant-db-name value`
+ `[--new-tenant-db-name value]`
+ `[--master-user-password value]`

O exemplo a seguir renomeia o banco de dados do inquilino `pdb1` para uma instância de banco `pdb-hr` de dados. `my-cdb-inst`

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds modify-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name pdb1 \
4.     --new-tenant-db-name pdb-hr
```
Para Windows:  

```
1. aws rds modify-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name pdb1 ^
4.     --new-tenant-db-name pdb-hr
```
O comando gerará uma saída semelhante à seguinte:   

```
{
    "TenantDatabase" : {
        "DbiResourceId" : "db-abc123",
        "TenantDatabaseResourceId" : "tdb-bac567",
        "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb1",
        "DBInstanceIdentifier" : "my-cdb-inst",
        "TenantDBName" : "pdb1",
        "Status" : "modifying",
        "MasterUsername" : "tenant-admin-user"
        "Port" : "6555",
        "CharacterSetName" : "UTF-16",
        "MaxAllocatedStorage" : "1000",
        "ParameterGroups": [
            {
                "ParameterGroupName": "pdb1-params",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "pdb1-options",
                "Status": "in-sync"
            }
        ],
        "PendingModifiedValues": {
            "TenantDBName": "pdb-hr"
        }
    }
}
```

# Excluindo um banco de dados de locatários do RDS for Oracle do seu CDB
<a name="oracle-cdb-configuring.deleting.pdb"></a>

Você pode excluir um banco de dados de inquilinos (PDB) usando oConsole de gerenciamento da AWS, o ou a AWS CLI API do RDS. Considere os seguintes requisitos e limitações:
+ O banco de dados do locatário e a instância de banco de dados devem existir.
+ Para que a exclusão seja bem-sucedida, uma das seguintes situações deve existir:
  + O banco de dados do inquilino e a instância de banco de dados estão disponíveis.
**nota**  
Você pode tirar um instantâneo final, mas somente se o banco de dados do locatário e a instância de banco de dados estiverem em um estado disponível antes de você emitir o `delete-tenant-database` comando. Esse snapshot só será obtido na instância primária se a instância de banco de dados tiver réplicas de leitura.
  + O banco de dados de inquilinos está sendo criado.
  + A instância de banco de dados está modificando o banco de dados do inquilino.
  + Se a instância de banco de dados tiver réplicas de leitura, essas restrições se aplicarão a todas as réplicas.
+ É possível excluir vários bancos de dados de locatários em uma única operação.
+ Não será possível excluir um banco de dados locatário se ele for o único locatário no CDB.
+ Não é possível excluir um banco de dados de locatários em uma réplica de leitura. Só é possível excluir um locatário na instância de banco de dados primário. A integridade da replicação também é validada, garantindo que o atraso na replicação seja inferior a 5 minutos antes da exclusão do locatário.

## Console
<a name="oracle-cdb-configuring.deleting.pdb.console"></a>

**Para excluir um banco de dados de inquilinos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Bancos de dados** e o cluster de banco de dados que você deseja excluir.

1. Em **Actions**, escolha **Delete**.

1. Para criar um snapshot de banco de dados final para a instância de banco de dados, escolha **Create final snapshot? (Criar snapshot final?)**.

1. Se você optar por criar um snapshot final, insira o **Final snapshot name (Nome do snapshot final)**.

1. Digite **delete me** na caixa.

1. Escolha **Delete (Excluir)**.

## AWS CLI
<a name="oracle-cdb-configuring.deleting.pdb.cli"></a>

Para excluir um banco de dados de inquilinos usando oAWS CLI, chame o comando [delete-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-tenant-database.html) com os seguintes parâmetros:
+ `--db-instance-identifier value`
+ `--tenant-db-name value`
+ `[--skip-final-snapshot | --no-skip-final-snapshot]`
+ `[--final-snapshot-identifier value]`

*O exemplo a seguir exclui o banco de dados do inquilino chamado *pdb-test do CDB chamado my-cdb-inst*.* Por padrão, a operação cria um instantâneo final.

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds delete-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name pdb-test \
4.     --final-snapshot-identifier final-snap-pdb-test
```
Para Windows:  

```
1. aws rds delete-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name pdb-test ^
4.     --final-snapshot-identifier final-snap-pdb-test
```
O comando gerará uma saída semelhante à seguinte:   

```
{
    "TenantDatabase" : {
        "DbiResourceId" : "db-abc123",
        "TenantDatabaseResourceId" : "tdb-bac456",
        "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb-test",
        "DBInstanceIdentifier" : "my-cdb-inst",
        "TenantDBName" : "pdb-test",
        "Status" : "deleting",
        "MasterUsername" : "pdb-test-admin"
        "Port" : "6555",
        "CharacterSetName" : "UTF-16",
        "MaxAllocatedStorage" : "1000",
        "ParameterGroups": [
            {
                "ParameterGroupName": "tenant-1-params",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "tenant-1-options",
                "Status": "in-sync"
            }
        ]
    }
}
```

# Visualizando detalhes do banco de dados do inquilino
<a name="oracle-cdb-configuring.describing.pdb"></a>

Você pode visualizar detalhes sobre um banco de dados de inquilinos da mesma forma que você pode ver em um banco de dados que não seja CDB ou CDB.

## Console
<a name="oracle-cdb-configuring.describing.pdb.console"></a>

**Para visualizar detalhes sobre um banco de dados de inquilinos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No canto superior direito do console do Amazon RDS, escolha a Região da AWS em que sua instância de banco de dados se encontra.

1. No painel de navegação, escolha **Bancos de dados**.  
![\[Exibir detalhes sobre um CDB\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/cdb-list.png)

   Na imagem anterior, o banco de dados do único locatário (PDB) aparece como filho da instância de banco de dados.

1. O nome de um banco de dados hospedado em uma .  
![\[Exibir detalhes sobre um PDB\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/pdb-details.png)

## AWS CLI
<a name="oracle-cdb-configuring.describing.pdb.cli"></a>

Para ver detalhes sobre seus PDBs, use o AWS CLI comando [describe-tenant-databases](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-tenant-databases.html).

O exemplo a seguir descreve todos os bancos de dados de locatários na região especificada.

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds describe-tenant-databases --region us-east-1
```
Para Windows:  

```
1. aws rds describe-tenant-databases --region us-east-1
```
O comando gerará uma saída semelhante à seguinte:   

```
    "TenantDatabases" : [
         {
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "pdb-test",
            "Status" : "available",
            "MasterUsername" : "pdb-test-admin",
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac456",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb-test",
            "CharacterSetName": "AL32UTF8",
            "NcharCharacterSetName": "AL16UTF16",
            "DeletionProtection": false,
            "PendingModifiedValues": {
                 "MasterUserPassword": "****"
            },
            "TagList": []
         },
         {

            "DBInstanceIdentifier" : "my-cdb-inst2",
            "TenantDBName" : "pdb-dev",
            "Status" : "modifying",
            "MasterUsername" : "masterrdsuser"
            "DbiResourceId" : "db-xyz789",
            "TenantDatabaseResourceId" : "tdb-ghp890",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst2:pdb-dev",
            "CharacterSetName": "AL32UTF8",
            "NcharCharacterSetName": "AL16UTF16",
            "DeletionProtection": false,
            "PendingModifiedValues": {
                 "MasterUserPassword": "****"
            },
            "TagList": []
         },
         ... other truncated data
```

O exemplo a seguir descreve os bancos de dados de locatários na instância de banco de dados `my-cdb-inst` na região especificada.

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds describe-tenant-databases --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst
```
Para Windows:  

```
1. aws rds describe-tenant-databases --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst
```
O comando gerará uma saída semelhante à seguinte:   

```
{
    "TenantDatabase": {
        "TenantDatabaseCreateTime": "2023-10-19T23:55:30.046Z",
        "DBInstanceIdentifier": "my-cdb-inst",
        "TenantDBName": "pdb-hr",
        "Status": "creating",
        "MasterUsername": "tenant-admin-user",
        "DbiResourceId": "db-abc123",
        "TenantDatabaseResourceId": "tdb-bac567",
        "TenantDatabaseARN": "arn:aws:rds:us-west-2:579508833180:pdb-hr:tdb-abcdefghi1jklmno2p3qrst4uvw5xy6zabc7defghi8jklmn90op",
        "CharacterSetName": "AL32UTF8",
        "NcharCharacterSetName": "AL16UTF16",
        "DeletionProtection": false,
        "PendingModifiedValues": {
            "MasterUserPassword": "****"
        },
        "TagList": [
            {
                "Key": "TEST",
                "Value": "testValue"
            }
        ]
    }
}
```

O exemplo a seguir descreve um banco de dados de `pdb1` locatários `my-cdb-inst` na região Leste dos EUA (Norte da Virgínia).

**Example**  
Para Linux, macOS ou Unix:  

```
1. aws rds describe-tenant-databases --region us-east-1 \
2. --db-instance-identifier my-cdb-inst \
3. --tenant-db-name pdb1
```
Para Windows:  

```
1. aws rds describe-tenant-databases --region us-east-1 ^
2. --db-instance-identifier my-cdb-inst ^
3. --tenant-db-name pdb1
```
O comando gerará uma saída semelhante à seguinte:   

```
{
    "TenantDatabases" : [
        {
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac567",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb1"
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "pdb1",
            "Status" : "ACTIVE",
            "MasterUsername" : "masterawsuser"
            "Port" : "1234",
            "CharacterSetName": "UTF-8",
            "ParameterGroups": [
                {
                    "ParameterGroupName": "tenant-custom-pg",
                    "ParameterApplyStatus": "in-sync"
                }
            ],
            {
            "OptionGroupMemberships": [
                {
                    "OptionGroupName": "tenant-custom-og",
                    "Status": "in-sync"
                }
            ]
         }
    ]
}
```

# Fazer upgrade de um CDB
<a name="Oracle.Concepts.single-tenant.upgrades"></a>

Você pode atualizar um CDB para uma versão diferente do Oracle Database. Por exemplo, você pode fazer upgrade de um CDB Oracle Database 19c para CDB Oracle Database 21c. Não é possível alterar a arquitetura do banco de dados durante um upgrade. Portanto, não é possível fazer upgrade de um não CDB para CDB ou fazer upgrade de um CDB para não CDB.

O procedimento para fazer upgrade de um CDB para CDB é igual àquele para fazer upgrade de um não CDB para não CDB. Para obter mais informações, consulte [Fazer upgrade do mecanismo de banco de dados RDS para Oracle](USER_UpgradeDBInstance.Oracle.md).

# Administração da sua instância de banco de dados Oracle
<a name="Appendix.Oracle.CommonDBATasks"></a>

A seguir estão as tarefas de gerenciamento comuns que você realiza com uma instância de banco de dados do Amazon RDS. Algumas tarefas são as mesmas para todas as instâncias de banco de dados do RDS. Outras tarefas são específicas do RDS for Oracle.

As tarefas a seguir são comuns a todos os bancos de dados do RDS, mas o Oracle tem considerações especiais. Por exemplo, conecte-se a um banco de dados Oracle usando os clientes Oracle SQL\$1Plus e SQL Developer.


****  

| Área de tarefa | Documentação relevante | 
| --- | --- | 
|  **Classes de instância, armazenamento e PIOPS** Se você estiver criando uma instância de produção, saiba como funcionam as classes de instância, os tipos de armazenamento e as IOPS provisionadas no Amazon RDS.   |  [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md) [Tipos de armazenamento do Amazon RDS](CHAP_Storage.md#Concepts.Storage)  | 
|  **Implantações multi-AZ** Uma instância de banco de dados de produção deve usar implantações multi-AZ. As implantações multi-AZ oferecem maior disponibilidade, durabilidade de dados e tolerância a falhas para instâncias de banco de dados.   |  [Configurar e gerenciar uma implantação multi-AZ para o Amazon RDS](Concepts.MultiAZ.md)  | 
|  **Amazon VPC** Se a sua conta AWS tiver uma nuvem privada virtual (VPC) padrão, a instância de banco de dados será criada automaticamente dentro da VPC padrão. Se a sua conta não tiver uma VPC padrão e você desejar a instância de banco de dados em uma VPC, crie os grupos de VPC e sub-redes antes de criar a instância.   |  [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md)  | 
|  **Grupos de segurança** Por padrão, as instâncias de banco de dados usam um firewall que impede o acesso. Crie um grupo de segurança com os endereços IP corretos e uma configuração de rede para acessar a instância de banco de dados.  |  [Controlar acesso com grupos de segurança](Overview.RDSSecurityGroups.md)  | 
|  **Grupos de parâmetros** Se a sua instância de banco de dados exigir parâmetros de banco de dados específicos, crie um grupo de parâmetros antes de criar essa instância de banco de dados.   |  [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md)  | 
|  **Grupos de opções** Se a sua instância de banco de dados exigir opções de banco de dados específicas, crie um grupo de opções antes de criar a instância de banco de dados.   |  [Adição de opções a instâncias de banco de dados Oracle](Appendix.Oracle.Options.md)  | 
|  **Conexão à instância de banco de dados** Após criar um grupo de segurança e associá-lo a uma instância de banco de dados, será possível se conectar à instância de banco de dados usando qualquer aplicativo de cliente SQL padrão, como o Oracle SQL\$1Plus.   |  [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md)  | 
|  **Backup e restauração** Você pode configurar a instância de banco de dados para fazer backups automáticos ou snapshots manuais e, depois, restaurar instâncias a partir dos backups ou snapshots.   |  [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md)  | 
|  **Monitoramento** Você pode monitorar uma instância de banco de dados Oracle usando as métricas, eventos e o monitoramento aprimorado do Amazon RDS do CloudWatch.   |  [Visualizar métricas no console do Amazon RDS](USER_Monitoring.md) [Visualizar eventos do Amazon RDS](USER_ListEvents.md)  | 
|  **Arquivos de log** Você pode acessar os arquivos de log de sua instância de banco de dados Oracle.   |  [Monitorar arquivos de log do Amazon RDS](USER_LogAccess.md)  | 

A seguir, você pode encontrar uma descrição para implantações específicas do Amazon RDS de tarefas comuns de DBA para o RDS 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. Além disso, o RDS restringe o acesso a determinados procedimentos e tabelas do sistema que exigem privilégios avançados. Em muitas das tarefas, você executa o pacote `rdsadmin`, que é uma ferramenta específica do Amazon RDS que permite administrar seu banco de dados.

Veja a seguir tarefas do DBA comuns para instâncias de bancos de dados executando o Oracle:
+ [Tarefas do sistema](Appendix.Oracle.CommonDBATasks.System.md)  
****    
<a name="dba-tasks-oracle-system-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tarefas de banco de dados](Appendix.Oracle.CommonDBATasks.Database.md)  
****    
<a name="dba-tasks-oracle-database-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tarefas de log](Appendix.Oracle.CommonDBATasks.Log.md)  
****    
<a name="dba-tasks-oracle-log-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tarefas do RMAN](Appendix.Oracle.CommonDBATasks.RMAN.md)  
****    
<a name="dba-tasks-oracle-rman-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Tarefas do Oracle Scheduler](Appendix.Oracle.CommonDBATasks.Scheduler.md)  
****    
<a name="dba-tasks-oracle-scheduler-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Diagnosticar problemas](Appendix.Oracle.CommonDBATasks.Diagnostics.md)  
****    
<a name="dba-tasks-oracle-diagnostic-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 
+ [Outras tarefas](Appendix.Oracle.CommonDBATasks.Misc.md)  
****    
<a name="dba-tasks-oracle-misc-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.html)

 

Você também pode usar procedimentos do Amazon RDS para integração do Amazon S3 com o Oracle e para executar tarefas de banco de dados do OEM Management Agent. Para obter mais informações, consulte [Integração do Amazon S3](oracle-s3-integration.md) e [Como executar tarefas de banco de dados com o Management Agent](Oracle.Options.OEMAgent.md#Oracle.Options.OEMAgent.DBTasks).

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

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

**Topics**
+ [

# Desconectar uma sessão
](Appendix.Oracle.CommonDBATasks.DisconnectingSession.md)
+ [

# Encerrar uma sessão
](Appendix.Oracle.CommonDBATasks.KillingSession.md)
+ [

# Como cancelar uma instrução SQL em uma sessão
](Appendix.Oracle.CommonDBATasks.CancellingSQL.md)
+ [

# Habilitar e desabilitar sessões restritas
](Appendix.Oracle.CommonDBATasks.RestrictedSession.md)
+ [

# Descarregar o grupo compartilhado
](Appendix.Oracle.CommonDBATasks.FlushingSharedPool.md)
+ [

# Concessão de privilégios SELECT ou EXECUTE a objetos SYS
](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)
+ [

# Revogar privilégios SELECT ou EXECUTE em objetos SYS
](Appendix.Oracle.CommonDBATasks.RevokePrivileges.md)
+ [

# Gerenciar visualizações RDS\$1X\$1 para instâncias de banco de dados Oracle
](Appendix.Oracle.CommonDBATasks.X-dollar.md)
+ [

# Concessão de privilégios a usuários não mestres
](Appendix.Oracle.CommonDBATasks.PermissionsNonMasters.md)
+ [

# Criação de funções personalizadas para verificar senhas
](Appendix.Oracle.CommonDBATasks.CustomPassword.md)
+ [

## Configuração de um servidor DNS personalizado
](#Appendix.Oracle.CommonDBATasks.CustomDNS)
+ [

# Configurar e anular configuração de eventos de diagnóstico do sistema
](Appendix.Oracle.CommonDBATasks.SystemEvents.md)

# Desconectar uma sessão
<a name="Appendix.Oracle.CommonDBATasks.DisconnectingSession"></a>

Para desconectar a sessão atual finalizando o processo de servidor dedicado, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.disconnect`. O procedimento `disconnect` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `sid`  |  número  |  —  |  Sim  |  O identificador da sessão.  | 
|  `serial`  |  número  |  —  |  Sim  |  O número de série da sessão.  | 
|  `method`  |  varchar  |  'IMMEDIATE'  |  Não  |  Os valores válidos são `'IMMEDIATE'` ou `'POST_TRANSACTION'`.  | 

O exemplo a seguir desconecta uma sessão.

```
begin
    rdsadmin.rdsadmin_util.disconnect(
        sid    => sid, 
        serial => serial_number);
end;
/
```

Para obter o identificador da sessão e o número de série da sessão, consulte a visualização `V$SESSION`. O seguinte exemplo obtém todas as sessões para o usuário `AWSUSER`.

```
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'AWSUSER';
```

O banco de dados deve estar aberto para usar esse método. Para obter mais informações sobre como desconectar uma sessão, consulte [ALTER SYSTEM](http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_2014.htm#SQLRF53166) (Alterar sistema) na documentação do Oracle. 

# Encerrar uma sessão
<a name="Appendix.Oracle.CommonDBATasks.KillingSession"></a>

Para encerrar uma sessão, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.kill`. O procedimento `kill` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `sid`  |  número  |  —  |  Sim  |  O identificador da sessão.  | 
|  `serial`  |  número  |  —  |  Sim  |  O número de série da sessão.  | 
|  `method`  |  varchar  |  nulo  |  Não  |  Os valores válidos são `'IMMEDIATE'` ou `'PROCESS'`. Se você especificar `IMMEDIATE`, terá o mesmo resultado que o produzido ao executar a seguinte instrução: <pre>ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE</pre> Se você especificar `PROCESS`, encerrará os processos associados a uma sessão. Especifique `PROCESS` apenas se o encerramento da sessão com `IMMEDIATE` foi bem-sucedido.  | 

Para obter o identificador da sessão e o número de série da sessão, consulte a visualização `V$SESSION`. O seguinte exemplo obtém todas as sessões para o usuário *AWSUSER*.

```
SELECT SID, SERIAL#, STATUS FROM V$SESSION WHERE USERNAME = 'AWSUSER';
```

O exemplo a seguir encerra uma sessão.

```
BEGIN
    rdsadmin.rdsadmin_util.kill(
        sid    => sid, 
        serial => serial_number,
        method => 'IMMEDIATE');
END;
/
```

No exemplo a seguir, os processos associados a uma sessão são encerrados.

```
BEGIN
    rdsadmin.rdsadmin_util.kill(
        sid    => sid, 
        serial => serial_number,
        method => 'PROCESS');
END;
/
```

# Como cancelar uma instrução SQL em uma sessão
<a name="Appendix.Oracle.CommonDBATasks.CancellingSQL"></a>

Para cancelar uma instrução SQL em uma sessão, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.cancel`.

**nota**  
Esse procedimento é compatível com o Oracle Database 19c (19.0.0) e com todas as versões principais e secundárias posteriores do RDS for Oracle.

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `sid`  |  número  |  —  |  Sim  |  O identificador da sessão.  | 
|  `serial`  |  número  |  —  |  Sim  |  O número de série da sessão.  | 
|  `sql_id`  |  varchar2  |  nulo  |  Não  |  O identificador SQL da instrução SQL   | 

O exemplo a seguir canela uma instrução SQL em uma sessão.

```
begin
    rdsadmin.rdsadmin_util.cancel(
        sid    => sid, 
        serial => serial_number,
        sql_id => sql_id);
end;
/
```

Para obter o identificador da sessão, o número de série da sessão e o identificador SQL de uma instrução SQL, consulte a visualização `V$SESSION`. O exemplo a seguir obtém todos os identificadores SQL e de sessão para o usuário `AWSUSER`.

```
select SID, SERIAL#, SQL_ID, STATUS from V$SESSION where USERNAME = 'AWSUSER';
```

# Habilitar e desabilitar sessões restritas
<a name="Appendix.Oracle.CommonDBATasks.RestrictedSession"></a>

Para habilitar e desabilitar sessões restritas, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.restricted_session`. O procedimento `restricted_session` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Sim | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_enable`  |  booliano  |  true  |  Não  |  Defina como `true` para habilitar sessões restritas, `false` para desabilitar sessões restritas.   | 

O exemplo a seguir mostra como habilitar e desabilitar sessões restritas. 

```
/* Verify that the database is currently unrestricted. */

SELECT LOGINS FROM V$INSTANCE;
 
LOGINS
-------
ALLOWED

/* Enable restricted sessions */

EXEC rdsadmin.rdsadmin_util.restricted_session(p_enable => true);
 

/* Verify that the database is now restricted. */

SELECT LOGINS FROM V$INSTANCE;
 
LOGINS
----------
RESTRICTED
 

/* Disable restricted sessions */

EXEC rdsadmin.rdsadmin_util.restricted_session(p_enable => false);
 

/* Verify that the database is now unrestricted again. */

SELECT LOGINS FROM V$INSTANCE;
 
LOGINS
-------
ALLOWED
```

# Descarregar o grupo compartilhado
<a name="Appendix.Oracle.CommonDBATasks.FlushingSharedPool"></a>

Para descarregar o grupo compartilhado, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.flush_shared_pool`. O procedimento `flush_shared_pool` não tem parâmetros. 

O exemplo a seguir libera o pool compartilhado.

```
EXEC rdsadmin.rdsadmin_util.flush_shared_pool;
```

## Descarregar o cache do buffer
<a name="Appendix.Oracle.CommonDBATasks.FlushingBufferCache"></a>

Para descarregar o cache do buffer, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.flush_buffer_cache`. O procedimento `flush_buffer_cache` não tem parâmetros. 

O exemplo a seguir libera o cache do buffer.

```
EXEC rdsadmin.rdsadmin_util.flush_buffer_cache;
```

## Limpar o cache flash inteligente do banco de dados
<a name="Appendix.Oracle.CommonDBATasks.flushing-shared-pool"></a>

Para limpar o cache do flash inteligente do banco de dados, use o procedimento `rdsadmin.rdsadmin_util.flush_flash_cache` do Amazon RDS. O procedimento `flush_flash_cache` não tem parâmetros. O exemplo a seguir libera o cache do flash inteligente do banco de dados.

```
EXEC rdsadmin.rdsadmin_util.flush_flash_cache;
```

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

# Concessão de privilégios SELECT ou EXECUTE a objetos SYS
<a name="Appendix.Oracle.CommonDBATasks.TransferPrivileges"></a>

Normalmente, você transfere privilégios usando funções, que podem conter muitos objetos. Para conceder privilégios a um único objeto, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.grant_sys_object`. O procedimento concede apenas privilégios já concedidos ao usuário mestre por uma função ou por uma concessão direta. 

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

**Importante**  
Para todos os valores de parâmetro, use letras maiúsculas, a menos que você tenha criado o usuário com um identificador que diferencia letras maiúsculas de minúsculas. Por exemplo, se você executar `CREATE USER myuser` ou `CREATE USER MYUSER`, o dicionário de dados armazenará `MYUSER`. No entanto, se você usar aspas duplas em `CREATE USER "MyUser"`, o dicionário de dados armazenará `MyUser`.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_obj_name`  |  varchar2  |  —  |  Sim  |  O nome do objeto ao qual conceder privilégios. O objeto pode ser um diretório, uma função, um pacote, um procedimento, uma sequência, uma tabela ou uma visualização. Os nomes dos objetos devem ser expressos exatamente como eles aparecem em `DBA_OBJECTS`. Como a maioria dos objetos do sistema é definida em maiúsculas, recomendamos que você tente isso primeiro.   | 
|  `p_grantee`  |  varchar2  |  —  |  Sim  |  O nome do objeto para o qual conceder privilégios. O objeto pode ser uma esquema ou um função.   | 
|  `p_privilege`  |  varchar2  |  nulo  |  Sim  |  —  | 
|  `p_grant_option`  |  booliano  |  false  |  Não  |  Defina como `true` para usar a opção de concessão.  | 

O exemplo a seguir concede privilégios de seleção em um objeto chamado `V_$SESSION` a um usuário chamado `USER1`.

```
begin
    rdsadmin.rdsadmin_util.grant_sys_object(
        p_obj_name  => 'V_$SESSION',
        p_grantee   => 'USER1',
        p_privilege => 'SELECT');
end;
/
```

O exemplo a seguir concede privilégios de seleção em um objeto chamado `V_$SESSION` a um usuário chamado `USER1` com a opção de concessão.

```
begin
    rdsadmin.rdsadmin_util.grant_sys_object(
        p_obj_name     => 'V_$SESSION',
        p_grantee      => 'USER1',
        p_privilege    => 'SELECT',
        p_grant_option => true);
end;
/
```

Para poder conceder privilégios a um objeto, sua conta deve ter esses privilégios concedidos a ela diretamente com a opção de concessão ou por meio de uma função concedida usando `with admin option`. No caso mais comum, você pode querer conceder `SELECT` em uma visualização de DBA que foi concedida à função `SELECT_CATALOG_ROLE`. Se essa função ainda não estiver diretamente concedida ao seu usuário usando `with admin option`, você não poderá transferir o privilégio. Se você tiver privilégios de DBA, poderá conceder a função diretamente a outro usuário. 

O exemplo a seguir concede `SELECT_CATALOG_ROLE` e `EXECUTE_CATALOG_ROLE` a `USER1`. Com o `with admin option` é usado, `USER1` agora pode conceder acesso a objetos SYS que foram concedidos a `SELECT_CATALOG_ROLE`. 

```
GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; 
GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;
```

Objetos já concedidos a `PUBLIC` não precisam ser novamente concedidos. Se você usar o procedimento `grant_sys_object` para conceder acesso novamente, a chamada de procedimento será bem-sucedida. 

# Revogar privilégios SELECT ou EXECUTE em objetos SYS
<a name="Appendix.Oracle.CommonDBATasks.RevokePrivileges"></a>

Para revogar os privilégios de um único objeto, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.revoke_sys_object`. O procedimento revoga apenas os privilégios já concedido à conta mestra por uma função ou por uma concessão direta. 

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_obj_name`  |  varchar2  |  —  |  Sim  |  O nome do objeto ao qual revogar privilégios. O objeto pode ser um diretório, uma função, um pacote, um procedimento, uma sequência, uma tabela ou uma visualização. Os nomes dos objetos devem ser expressos exatamente como eles aparecem em `DBA_OBJECTS`. A maioria dos objetos do sistema é definida em maiúsculas, então recomendamos que você tente isso primeiro.   | 
|  `p_revokee`  |  varchar2  |  —  |  Sim  |  O nome do objeto ao qual revogar privilégios. O objeto pode ser uma esquema ou um função.   | 
|  `p_privilege`  |  varchar2  |  nulo  |  Sim  |  —  | 

O exemplo a seguir revoga privilégios de seleção em um objeto denominado `V_$SESSION` de um usuário denominado `USER1`.

```
begin
    rdsadmin.rdsadmin_util.revoke_sys_object(
        p_obj_name  => 'V_$SESSION',
        p_revokee   => 'USER1',
        p_privilege => 'SELECT');
end;
/
```

# Gerenciar visualizações RDS\$1X\$1 para instâncias de banco de dados Oracle
<a name="Appendix.Oracle.CommonDBATasks.X-dollar"></a>

Talvez seja necessário acessar tabelas `SYS.X$` fixas, que só podem ser acessadas por `SYS`. Para criar visualizações `SYS.RDS_X$` em tabelas `X$` elegíveis, use os procedimentos no pacote `rdsadmin.rdsadmin_util`. O usuário principal recebe automaticamente o privilégio `SELECT … WITH GRANT OPTION` nas visualizações `RDS_X$`. 

Os procedimentos `rdsadmin.rdsadmin_util` estão disponíveis nos seguintes casos:
+ Instâncias de banco de dados existentes que nunca foram atualizadas e usam as seguintes versões:
  + `21.0.0.0.ru-2023-10.rur-2023-10.r1` e versões 21c posteriores
  + `19.0.0.0.ru-2023-10.rur-2023-10.r1` e versões 19c posteriores
+ Qualquer nova instância de banco de dados que você criar.
+ Qualquer instância de banco de dados existente que você tenha atualizado.

**Importante**  
Internamente, o pacote `rdsadmin.rdsadmin_util` cria visualizações em tabelas `X$`. As tabelas `X$` são objetos internos do sistema que não estão descritos na documentação do Oracle Database. Recomendamos testar visualizações específicas no banco de dados que não é de produção e somente criar visualizações no banco de dados de produção com a orientação do Oracle Support.

## Listar tabelas fixas X\$1 elegíveis para uso em visualizações RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.list-allowed-X-dollar"></a>

Para listar tabelas X\$1 que são elegíveis para uso em visualizações `RDS_X$`, use o procedimento `rdsadmin.rdsadmin_util.list_allowed_sys_x$_views` do RDS. Este procedimento não aceita parâmetros. As declarações a seguir listam todas as tabelas `X$` elegíveis (exemplo de saída incluído).

```
SQL> SET SERVEROUTPUT ON
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_allowed_sys_x$_views);

'X$BH'
'X$K2GTE'
'X$KCBWBPD'
'X$KCBWDS'
'X$KGLLK'
'X$KGLOB'
'X$KGLPN'
'X$KSLHOT'
'X$KSMSP'
'X$KSPPCV'
'X$KSPPI'
'X$KSPPSV'
'X$KSQEQ'
'X$KSQRS'
'X$KTUXE'
'X$KQRFP'
```

A lista das tabelas `X$` elegíveis pode mudar ao longo do tempo. Para garantir que a lista de tabelas fixas `X$` elegíveis esteja atualizada, execute `list_allowed_sys_x$_views` periodicamente.

## Criar visualizações SYS.RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.create-X-dollar"></a>

Para criar uma visualização `RDS_X$` em uma tabela `X$` elegível, use o procedimento `rdsadmin.rdsadmin_util.create_sys_x$_view` do RDS. É possível criar visualizações apenas para as tabelas listadas na saída de `rdsadmin.rdsadmin_util.list_allowed_sys_x$_views`. O procedimento `create_sys_x$_view` tem os parâmetros a seguir.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_x$_tbl`  |  varchar2  |  Null  |  Sim  |  O nome de uma tabela `X$` válida. O valor deve ser uma das tabelas `X$` relatadas por `list_allowed_sys_x$_views`.  | 
|  `p_force_creation`  |  Booleano  | FALSE |  Não  |  Um valor que indica se é necessário forçar a criação de uma visualização `RDS_X$` que já existe para uma tabela `X$`. Por padrão, o RDS não criará uma visualização se ela já existir. Para forçar a criação, defina esse parâmetro como `TRUE`.  | 

O exemplo a seguir cria a visualização `SYS.RDS_X$KGLOB` na tabela `X$KGLOB`. O formato do nome da visualização é `RDS_X$tablename`.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.create_sys_x$_view('X$KGLOB');

PL/SQL procedure successfully completed.
```

A consulta do dicionário de dados a seguir lista a visualização `SYS.RDS_X$KGLOB` e mostra o status. O usuário principal recebe automaticamente o privilégio `SELECT ... WITH GRANT OPTION` nessa visualização.

```
SQL> SET SERVEROUTPUT ON
SQL> COL OWNER FORMAT A30 
SQL> COL OBJECT_NAME FORMAT A30
SQL> COL STATUS FORMAT A30
SQL> SET LINESIZE 200
SQL> SELECT OWNER, OBJECT_NAME, STATUS 
FROM DBA_OBJECTS 
WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB';

OWNER                          OBJECT_NAME                    STATUS
------------------------------ ------------------------------ ------------------------------
SYS                            RDS_X$KGLOB                    VALID
```

**Importante**  
Não é garantido que as tabelas `X$` permaneçam as mesmas antes e depois de uma atualização. O RDS para Oracle descarta e recria as visualizações `RDS_X$` nas tabelas `X$` durante uma atualização do mecanismo. Depois, ele concede o privilégio `SELECT ... WITH GRANT OPTION` ao usuário principal. Depois de uma atualização, conceda privilégios aos usuários do banco de dados conforme necessário nas visualizações `RDS_X$` correspondentes.

## Listar visualizações SYS.RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.list-created-X-dollar"></a>

Para listar as visualizações `RDS_X$` existentes, use o procedimento `rdsadmin.rdsadmin_util.list_created_sys_x$_views` do RDS. O procedimento lista somente as visualizações que foram criadas pelo procedimento `create_sys_x$_view`. O exemplo a seguir lista as tabelas `X$` que têm visualizações `RDS_X$` correspondentes (exemplo de saída incluído).

```
SQL> SET SERVEROUTPUT ON
SQL> COL XD_TBL_NAME FORMAT A30
SQL> COL STATUS FORMAT A30
SQL> SET LINESIZE 200
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_util.list_created_sys_x$_views);

XD_TBL_NAME                    STATUS
------------------------------ ------------------------------
X$BH                           VALID
X$K2GTE                        VALID
X$KCBWBPD                      VALID

3 rows selected.
```

## Descartar visualizações RDS\$1X\$1
<a name="Appendix.Oracle.CommonDBATasks.drop-X-dollar"></a>

Para descartar uma visualização `SYS.RDS_X$`, use o procedimento `rdsadmin.rdsadmin_util.drop_sys_x$_view` do RDS. É possível descartar apenas as visualizações na saída de `rdsadmin.rdsadmin_util.list_allowed_sys_x$_views`. O procedimento `drop_sys_x$_view` aceita o parâmetro a seguir.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_x$_tbl`  |  varchar2  |  Null  |  Sim  |  O nome de uma tabela `X$` fixa válida. O valor deve ser uma das tabelas fixas `X$` relatadas por `list_created_sys_x$_views`.  | 

O exemplo a seguir cria a visualização `RDS_X$KGLOB` criada na tabela `X$KGLOB`.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.drop_sys_x$_view('X$KGLOB');

PL/SQL procedure successfully completed.
```

O exemplo a seguir mostra que a visualização `SYS.RDS_X$KGLOB` foi descartada (exemplo de saída incluído).

```
SQL> SET SERVEROUTPUT ON
SQL> COL OWNER FORMAT A30 
SQL> COL OBJECT_NAME FORMAT A30
SQL> COL STATUS FORMAT A30
SQL> SET LINESIZE 200
SQL> SELECT OWNER, OBJECT_NAME, STATUS 
FROM DBA_OBJECTS 
WHERE OWNER = 'SYS' AND OBJECT_NAME = 'RDS_X$KGLOB';

no rows selected
```

# Concessão de privilégios a usuários não mestres
<a name="Appendix.Oracle.CommonDBATasks.PermissionsNonMasters"></a>

Você pode conceder privilégios de seleção para muitos objetos no esquema `SYS`, usando a função `SELECT_CATALOG_ROLE`. A função `SELECT_CATALOG_ROLE` concede aos usuários privilégios `SELECT` em visualizações de dicionários de dados. O exemplo a seguir concede a função `SELECT_CATALOG_ROLE` a um usuário chamado `user1`. 

```
GRANT SELECT_CATALOG_ROLE TO user1;
```

É possível conceder privilégios `EXECUTE` para muitos objetos no esquema `SYS` usando a função `EXECUTE_CATALOG_ROLE`. A função `EXECUTE_CATALOG_ROLE` concede aos usuários privilégios `EXECUTE` para pacotes e procedimentos no dicionário de dados. O exemplo a seguir concede a função `EXECUTE_CATALOG_ROLE` a um usuário chamado *user1*. 

```
GRANT EXECUTE_CATALOG_ROLE TO user1;
```

O exemplo a seguir obtém as permissões permitidas pelas funções `SELECT_CATALOG_ROLE` e `EXECUTE_CATALOG_ROLE`. 

```
  SELECT * 
    FROM ROLE_TAB_PRIVS  
   WHERE ROLE IN ('SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE') 
ORDER BY ROLE, TABLE_NAME ASC;
```

O exemplo a seguir cria um usuário não mestre chamado `user1`, concede o privilégio `CREATE SESSION` e concede o privilégio `SELECT` em um banco de dados chamado *sh.sales*.

```
CREATE USER user1 IDENTIFIED BY PASSWORD;
GRANT CREATE SESSION TO user1;
GRANT SELECT ON sh.sales TO user1;
```

# Criação de funções personalizadas para verificar senhas
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword"></a>

Você pode criar uma função de verificação de senha personalizada das seguintes maneiras:
+ Para usar a lógica de verificação padrão e armazenar a função no esquema `SYS`, utilize o procedimento `create_verify_function`. 
+ Para usar a lógica de verificação padrão ou evitar armazenar a função no esquema `SYS`, utilize o procedimento `create_passthrough_verify_fcn`. 

# O procedimento create\$1verify\$1function
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Standard"></a>

Você pode criar uma função personalizada para verificar senhas usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_password_verify.create_verify_function`. O procedimento `create_verify_function` é compatível com todas as versões do RDS para Oracle.

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Sim  |  O nome da sua função personalizada. Essa função é criada por você no esquema SYS. Você atribui essa função a perfis de usuário.   | 
|  `p_min_length`  |  número  |  8  |  Não  |  O número mínimo de caracteres necessários.  | 
|  `p_max_length`  |  número  |  256  |  Não  |  O número máximo de caracteres permitidos.  | 
|  `p_min_letters`  |  número  |  1  |  Não  |  O número mínimo de letras necessárias.  | 
|  `p_min_uppercase`  |  número  |  0  |  Não  |  O número mínimo de letras maiúsculas necessárias.  | 
|  `p_min_lowercase`  |  número  |  0  |  Não  |  O número mínimo de letras minúsculas necessárias.  | 
|  `p_min_digits`  |  número  |  1  |  Não  |  O número mínimo de dígitos necessários.  | 
|  `p_min_special`  |  número  |  0  |  Não  |  O número mínimo de caracteres especiais necessários.  | 
|  `p_min_different_chars`  |  número  |  3  |  Não  |  O número mínimo de caracteres diferentes exigido entre a senha antiga e nova.  | 
|  `p_disallow_username`  |  booliano  |  true  |  Não  |  Defina como `true` para não permitir o nome de usuário na senha.  | 
|  `p_disallow_reverse`  |  booliano  |  true  |  Não  |  Defina como `true` para não permitir o inverso do nome de usuário na senha.  | 
|  `p_disallow_db_name`  |  booliano  |  true  |  Não  |  Defina como `true` para não permitir o nome do banco de dados ou do servidor na senha.  | 
|  `p_disallow_simple_strings`  |  booliano  |  true  |  Não  |  Defina como `true` para não permitir strings simples como senha.  | 
|  `p_disallow_whitespace`  |  booliano  |  false  |  Não  |  Defina como `true` para não permitir caracteres de espaço em branco na senha.  | 
|  `p_disallow_at_sign`  |  booliano  |  false  |  Não  |  Defina como `true` para não permitir o caractere @ na senha.  | 

Você pode criar várias funções de verificação de senha.

Existem restrições quanto ao nome da sua função personalizada. Sua função personalizada não pode ter o mesmo nome que um objeto de sistema existente. O nome pode ter no máximo 30 caracteres. Além disso, o nome deve incluir uma das seguintes strings: `PASSWORD`, `VERIFY`, `COMPLEXITY`, `ENFORCE` ou `STRENGTH`. 

O exemplo a seguir cria uma função chamada `CUSTOM_PASSWORD_FUNCTION`. A função requer que uma senha tenha pelo menos 12 caracteres, 2 caracteres em maiúsculas, 1 dígito e 1 caractere especial e que a senha não permita o caractere @. 

```
begin
    rdsadmin.rdsadmin_password_verify.create_verify_function(
        p_verify_function_name => 'CUSTOM_PASSWORD_FUNCTION', 
        p_min_length           => 12, 
        p_min_uppercase        => 2, 
        p_min_digits           => 1, 
        p_min_special          => 1,
        p_disallow_at_sign     => true);
end;
/
```

Para ver o texto da sua função de verificação, consulte `DBA_SOURCE`. O exemplo a seguir obtém o texto de uma função de senha personalizada chamada `CUSTOM_PASSWORD_FUNCTION`. 

```
COL TEXT FORMAT a150

  SELECT TEXT 
    FROM DBA_SOURCE 
   WHERE OWNER = 'SYS' 
     AND NAME = 'CUSTOM_PASSWORD_FUNCTION' 
ORDER BY LINE;
```

Para associar sua função de verificação a um perfil de usuário, use `ALTER PROFILE`. O exemplo a seguir associa uma função de verificação PL/SQL denominada `CUSTOM_PASSWORD_FUNCTION` ao perfil de usuário `DEFAULT`. `PASSWORD_VERIFY_FUNCTION` é o nome do recurso do perfil da Oracle. 

```
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;
```

Para ver quais perfis de usuários estão associados a quais funções de verificação, consulte `DBA_PROFILES`. O exemplo a seguir obtém os perfis associados à função de verificação personalizada chamada `CUSTOM_PASSWORD_FUNCTION`. 

```
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_VERIFY_FUNCTION' AND LIMIT = 'CUSTOM_PASSWORD_FUNCTION';


PROFILE                    RESOURCE_NAME                     RESOURCE  LIMIT
-------------------------  --------------------------------  --------  ------------------------
DEFAULT                    PASSWORD_VERIFY_FUNCTION          PASSWORD  CUSTOM_PASSWORD_FUNCTION
```

O exemplo a seguir obtém todos os perfis e as funções de verificação de senha às quais eles estão associados. 

```
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_VERIFY_FUNCTION';

PROFILE                    RESOURCE_NAME                     RESOURCE  LIMIT
-------------------------  --------------------------------  --------  ------------------------
DEFAULT                    PASSWORD_VERIFY_FUNCTION          PASSWORD  CUSTOM_PASSWORD_FUNCTION
RDSADMIN                   PASSWORD_VERIFY_FUNCTION          PASSWORD  NULL
```

# O procedimento create\$1passthrough\$1verify\$1fcn
<a name="Appendix.Oracle.CommonDBATasks.CustomPassword.Custom"></a>

O procedimento `create_passthrough_verify_fcn` é compatível com todas as versões do RDS para Oracle.

Você pode criar uma função personalizada para verificar senhas usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn`. O procedimento `create_passthrough_verify_fcn` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_verify_function_name`  |  varchar2  |  —  |  Sim  |  O nome da sua função de verificação personalizada. Esta é uma função de wrapper criada por você no esquema SYS e não contém lógica de verificação. Você atribui essa função a perfis de usuário.   | 
|  `p_target_owner`  |  varchar2  |  —  |  Sim  |  O proprietário do esquema da sua função de verificação personalizada.  | 
|  `p_target_function_name`  |  varchar2  |  —  |  Sim  |  O nome da sua função personalizada existente que contém a lógica de verificação. Sua função personalizada deve retornar um valor booliano. Sua função deverá retornar `true` se a senha é válida e `false` se a senha for inválida.   | 

O exemplo a seguir cria uma função de verificação de senha que usa a lógica da função chamada `PASSWORD_LOGIC_EXTRA_STRONG`. 

```
begin
    rdsadmin.rdsadmin_password_verify.create_passthrough_verify_fcn(
        p_verify_function_name => 'CUSTOM_PASSWORD_FUNCTION', 
        p_target_owner         => 'TEST_USER',
        p_target_function_name => 'PASSWORD_LOGIC_EXTRA_STRONG');
end;
/
```

Para associar a função de verificação a um perfil de usuário, use `alter profile`. O seguinte exemplo associa a função de verificação ao perfil de usuário `DEFAULT`. 

```
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION CUSTOM_PASSWORD_FUNCTION;
```

## Configuração de um servidor DNS personalizado
<a name="Appendix.Oracle.CommonDBATasks.CustomDNS"></a>

O Amazon RDS oferece suporte para acesso à rede de saída nas suas instâncias de bancos de dados que executam o Oracle. Para obter mais informações sobre acesso à rede de saída, inclusive pré-requisitos, consulte [Configurar o acesso UTL\$1HTTP usando certificados e uma carteira Oracle](Oracle.Concepts.ONA.md). 

O Amazon RDS Oracle permite a resolução do Serviço de Nomes de Domínio (DNS) de um servidor DNS personalizado que pertence ao cliente. Você pode resolver apenas nomes de domínio totalmente qualificados a partir da sua instância de banco de dados do Amazon RDS por meio do seu servidor DNS personalizado. 

Após a configuração do seu servidor de nomes DNS personalizado, demora até 30 minutos para propagar as alterações na sua instância de banco de dados. Depois que as alterações são propagadas para sua a instância de banco de dados, todo o tráfego de rede de saída que requer uma pesquisa de DNS consulta o servidor DNS por meio da porta 53. 

Para configurar um servidor DNS personalizado para a instância de banco de dados do Amazon RDS for Oracle, faça o seguinte: 
+ Nas opções de DHCP anexadas à nuvem privada virtual (VPC), defina a opção `domain-name-servers` como o endereço IP do seu servidor de nomes DNS. Para obter mais informações, consulte [Conjuntos de opções de DHCP](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html). 
**nota**  
A opção `domain-name-servers` aceita até quatro valores, mas sua instância de banco de dados do Amazon RDS usa apenas o primeiro valor. 
+ Certifique-se de que seu servidor DNS possa resolver todas as consultas de pesquisa, incluindo nomes DNS públicos, nomes DNS privados do Amazon EC2 e nomes DNS específicos do cliente. Se o tráfego de rede de saída contiver pesquisas de DNS que o seu servidor DNS não pode manipular, este deverá ter provedores de DNS upstream configurados. 
+ Configure seu servidor DNS para produzir respostas de protocolo UDP de 512 bytes ou menos. 
+ Configure seu servidor DNS para produzir respostas de protocolo TCP de 1024 bytes ou menos. 
+ Configure seu servidor DNS para permitir tráfego de entrada das suas instâncias de banco de dados do Amazon RDS pela porta 53. Se o seu servidor DNS estiver em uma Amazon VPC, ela deverá ter um grupo de segurança que contenha regras de entrada que permitam tráfego UDP e TCP na porta 53. Se o seu servidor DNS não estiver em uma Amazon VPC, ele deverá ter uma lista de permissões de firewall apropriada para permitir o tráfego de entrada UDP e TCP na porta 53.

  Para obter mais informações, consulte [Grupos de segurança para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) e [Adição e remoção de regras](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#AddRemoveRules). 
+ Configurar a VPC da sua instância de banco de dados do Amazon RDS para permitir o tráfego de saída por meio da porta 53. Sua VPC deve ter um security group que contém regras de saída que permitem o tráfego TCP e UDP na porta 53. 

  Para obter mais informações, consulte [Grupos de segurança para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) e [Adição e remoção de regras](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#AddRemoveRules). 
+ O caminho de roteamento entre a instância de banco de dados do Amazon RDS e o servidor DNS deve ser configurado corretamente para permitir o tráfego DNS. 
  + Se a instância de banco de dados do Amazon RDS e o servidor DNS não estiverem na mesma VPC, uma conexão de emparelhamento precisará ser configurada entre eles. Para obter mais informações, consulte [O que é emparelhamento de VPC?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) 

# Configurar e anular configuração de eventos de diagnóstico do sistema
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents"></a>

Para configurar e anular a configuração de eventos de diagnóstico no nível da sessão, você pode usar a instrução Oracle SQL `ALTER SESSION SET EVENTS`. No entanto, para definir eventos no nível do sistema, você não pode usar o Oracle SQL. Em vez disso, use os procedimentos de evento do sistema no pacote `rdsadmin.rdsadmin_util`. Os procedimentos de eventos do sistema estão disponíveis nas seguintes versões do mecanismo:
+ Todas as versões do Oracle Database 21c
+ 19.0.0.0.ru-2020-10.rur-2020-10.r1 e versões posteriores do Oracle Database 19c

  Consulte mais informações em [Version 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) em *Notas de lançamento do Amazon RDS para Oracle*.

**Importante**  
Internamente, o pacote `rdsadmin.rdsadmin_util` define eventos usando a instrução `ALTER SYSTEM SET EVENTS`. Essa instrução `ALTER SYSTEM` não está incluída na documentação do Oracle Database. Alguns eventos de diagnóstico do sistema podem gerar grandes quantidades de informações de monitoramento, causar contenção ou afetar a disponibilidade do banco de dados. Recomendamos que você teste eventos de diagnóstico específicos em seu banco de dados de não produção e defina apenas eventos em seu banco de dados de produção sob orientação do Oracle Support.

## Listar eventos de diagnóstico do sistema permitidos
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.listing"></a>

Para listar os eventos do sistema que você pode definir, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.list_allowed_system_events`. Este procedimento não aceita parâmetros.

O exemplo a seguir lista todos os eventos do sistema que você pode definir.

```
SET SERVEROUTPUT ON
EXEC rdsadmin.rdsadmin_util.list_allowed_system_events;
```

A saída de exemplo a seguir lista os números de eventos e suas descrições. Use os procedimentos `set_system_event` do Amazon RDS para definir esses eventos e `unset_system_event` para desconfigurá-los.

```
604   - error occurred at recursive SQL level
942   - table or view does not exist
1401  - inserted value too large for column
1403  - no data found
1410  - invalid ROWID
1422  - exact fetch returns more than requested number of rows
1426  - numeric overflow
1427  - single-row subquery returns more than one row
1476  - divisor is equal to zero
1483  - invalid length for DATE or NUMBER bind variable
1489  - result of string concatenation is too long
1652  - unable to extend temp segment by  in tablespace
1858  - a non-numeric character was found where a numeric was expected
4031  - unable to allocate  bytes of shared memory ("","","","")
6502  - PL/SQL: numeric or value error
10027 - Specify Deadlock Trace Information to be Dumped
10046 - enable SQL statement timing
10053 - CBO Enable optimizer trace
10173 - Dynamic Sampling time-out error
10442 - enable trace of kst for ORA-01555 diagnostics
12008 - error in materialized view refresh path
12012 - error on auto execute of job
12504 - TNS:listener was not given the SERVICE_NAME in CONNECT_DATA
14400 - inserted partition key does not map to any partition
31693 - Table data object  failed to load/unload and is being skipped due to error:
```

**nota**  
A lista dos eventos do sistema permitidos pode mudar ao longo do tempo. Para se certificar de que você tem a lista mais recente de eventos qualificados, use `rdsadmin.rdsadmin_util.list_allowed_system_events`.

## Definir eventos de diagnóstico do sistema
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.setting"></a>

Para definir um evento do sistema, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.set_system_event`. Você só pode definir eventos listados na saída do `rdsadmin.rdsadmin_util.list_allowed_system_events`. O procedimento `set_system_event` tem os parâmetros a seguir.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_event`  |  número  |  —  |  Sim  |  O número do evento do sistema. O valor deve ser um dos números de eventos relatados por `list_allowed_system_events`.  | 
|  `p_level`  |  número  |  —  |  Sim  |  O nível do evento. Consulte a documentação do Oracle Database ou o Oracle Support para obter descrições de diferentes valores de nível.  | 

O procedimento `set_system_event` constrói e executa as instruções `ALTER SYSTEM SET EVENTS` necessárias de acordo com os seguintes princípios:
+ O tipo de evento (`context` ou `errorstack`) é determinado automaticamente.
+ Uma instrução no formulário `ALTER SYSTEM SET EVENTS 'event LEVEL event_level'` define os eventos de contexto. Esta notação é equivalente a `ALTER SYSTEM SET EVENTS 'event TRACE NAME CONTEXT FOREVER, LEVEL event_level'`.
+ Uma instrução no formulário `ALTER SYSTEM SET EVENTS 'event ERRORSTACK (event_level)'` define os eventos de pilha de erros. Esta notação é equivalente a `ALTER SYSTEM SET EVENTS 'event TRACE NAME ERRORSTACK LEVEL event_level'`.

O exemplo a seguir define o evento 942 no nível 3 e o evento 10442 no nível 10. A amostra de saída está incluída.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(942,3);
Setting system event 942 with: alter system set events '942 errorstack (3)'

PL/SQL procedure successfully completed.

SQL> EXEC rdsadmin.rdsadmin_util.set_system_event(10442,10);
Setting system event 10442 with: alter system set events '10442 level 10'

PL/SQL procedure successfully completed.
```

## Listar eventos de diagnóstico do sistema definidos
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.listing-set"></a>

Para listar os eventos do sistema que estão definidos no momento, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.list_set_system_events`. Este procedimento relata apenas os eventos definidos no nível do sistema por `set_system_event`.

O exemplo a seguir lista os eventos ativos do sistema.

```
SET SERVEROUTPUT ON
EXEC rdsadmin.rdsadmin_util.list_set_system_events;
```

A saída de exemplo a seguir mostra a lista de eventos, o tipo de evento, o nível no qual os eventos estão definidos no momento e a hora em que o evento foi definido.

```
942 errorstack (3) - set at 2020-11-03 11:42:27
10442 level 10 - set at 2020-11-03 11:42:41

PL/SQL procedure successfully completed.
```

## Desconfigurar eventos de diagnóstico do sistema
<a name="Appendix.Oracle.CommonDBATasks.SystemEvents.unsetting"></a>

Para desconfigurar um evento do sistema, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.unset_system_event`. Você só pode desconfigurar eventos listados na saída do `rdsadmin.rdsadmin_util.list_allowed_system_events`. O procedimento `unset_system_event` aceita o seguinte parâmetro.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_event`  |  número  |  —  |  Sim  |  O número do evento do sistema. O valor deve ser um dos números de eventos relatados por `list_allowed_system_events`.  | 

O exemplo a seguir desconfigura os eventos 942 e 10442. A amostra de saída está incluída.

```
SQL> SET SERVEROUTPUT ON
SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(942);
Unsetting system event 942 with: alter system set events '942 off'

PL/SQL procedure successfully completed.

SQL> EXEC rdsadmin.rdsadmin_util.unset_system_event(10442);
Unsetting system event 10442 with: alter system set events '10442 off'

PL/SQL procedure successfully completed.
```

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

# Verificação de um banco de dados
<a name="Appendix.Oracle.CommonDBATasks.CheckpointingDatabase"></a>

Para verificar um banco de dados, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.checkpoint`. O procedimento `checkpoint` não tem parâmetros. 

O exemplo a seguir verifica o banco de dados.

```
EXEC rdsadmin.rdsadmin_util.checkpoint;
```

# Definição da recuperação distribuída
<a name="Appendix.Oracle.CommonDBATasks.SettingDistributedRecovery"></a>

Para definir a recuperação distribuída, use os procedimentos `rdsadmin.rdsadmin_util.enable_distr_recovery` e `disable_distr_recovery` do Amazon RDS. Os procedimentos não têm parâmetros. 

O exemplo a seguir habilita a recuperação distribuída.

```
EXEC rdsadmin.rdsadmin_util.enable_distr_recovery;
```

O exemplo a seguir desabilita a recuperação distribuída.

```
EXEC rdsadmin.rdsadmin_util.disable_distr_recovery;
```

# Definição do fuso horário do banco de dados
<a name="Appendix.Oracle.CommonDBATasks.TimeZoneSupport"></a>

Você pode definir o fuso horário do banco de dados Oracle do Amazon RDS das seguintes maneiras: 
+ A opção `Timezone`

  A opção `Timezone` altera o fuso horário no nível do host e afeta todas as colunas e valores de data, como `SYSDATE`. Para ter mais informações, consulte [Fuso horário da Oracle](Appendix.Oracle.Options.Timezone.md). 
+ O procedimento do Amazon RDS `rdsadmin.rdsadmin_util.alter_db_time_zone`

  O procedimento `alter_db_time_zone` altera o fuso horário para apenas alguns tipos de dados e não altera `SYSDATE`. Existem restrições adicionais na definição do fuso horário, listadas na [documentação do Oracle](http://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006705). 

**nota**  
Você também pode definir o fuso horário padrão para o Oracle Scheduler. Para ter mais informações, consulte [Definir o fuso horário para trabalhos do Oracle Scheduler](Appendix.Oracle.CommonDBATasks.Scheduler.md#Appendix.Oracle.CommonDBATasks.Scheduler.TimeZone).

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_new_tz`  |  varchar2  |  —  |  Sim  |  O novo fuso horário como uma região nomeada ou um deslocamento absoluto do Tempo Universal Coordenado (UTC). Os deslocamentos válidos variam de -12:00 a \$114:00.   | 

O exemplo a seguir altera o fuso horário para UTC mais 3 horas. 

```
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => '+3:00');
```

O exemplo a seguir altera o fuso horário para o fuso horário de África/Algiers. 

```
EXEC rdsadmin.rdsadmin_util.alter_db_time_zone(p_new_tz => 'Africa/Algiers');
```

Depois de alterar o fuso horário usando o procedimento `alter_db_time_zone`, reinicie a instância de banco de dados para que a alteração entre em vigor. Para ter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md). Para obter informações sobre como atualizar fusos horários, consulte [Considerações sobre fuso horário](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.DST).

# Gerar relatórios de performance com o AWR (Automatic Workload Repository)
<a name="Appendix.Oracle.CommonDBATasks.AWR"></a>

Para reunir dados de performance e gerar relatórios, a Oracle recomenda o AWR (Automatic Workload Repository). O AWR requer o Oracle Database Enterprise Edition e uma licença para os pacotes de Diagnóstico e Ajuste. Para ativar o AWR, defina o parâmetro de inicialização `CONTROL_MANAGEMENT_PACK_ACCESS` como `DIAGNOSTIC` ou `DIAGNOSTIC+TUNING`. 

## Trabalhar com relatórios do AWR no RDS
<a name="Appendix.Oracle.CommonDBATasks.AWRTechniques"></a>

Para gerar relatórios do AWR, é possível executar scripts como `awrrpt.sql`. Esses scripts são instalados no servidor host do banco de dados. No Amazon RDS, não é possível ter acesso direto ao host. No entanto, é possível obter cópias de scripts SQL de outra instalação do Oracle Database. 

Também é possível usar o AWR executando procedimentos no pacote PL/SQL `SYS.DBMS_WORKLOAD_REPOSITORY`. É possível usar esse pacote para gerenciar linhas de base e snapshots e também para exibir relatórios do ASH e do AWR. Por exemplo, para gerar um relatório do AWR em formato de texto, execute o procedimento `DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT`. No entanto, não é possível acessar esses relatórios da AWR a partir do Console de gerenciamento da AWS. 

Ao trabalhar com o AWR, recomendamos usar os procedimentos `rdsadmin.rdsadmin_diagnostic_util`. É possível usar esses procedimentos para gerar o seguinte:
+ Relatórios do AWR
+ Relatórios do ASH (Active Session History)
+ Relatórios do ADDM (Automatic Database Diagnostic Monitor)
+ Arquivos de despejo do Oracle Data Pump Export de dados do AWR

Os procedimentos `rdsadmin_diagnostic_util` salvam os relatórios no sistema de arquivos da instância de banco de dados. É possível acessar esses relatórios no console. Também é possível acessar relatórios usando os procedimentos `rdsadmin.rds_file_util` e acessar relatórios copiados para o Amazon S3 usando a opção Integração do S3. Para obter mais informações, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) e [Integração do Amazon S3](oracle-s3-integration.md). 

É possível usar os procedimentos `rdsadmin_diagnostic_util` nas seguintes versões de mecanismo de banco de dados do Amazon RDS for Oracle:
+ Todas as versões do Oracle Database 21c
+ 19.0.0.0.ru-2020-04.rur-2020-04.r1 e versões posteriores do Oracle Database 19c

Para conferir um blog que explica como trabalhar com relatórios de diagnóstico em cenários de replicação, consulte [Gerar relatórios do AWR para réplicas de leitura do Amazon RDS para Oracle](https://aws.amazon.com/blogs/database/generate-awr-reports-for-amazon-rds-for-oracle-read-replicas/).

## Parâmetros comuns para o pacote do utilitário de diagnóstico
<a name="Appendix.Oracle.CommonDBATasks.CommonAWRParam"></a>

Normalmente, você usa os seguintes parâmetros ao gerenciar o AWR e o ADDM com o pacote `rdsadmin_diagnostic_util`.

<a name="rds-provisioned-iops-storage-range-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.AWR.html)

Normalmente, você usa os seguintes parâmetros ao gerenciar o ASH com o pacote rdsadmin\$1diagnostic\$1util.

<a name="rds-provisioned-iops-storage-range-reference"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.AWR.html)

## Gerar um relatório do AWR
<a name="Appendix.Oracle.CommonDBATasks.GenAWRReport"></a>

Para gerar um relatório do AWR, use o procedimento `rdsadmin.rdsadmin_diagnostic_util.awr_report`.

O exemplo a seguir gera um relatório do AWR para o intervalo de snapshot 101–106. O arquivo de texto de saída é chamado de `awrrpt_101_106.txt`. É possível acessar esse relatório no Console de gerenciamento da AWS. 

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(101,106,'TEXT');
```

O exemplo a seguir gera um relatório HTML para o intervalo de snapshot 63–65. O arquivo HTML de saída é chamado de `awrrpt_63_65.html`. O procedimento grava o relatório no diretório de banco de dados não padrão chamado de `AWR_RPT_DUMP`.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_report(63,65,'HTML','AWR_RPT_DUMP');
```

## Extrair dados do AWR em um arquivo de despejo
<a name="Appendix.Oracle.CommonDBATasks.ExtractAWR"></a>

Para extrair dados do AWR em um arquivo de despejo, use o procedimento `rdsadmin.rdsadmin_diagnostic_util.awr_extract`. Você pode usar essa função somente em nível de PDB.

O exemplo a seguir extrai o intervalo de snapshot 101–106. O arquivo de despejo de saída é chamado de `awrextract_101_106.dmp`. É possível acessar esse arquivo por meio do console.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(101,106);
```

O exemplo a seguir extrai o intervalo de snapshot 63–65. O arquivo de despejo de saída é chamado de `awrextract_63_65.dmp`. O arquivo é armazenado no diretório de banco de dados não padrão chamado de `AWR_RPT_DUMP`.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.awr_extract(63,65,'AWR_RPT_DUMP');
```

## Gerar um relatório do ADDM
<a name="Appendix.Oracle.CommonDBATasks.ADDM"></a>

Para gerar um relatório do ADDM, use o procedimento `rdsadmin.rdsadmin_diagnostic_util.addm_report`. 

O exemplo a seguir gera um relatório do ADDM para o intervalo de snapshot 101–106. O arquivo de texto de saída é chamado de `addmrpt_101_106.txt`. É possível acessar o relatório por meio do console.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(101,106);
```

O exemplo a seguir gera um relatório do ADDM para o intervalo de snapshot 63–65. O arquivo de texto de saída é chamado de `addmrpt_63_65.txt`. O arquivo é armazenado no diretório de banco de dados não padrão chamado de `ADDM_RPT_DUMP`.

```
EXEC rdsadmin.rdsadmin_diagnostic_util.addm_report(63,65,'ADDM_RPT_DUMP');
```

## Gerar um relatório do ASH
<a name="Appendix.Oracle.CommonDBATasks.ASH"></a>

Para gerar um relatório do ASH, use o procedimento `rdsadmin.rdsadmin_diagnostic_util.ash_report`. 

O exemplo a seguir gera um relatório do ASH que inclui os dados de 14 minutos atrás até a hora atual. O nome do arquivo de saída usa o formato `ashrptbegin_timeend_time.txt`, onde `begin_time` e `end_time` usam o formato `YYYYMMDDHH24MISS`. É possível acessar o arquivo por meio do console.

```
BEGIN
    rdsadmin.rdsadmin_diagnostic_util.ash_report(
        begin_time     =>     SYSDATE-14/1440,
        end_time       =>     SYSDATE,
        report_type    =>     'TEXT');
END;
/
```

O exemplo a seguir gera um relatório do ASH que inclui os dados de 18 de novembro de 2019 às 18:07 a 18 de novembro de 2019 às 18h15. O nome do relatório HTML de saída é `ashrpt_20190918180700_20190918181500.html`. O relatório é armazenado no diretório de banco de dados não padrão chamado de `AWR_RPT_DUMP`.

```
BEGIN
    rdsadmin.rdsadmin_diagnostic_util.ash_report(
        begin_time     =>    TO_DATE('2019-09-18 18:07:00', 'YYYY-MM-DD HH24:MI:SS'),
        end_time       =>    TO_DATE('2019-09-18 18:15:00', 'YYYY-MM-DD HH24:MI:SS'),
        report_type    =>    'html',
        dump_directory =>    'AWR_RPT_DUMP');
END;
/
```

## Acessar relatórios do AWR no console ou na CLI
<a name="Appendix.Oracle.CommonDBATasks.AWRConsole"></a>

Para acessar relatórios do AWR ou exportar arquivos de despejo, é possível usar o Console de gerenciamento da AWS ou a AWS CLI. Para obter mais informações, consulte [Como baixar um arquivo de log de banco de dados](USER_LogAccess.Procedural.Downloading.md). 

# Ajuste de vínculos de banco de dados para uso com instâncias de bancos de dados em uma VPC
<a name="Appendix.Oracle.CommonDBATasks.DBLinks"></a>

Para usar links de banco de dados Oracle com instâncias de bancos de dados do Amazon RDS na mesma nuvem privada virtual (VPC) ou em VPCs emparelhadas, as duas instâncias de bancos de dados devem ter uma rota válida entre elas. Verifique a rota válida entre as instâncias de bancos de dados usando suas tabelas de roteamento da VPC e a lista de controle de acesso (ACL) à rede. 

O grupo de segurança de cada instância de banco de dados deve permitir a entrada e a saída da outra instância de banco de dados. As regras de entrada e saída podem se referir a security groups da mesma VPC ou de uma VPC emparelhada. Para ter mais informações, consulte [Atualização dos seus grupos de segurança para referenciar grupos de segurança na VPC emparelhada](https://docs.aws.amazon.com/vpc/latest/peering/working-with-vpc-peering.html#vpc-peering-security-groups). 

Se você tiver configurado um servidor DNS personalizado usando os conjuntos de opções DHCP na sua VPC, seu servidor DNS personalizado deverá ser capaz de resolver o nome do destino do vínculo de banco de dados. Para ter mais informações, consulte [Configuração de um servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS). 

Para ter mais informações sobre como usar vínculos de banco de dados com o Oracle Data Pump, consulte [Importar usando o Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md). 

# Definir a edição padrão para uma instância de banco de dados
<a name="Appendix.Oracle.CommonDBATasks.DefaultEdition"></a>

Você pode redefinir objetos de banco de dados em um ambiente privado chamado de edição. Você pode usar a redefinição com base na edição para atualizar os objetos de banco de dados de um aplicativo com tempo de inatividade mínimo. 

Você pode definir a edição padrão de uma instância de banco de dados Oracle do Amazon RDS usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.alter_default_edition`. 

O exemplo a seguir define a edição padrão para a instância de banco de dados Oracle do Amazon RDS como `RELEASE_V1`. 

```
EXEC rdsadmin.rdsadmin_util.alter_default_edition('RELEASE_V1');
```

O exemplo a seguir define a edição padrão para a instância de banco de dados Oracle do Amazon RDS como o padrão Oracle. 

```
EXEC rdsadmin.rdsadmin_util.alter_default_edition('ORA$BASE');
```

Para ter mais informações sobre a redefinição com base na edição Oracle, consulte [About editions and edition-based redefinition](https://docs.oracle.com/database/121/ADMIN/general.htm#ADMIN13167) na documentação da Oracle.

# Habilitar a auditoria para a tabela SYS.AUD\$1
<a name="Appendix.Oracle.CommonDBATasks.EnablingAuditing"></a>

Para habilitar a auditoria na tabela de trilha de auditoria de banco de dados `SYS.AUD$`, use o procedimento `rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table` do Amazon RDS. A única propriedade de auditoria com suporte é `ALL`. Não é possível auditar ou não auditar instruções ou operações individuais.

A habilitação da auditoria tem suporte para instâncias de banco de dados Oracle que executam as seguintes versões:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_by_access`  |  booliano  |  true  |  Não  |  Defina como `true` para auditar `BY ACCESS`. Defina como `false` para auditar `BY SESSION`.  | 

A consulta a seguir retorna a configuração de auditoria atual para `SYS.AUD$` para um banco de dados:

```
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
```

Os comandos a seguir habilitam a auditoria de `ALL` em `SYS.AUD$` `BY ACCESS`.

```
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table;

EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => true);
```

O comando a seguir habilita a auditoria de `ALL` em `SYS.AUD$` `BY SESSION`.

```
EXEC rdsadmin.rdsadmin_master_util.audit_all_sys_aud_table(p_by_access => false);
```

Para ter mais informações, consulte [AUDIT (traditional auditing)](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/AUDIT-Traditional-Auditing.html#GUID-ADF45B07-547A-4096-8144-50241FA2D8DD) (Auditoria [auditoria tradicional]) na documentação do Oracle. 

# Desabilitar a auditoria para a tabela SYS.AUD\$1
<a name="Appendix.Oracle.CommonDBATasks.DisablingAuditing"></a>

Para desabilitar a auditoria na tabela de trilha de auditoria de banco de dados `SYS.AUD$`, use o procedimento `rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table` do Amazon RDS. Este procedimento não usa parâmetros. 

A consulta a seguir retorna a configuração de auditoria atual para `SYS.AUD$` para um banco de dados:

```
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE OWNER='SYS' AND OBJECT_NAME='AUD$';
```

O comando a seguir desabilita a auditoria de `ALL` em `SYS.AUD$`.

```
EXEC rdsadmin.rdsadmin_master_util.noaudit_all_sys_aud_table;
```

Para ter mais informações, consulte [NOAUDIT (traditional auditing)](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/NOAUDIT-Traditional-Auditing.html#GUID-9D8EAF18-4AB3-4C04-8BF7-37BD0E15434D) (Sem auditoria [auditoria tradicional]) na documentação do Oracle. 

# Limpar criações de índice online interrompidas
<a name="Appendix.Oracle.CommonDBATasks.CleanupIndex"></a>

Para limpar criações de índice online com falha, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_dbms_repair.online_index_clean`. 

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `object_id`  |  binary\$1integer  |  `ALL_INDEX_ID`  |  Não  |  O ID do objeto do índice. Normalmente, é possível usar o ID do objeto do texto do erro ORA-08104.  | 
|  `wait_for_lock`  |  binary\$1integer  |  `rdsadmin.rdsadmin_dbms_repair.lock_wait`  |  Não  |  Especifique `rdsadmin.rdsadmin_dbms_repair.lock_wait`, o padrão, para tentar obter um bloqueio no objeto subjacente e tentar novamente até que um limite interno seja atingido se o bloqueio falhar. Especifique `rdsadmin.rdsadmin_dbms_repair.lock_nowait` para tentar obter um bloqueio no objeto subjacente, mas não tentar novamente se o bloqueio falhar.  | 

O exemplo a seguir limpa uma criação de índice online com falha:

```
declare
  is_clean boolean;
begin
  is_clean := rdsadmin.rdsadmin_dbms_repair.online_index_clean(
    object_id     => 1234567890, 
    wait_for_lock => rdsadmin.rdsadmin_dbms_repair.lock_nowait
  );
end;
/
```

Para ter mais informações, consulte [ONLINE\$1INDEX\$1CLEAN function](https://docs.oracle.com/database/121/ARPLS/d_repair.htm#ARPLS67555) (Função ONLINE\$1INDEX\$1CLEAN) na documentação do Oracle. 

# Ignorar blocos corrompidos
<a name="Appendix.Oracle.CommonDBATasks.SkippingCorruptBlocks"></a>

Para ignorar blocos corrompidos durante as verificações de índices e tabelas, use o pacote `rdsadmin.rdsadmin_dbms_repair`.

Os procedimentos a seguir encapsulam a funcionalidade do procedimento `sys.dbms_repair.admin_table` e não usam parâmetros:
+ `rdsadmin.rdsadmin_dbms_repair.create_repair_table`
+ `rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table`
+ `rdsadmin.rdsadmin_dbms_repair.drop_repair_table`
+ `rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table`
+ `rdsadmin.rdsadmin_dbms_repair.purge_repair_table`
+ `rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table`

Os seguintes procedimentos usam o mesmo parâmetro que seus equivalentes no pacote `DBMS_REPAIR` para bancos de dados Oracle:
+ `rdsadmin.rdsadmin_dbms_repair.check_object`
+ `rdsadmin.rdsadmin_dbms_repair.dump_orphan_keys`
+ `rdsadmin.rdsadmin_dbms_repair.fix_corrupt_blocks`
+ `rdsadmin.rdsadmin_dbms_repair.rebuild_freelists`
+ `rdsadmin.rdsadmin_dbms_repair.segment_fix_status`
+ `rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks`

Para ter mais informações sobre como lidar com a corrupção de banco de dados, consulte [DBMS\$1REPARE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_REPAIR.html#GUID-B8EC4AB3-4D6A-46C9-857F-4ED53CD9C948) na documentação do Oracle.

**Example Responder a blocos corrompidos**  
Este exemplo mostra o fluxo de trabalho básico para responder a blocos corrompidos. Suas etapas dependerão do local e da natureza da corrupção do bloco.  
Antes de tentar reparar blocos corrompidos, revise atentamente a documentação [DBMS\$1REPARE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_REPAIR.html#GUID-B8EC4AB3-4D6A-46C9-857F-4ED53CD9C948).

**Como ignorar blocos corrompidos durante as verificações de índices e tabelas**

1. Execute os procedimentos a seguir para criar tabelas de reparo se elas ainda não existirem.

   ```
   EXEC rdsadmin.rdsadmin_dbms_repair.create_repair_table;
   EXEC rdsadmin.rdsadmin_dbms_repair.create_orphan_keys_table;
   ```

1. Execute os procedimentos a seguir para verificar registros existentes e depurá-los, caso seja apropriado.

   ```
   SELECT COUNT(*) FROM SYS.REPAIR_TABLE;
   SELECT COUNT(*) FROM SYS.ORPHAN_KEY_TABLE;
   SELECT COUNT(*) FROM SYS.DBA_REPAIR_TABLE;
   SELECT COUNT(*) FROM SYS.DBA_ORPHAN_KEY_TABLE;
   
   EXEC rdsadmin.rdsadmin_dbms_repair.purge_repair_table;
   EXEC rdsadmin.rdsadmin_dbms_repair.purge_orphan_keys_table;
   ```

1. Execute o procedimento a seguir para verificar blocos corrompidos.

   ```
   SET SERVEROUTPUT ON
   DECLARE v_num_corrupt INT;
   BEGIN
     v_num_corrupt := 0;
     rdsadmin.rdsadmin_dbms_repair.check_object (
       schema_name => '&corruptionOwner',
       object_name => '&corruptionTable',
       corrupt_count =>  v_num_corrupt
     );
     dbms_output.put_line('number corrupt: '||to_char(v_num_corrupt));
   END;
   /
   
   COL CORRUPT_DESCRIPTION FORMAT a30
   COL REPAIR_DESCRIPTION FORMAT a30
   
   SELECT OBJECT_NAME, BLOCK_ID, CORRUPT_TYPE, MARKED_CORRUPT, 
          CORRUPT_DESCRIPTION, REPAIR_DESCRIPTION 
   FROM   SYS.REPAIR_TABLE;
   
   SELECT SKIP_CORRUPT 
   FROM   DBA_TABLES 
   WHERE  OWNER = '&corruptionOwner'
   AND    TABLE_NAME = '&corruptionTable';
   ```

1. Use o procedimento `skip_corrupt_blocks` para habilitar ou desabilitar a ação de ignorar as tabelas afetadas. Dependendo da situação, também pode ser necessário extrair dados para uma nova tabela e, depois, descartar a tabela que contém o bloco corrompido.

   Execute o procedimento a seguir para permitir que sejam ignoradas as tabelas corrompidas.

   ```
   begin
     rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks (
       schema_name => '&corruptionOwner',
       object_name => '&corruptionTable',
       object_type => rdsadmin.rdsadmin_dbms_repair.table_object,
       flags => rdsadmin.rdsadmin_dbms_repair.skip_flag);
   end;
   /
   select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
   ```

   Execute o procedimento a seguir para não permitir que sejam ignoradas as tabelas corrompidas.

   ```
   begin
     rdsadmin.rdsadmin_dbms_repair.skip_corrupt_blocks (
       schema_name => '&corruptionOwner',
       object_name => '&corruptionTable',
       object_type => rdsadmin.rdsadmin_dbms_repair.table_object,
       flags => rdsadmin.rdsadmin_dbms_repair.noskip_flag);
   end;
   /
   
   select skip_corrupt from dba_tables where owner = '&corruptionOwner' and table_name = '&corruptionTable';
   ```

1. Quando tiver concluído todos os trabalhos de reparação, execute os procedimentos a seguir para descartar as tabelas reparadas.

   ```
   EXEC rdsadmin.rdsadmin_dbms_repair.drop_repair_table;
   EXEC rdsadmin.rdsadmin_dbms_repair.drop_orphan_keys_table;
   ```

## Limpar a lixeira
<a name="Appendix.Oracle.CommonDBATasks.PurgeRecycleBin"></a>

Quando você remove uma tabela, o banco de dados Oracle não remove imediatamente o espaço de armazenamento. O banco de dados renomeia a tabela e coloca ela e todos os objetos associados em uma lixeira. A limpeza da lixeira remove esses itens e libera o espaço de armazenamento. 

Para limpar toda a lixeira, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.purge_dba_recyclebin`. No entanto, este procedimento não pode limpar a lixeira de objetos `SYS` e `RDSADMIN`. Se você precisar limpar esses objetos, entre em contato com o AWSSupport. 

O exemplo a seguir limpa toda a lixeira.

```
EXEC rdsadmin.rdsadmin_util.purge_dba_recyclebin;
```

# Definir os valores padrão exibidos para a redação completa
<a name="Appendix.Oracle.CommonDBATasks.FullRedaction"></a>

Para alterar os valores exibidos padrão para a redação completa na instância Oracle do Amazon RDS, use o procedimento `rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val` do Amazon RDS. Observe que você cria uma política de redação com o pacote `DBMS_REDACT` do PL/SQL, conforme explicado na documentação do Oracle Database. O procedimento `dbms_redact_upd_full_rdct_val` especifica os caracteres a serem exibidos para diferentes tipos de dados afetados por uma política existente.

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_number_val`  |  número  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `NUMBER`.  | 
|  `p_binfloat_val`  |  binary\$1float  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `BINARY_FLOAT`.  | 
|  `p_bindouble_val`  |  binary\$1double  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `BINARY_DOUBLE`.  | 
|  `p_char_val`  |  char  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `CHAR`.  | 
|  `p_varchar_val`  |   varchar2  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `VARCHAR2`.  | 
|  `p_nchar_val`  |  nchar  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `NCHAR`.  | 
|  `p_nvarchar_val`  |  nvarchar2  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `NVARCHAR2`.  | 
|  `p_date_val`  |  date  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `DATE`.  | 
|  `p_ts_val`  |  timestamp  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `TIMESTAMP`.  | 
|  `p_tswtz_val`  |  timestamp with time zone  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `TIMESTAMP WITH TIME ZONE`.  | 
|  `p_blob_val`  |  blob  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `BLOB`.  | 
|  `p_clob_val`  |  clob  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `CLOB`.  | 
|  `p_nclob_val`  |  nclob  |  Null  |  Não  |  Modifica o valor padrão para colunas do tipo de dados `NCLOB`.  | 

O exemplo a seguir altera o valor editado padrão para \$1 referente ao tipo de dados `CHAR`:

```
EXEC rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(p_char_val => '*');
```

O exemplo a seguir altera os valores editados padrão para tipos de dados `NUMBER`, `DATE` e `CHAR`:

```
BEGIN
rdsadmin.rdsadmin_util.dbms_redact_upd_full_rdct_val(
    p_number_val=>1,
    p_date_val=>to_date('1900-01-01','YYYY-MM-DD'),
    p_varchar_val=>'X');
END;
/
```

Depois de alterar os valores padrão para a redação completa com o procedimento `dbms_redact_upd_full_rdct_val`, reinicialize a instância de banco de dados para que a alteração seja implementada. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).

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

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

Para obter mais informações, consulte [Arquivos de log do banco de dados do Amazon RDS para Oracle](USER_LogAccess.Concepts.Oracle.md). 

**Topics**
+ [

## Definição do registro em log forçado
](#Appendix.Oracle.CommonDBATasks.SettingForceLogging)
+ [

## Definição do registro em log complementar
](#Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging)
+ [

## Alternância de arquivos de log online
](#Appendix.Oracle.CommonDBATasks.SwitchingLogfiles)
+ [

## Adição de logs redo online
](#Appendix.Oracle.CommonDBATasks.RedoLogs)
+ [

## Descarte de logs redo online
](#Appendix.Oracle.CommonDBATasks.DroppingRedoLogs)
+ [

# Redimensionamento de logs redo online
](Appendix.Oracle.CommonDBATasks.ResizingRedoLogs.md)
+ [

# Retenção de logs redo arquivados
](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md)
+ [

# Acessando logs de refazimento online e arquivados
](Appendix.Oracle.CommonDBATasks.Log.Download.md)
+ [

# Baixar logs de refazimento arquivados do Amazon S3
](Appendix.Oracle.CommonDBATasks.download-redo-logs.md)

## Definição do registro em log forçado
<a name="Appendix.Oracle.CommonDBATasks.SettingForceLogging"></a>

No modo de registro em log forçado, o Oracle registra todas as alterações no banco de dados, exceto as alterações em espaços de tabela temporários e em segmentos temporários (as cláusulas `NOLOGGING` são ignoradas). Para obter mais informações, consulte [Specifying FORCE LOGGING mode](https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN11096) na documentação da Oracle. 

Para definir o registro em log forçado, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.force_logging`. O procedimento `force_logging` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Sim | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_enable`  |  booliano  |  true  |  Não  |  Defina como `true` para colocar o banco de dados no modo de registro em log forçado, `false` para remover o banco de dados do modo de registro em log forçado.   | 

O exemplo a seguir coloca o banco de dados no modo de registro em log forçado. 

```
EXEC rdsadmin.rdsadmin_util.force_logging(p_enable => true);
```

## Definição do registro em log complementar
<a name="Appendix.Oracle.CommonDBATasks.AddingSupplementalLogging"></a>

Se você habilitar o registro em log suplementar, o LogMiner terá as informações necessárias para oferecer suporte a linhas encadeadas e tabelas clusterizadas. Para obter mais informações, consulte [Supplemental logging](https://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL1582) na documentação da Oracle.

Por padrão, o banco de dados Oracle não habilita o registro em log complementar. Para habilitar e desabilitar o registro em log complementar, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.alter_supplemental_logging`. Para obter mais informações sobre como o Amazon RDS gerencia a retenção de logs redo arquivados para instâncias de bancos de dados Oracle, consulte [Retenção de logs redo arquivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md). 

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_action`  |  varchar2  |  —  |  Sim  |  `'ADD'` para adicionar o registro em log complementar, `'DROP'` para descartar o registro em log complementar.   | 
|  `p_type`  |  varchar2  |  nulo  |  Não  |  O tipo de registro em log complementar. Os valores válidos são `'ALL'`, `'FOREIGN KEY'`, `'PRIMARY KEY'`, `'UNIQUE'` ou `PROCEDURAL`.   | 

O exemplo a seguir habilita o registro em log complementar.

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD');
end;
/
```

O exemplo a seguir habilita o registro em log complementar para todas as colunas de tamanho máximo com comprimento fixo. 

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD',
        p_type   => 'ALL');
end;
/
```

O exemplo a seguir habilita o registro em log complementar para colunas de chave primária. 

```
begin
    rdsadmin.rdsadmin_util.alter_supplemental_logging(
        p_action => 'ADD',
        p_type   => 'PRIMARY KEY');
end;
/
```

## Alternância de arquivos de log online
<a name="Appendix.Oracle.CommonDBATasks.SwitchingLogfiles"></a>

Para alternar arquivos de log, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.switch_logfile`. O procedimento `switch_logfile` não tem parâmetros. 

O exemplo a seguir alterna arquivos de log.

```
EXEC rdsadmin.rdsadmin_util.switch_logfile;
```

## Adição de logs redo online
<a name="Appendix.Oracle.CommonDBATasks.RedoLogs"></a>

Uma instância de banco de dados do Amazon RDS executando o Oracle começa com quatro logs redo online, cada um com 128 MB. Para adicionar mais logs redo, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.add_logfile`. 

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

**nota**  
Os parâmetros são mutuamente exclusivos.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `bytes`  |  positivo  |  nulo  |  Não  |  O tamanho do arquivo de log em bytes.  Use esse parâmetro somente se o tamanho do log for inferior a 2.147.483.648 bytes (2 GiB). Caso contrário, o RDS emitirá um erro. Entretanto, para tamanhos de log acima desse valor em bytes, use o parâmetro `p_size`.  | 
|  `p_size`  |  varchar2  |  —  |  Sim  |  O tamanho do arquivo de log em quilobytes (K), megabytes (M) ou gigabytes (G).  | 

O comando a seguir adiciona um arquivo de log de 100 MB.

```
EXEC rdsadmin.rdsadmin_util.add_logfile(p_size => '100M');
```

## Descarte de logs redo online
<a name="Appendix.Oracle.CommonDBATasks.DroppingRedoLogs"></a>

Para descartar logs redo, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.drop_logfile`. O procedimento `drop_logfile` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `grp`  |  positivo  |  —  |  Sim  |  O número do grupo do log.  | 

O exemplo a seguir descarta o log com o número de grupo 3. 

```
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 3);
```

Você só pode descartar logs que tenham um status de não utilizado ou inativo. O exemplo a seguir obtém os status dos logs.

```
SELECT GROUP#, STATUS FROM V$LOG;

GROUP#     STATUS
---------- ----------------
1          CURRENT
2          INACTIVE
3          INACTIVE
4          UNUSED
```

# Redimensionamento de logs redo online
<a name="Appendix.Oracle.CommonDBATasks.ResizingRedoLogs"></a>

Uma instância de banco de dados do Amazon RDS executando o Oracle começa com quatro logs redo online, cada um com 128 MB. O exemplo a seguir mostra como você pode usar procedimentos do Amazon RDS para redimensionar seus logs de 128 MB cada para 512 MB cada. 

```
/* Query V$LOG to see the logs.          */
/* You start with 4 logs of 128 MB each. */

SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
1          134217728  INACTIVE
2          134217728  CURRENT
3          134217728  INACTIVE
4          134217728  INACTIVE


/* Add four new logs that are each 512 MB */

EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);
EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);
EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);
EXEC rdsadmin.rdsadmin_util.add_logfile(bytes => 536870912);


/* Query V$LOG to see the logs. */ 
/* Now there are 8 logs.        */

SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
1          134217728  INACTIVE
2          134217728  CURRENT
3          134217728  INACTIVE
4          134217728  INACTIVE
5          536870912  UNUSED
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


/* Drop each inactive log using the group number. */

EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 1);
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 3);
EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 4);


/* Query V$LOG to see the logs. */ 
/* Now there are 5 logs.        */

select GROUP#, BYTES, STATUS from V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
2          134217728  CURRENT
5          536870912  UNUSED
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


/* Switch logs so that group 2 is no longer current. */

EXEC rdsadmin.rdsadmin_util.switch_logfile;


/* Query V$LOG to see the logs.        */ 
/* Now one of the new logs is current. */

SQL>SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
2          134217728  ACTIVE
5          536870912  CURRENT
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


/* If the status of log 2 is still "ACTIVE", issue a checkpoint to clear it to "INACTIVE".  */

EXEC rdsadmin.rdsadmin_util.checkpoint;


/* Query V$LOG to see the logs.            */ 
/* Now the final original log is inactive. */

select GROUP#, BYTES, STATUS from V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
2          134217728  INACTIVE
5          536870912  CURRENT
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED


# Drop the final inactive log.

EXEC rdsadmin.rdsadmin_util.drop_logfile(grp => 2);


/* Query V$LOG to see the logs.    */ 
/* Now there are four 512 MB logs. */

SELECT GROUP#, BYTES, STATUS FROM V$LOG;

GROUP#     BYTES      STATUS
---------- ---------- ----------------
5          536870912  CURRENT
6          536870912  UNUSED
7          536870912  UNUSED
8          536870912  UNUSED
```

# Retenção de logs redo arquivados
<a name="Appendix.Oracle.CommonDBATasks.RetainRedoLogs"></a>

Você pode reter logs de refazimento arquivados localmente emsua instância de banco de dados para uso com produtos como o Oracle LogMiner (`DBMS_LOGMNR`). Depois de ter retido os redo logs, você pode usar o LogMiner para analisar esses logs. Para obter mais informações, consulte [Using LogMiner to analyze redo log files](http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm) na documentação da Oracle. 

Para reter logs redo arquivados, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.set_configuration`. Se você usar esse procedimento em uma instância primária no Oracle Data Guard, o RDS alterará a configuração de retenção do log de arquivamento na instância primária e nas réplicas de leitura abertas, mas não nas réplicas montadas. O RDS retém os últimos logs de redo arquivados em réplicas montadas por um curto período. O RDS exclui automaticamente os logs mais antigos baixados para as réplicas montadas.

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `name`  |  varchar  |  —  |  Sim  |  O nome da configuração a ser atualizada. Para alterar as horas de retenção do log de redo arquivado, defina o nome como `archivelog retention hours`.  | 
|  `value`  |  varchar  |  —  |  Sim  |  O valor para a configuração. Defina o valor como o número de horas para reter os logs.  | 

O exemplo a seguir retém 24 horas de logs redo. 

```
begin
    rdsadmin.rdsadmin_util.set_configuration(
        name  => 'archivelog retention hours',
        value => '24');
end;
/
commit;
```

**nota**  
A confirmação é necessária para que a alteração entre em vigor.

Para visualizar por quanto tempo os logs redo arquivados são mantidos para a instância de banco de dados, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.show_configuration`.

O seguinte exemplo mostra o tempo de retenção do log.

```
set serveroutput on
EXEC rdsadmin.rdsadmin_util.show_configuration;
```

A saída mostra a definição atual de `archivelog retention hours`. A seguinte saída mostra que logs redo arquivados são mantidos por 48 horas.

```
NAME:archivelog retention hours
VALUE:48
DESCRIPTION:ArchiveLog expiration specifies the duration in hours before archive/redo log files are automatically deleted.
```

Como os logs redo arquivados são retidos na sua instância de banco de dados, certifique-se de que essa instância tenha armazenamento alocado suficiente para os logs retidos. Para determinar quanto espaço sua instância de banco de dados usou nas últimas X horas, você pode executar a consulta a seguir, substituindo X pelo número de horas. 

```
SELECT SUM(BLOCKS * BLOCK_SIZE) bytes 
  FROM V$ARCHIVED_LOG
 WHERE FIRST_TIME >= SYSDATE-(X/24) AND DEST_ID=1;
```

O RDS for Oracle apenas gera logs de refazimento arquivados se o período de retenção de backup de sua instância de banco de dados for maior que zero. Por padrão, o período de retenção de backup é maior que zero.

Quando o período de retenção de logs arquivados expira, o RDS for Oracle remove os logs de refazimento arquivados de sua instância de banco de dados. Para oferecer suporte à restauração point-in-time de sua instância de banco de dados, o Amazon RDS retém os logs de refazimento arquivados fora de sua instância de banco de dados com base no período de retenção de backup. Para modificar o período de retenção de backup, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

**nota**  
Em alguns casos, você pode estar usando o JDBC no Linux para baixar logs redo arquivados e fazer testes com tempos de latência longos e redefinições de conexão. Nesses casos, os problemas podem ser causados pela configuração padrão do gerador de números aleatórios no seu cliente Java. Recomendamos que você configure seus drivers JDBC para usar um gerador de números aleatórios sem bloqueio.

# Acessando logs de refazimento online e arquivados
<a name="Appendix.Oracle.CommonDBATasks.Log.Download"></a>

Talvez você queira acessar seus arquivos de log redo online e arquivados para exploração com ferramentas externas, como o GoldenGate, o Attunity e o Informatica, entre outras. Para acessar esses arquivos, faça o seguinte:

1. Crie objetos de diretório que forneçam acesso somente leitura aos caminhos de arquivos físicos.

   Utilizar `rdsadmin.rdsadmin_master_util.create_archivelog_dir` e `rdsadmin.rdsadmin_master_util.create_onlinelog_dir`.

1. Leia os arquivos usando PL/SQL.

   É possível ler os arquivos usando PL/SQL. Para obter mais informações sobre como ler arquivos a partir de objetos de diretório, consulte [Listagem de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ListDirectories) e [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

O acesso a logs de transação é compatível com as seguintes versões:
+ Oracle Database 21c
+ Oracle Database 19c

O código a seguir cria diretórios que fornecem acesso somente leitura aos seus arquivos de log redo online e arquivados: 

**Importante**  
Esse código também revoga o privilégio `DROP ANY DIRECTORY`.

```
EXEC rdsadmin.rdsadmin_master_util.create_archivelog_dir;
EXEC rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
```

O código a seguir descarta os diretórios para seus arquivos de log redo online e arquivados. 

```
EXEC rdsadmin.rdsadmin_master_util.drop_archivelog_dir;
EXEC rdsadmin.rdsadmin_master_util.drop_onlinelog_dir;
```

O código a seguir concede e revoga o privilégio `DROP ANY DIRECTORY`.

```
EXEC rdsadmin.rdsadmin_master_util.revoke_drop_any_directory;
EXEC rdsadmin.rdsadmin_master_util.grant_drop_any_directory;
```

# Baixar logs de refazimento arquivados do Amazon S3
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs"></a>

É possível baixar logs de refazimento arquivados em sua instância de banco de dados usando o pacote `rdsadmin.rdsadmin_archive_log_download`. Se os logs de refazimento arquivados não estiverem mais em sua instância de banco de dados, você poderá baixá-los novamente do Amazon S3. Então você pode extrair os logs ou usá-los para recuperar ou replicar seu banco de dados.

**nota**  
Não é possível baixar logs de redo arquivados em instâncias de réplica de leitura.

## Baixar logs de refazimento arquivados: etapas básicas
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.basic-process"></a>

A disponibilidade dos logs de refazimento arquivados depende das seguintes políticas de retenção:
+ Política de retenção de backup: os logs dentro dessa política estão disponíveis no Amazon S3. Os logs fora dessa política são removidos.
+ Política de retenção de logs arquivados: os logs dentro dessa política estão disponíveis em sua instância de banco de dados. Os logs fora dessa política são removidos.

Se os logs não estiverem em sua instância, mas estiverem protegidos pelo período de retenção de backup, use `rdsadmin.rdsadmin_archive_log_download` para baixar novamente. O RDS for Oracle salva os logs no diretório `/rdsdbdata/log/arch` em sua instância de banco de dados.

**Para baixar logs de refazimento arquivados do Amazon S3**

1. Configure seu período de retenção para garantir que os redo logs arquivados que foram baixados sejam retidos pelo tempo em que você precisar deles. Não se esqueça de `COMMIT` a alteração. 

   O RDS retém os logs baixados de acordo com a política de retenção de logs arquivados, a partir do momento em que os logs foram baixados. Para saber como definir a política de retenção, consulte [Retenção de logs redo arquivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md).

1. Aguarde até 5 minutos para que a alteração da política de retenção de logs arquivados seja implementada.

1. Baixe logs de refazimento arquivados do Amazon S3 usando `rdsadmin.rdsadmin_archive_log_download`.

   Para obter mais informações, consulte [Baixar um único log de refazimento arquivado](#Appendix.Oracle.CommonDBATasks.download-redo-logs.single-log) e [Baixar uma série de logs de refazimento arquivados](#Appendix.Oracle.CommonDBATasks.download-redo-logs.series).
**nota**  
O RDS verifica automaticamente o armazenamento disponível antes de baixar. Se os logs solicitados consumirem uma alta porcentagem de espaço, você receberá um alerta.

1. Confirme se o download dos logs do Amazon S3 foi concluído corretamente.

   Você pode visualizar o status de uma tarefa de download em um arquivo bdump. Os arquivos bdump têm o nome de caminho `/rdsdbdata/log/trace/dbtask-task-id.log`. Na etapa de download anterior, execute uma instrução `SELECT` que retorna o ID da tarefa em um tipo de dados `VARCHAR2`. Para obter mais informações, veja exemplos semelhantes em [Monitorar o status de uma transferência de arquivo](oracle-s3-integration.using.md#oracle-s3-integration.using.task-status).

## Baixar um único log de refazimento arquivado
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.single-log"></a>

Para baixar um único log de refazimento arquivado para o diretório `/rdsdbdata/log/arch`, use `rdsadmin.rdsadmin_archive_log_download.download_log_with_seqnum`. Esse procedimento tem o seguinte parâmetro.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `seqnum`  |  número  |  —  |  Sim  |  O número de sequência do log de refazimento arquivado.  | 

O exemplo a seguir baixa o log com o número de sequência 20.

```
SELECT rdsadmin.rdsadmin_archive_log_download.download_log_with_seqnum(seqnum => 20) 
       AS TASK_ID 
FROM   DUAL;
```

## Baixar uma série de logs de refazimento arquivados
<a name="Appendix.Oracle.CommonDBATasks.download-redo-logs.series"></a>

Para baixar uma série de logs de refazimento arquivados para o diretório `/rdsdbdata/log/arch`, use `download_logs_in_seqnum_range`. Você só pode baixar até 300 logs por solicitação. O procedimento `download_logs_in_seqnum_range` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `start_seq`  |  número  |  —  |  Sim  |  O número de sequência inicial da série.  | 
|  `end_seq`  |  número  |  —  |  Sim  |  O número de sequência final da série.  | 

O exemplo a seguir baixa os logs da sequência 50 a 100.

```
SELECT rdsadmin.rdsadmin_archive_log_download.download_logs_in_seqnum_range(start_seq => 50, end_seq => 100) 
       AS TASK_ID 
FROM   DUAL;
```

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

Na seção a seguir, você pode encontrar como você pode realizar tarefas de DBA do Oracle Recovery Manager (RMAN) em suas instâncias de bancos de dados do Amazon RDS executando 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. Ele também restringe o acesso a determinados procedimentos e tabelas do sistema que exigem privilégios avançados.

Use o pacote `rdsadmin.rdsadmin_rman_util` do Amazon RDS para realizar backups do RMAN do banco de dados do Amazon RDS para Oracle em um disco. O pacote `rdsadmin.rdsadmin_rman_util` é compatível com backups de arquivos de banco de dados completos e incrementais, backups de espaços de tabelas e backups de redo logs arquivados.

Após a conclusão de um backup do RMAN, é possível copiar os arquivos de backup do host da instância de banco de dados do Amazon RDS para Oracle. Você pode fazer isso com a finalidade de restaurar para um host não-RDS ou para armazenamento de backups a longo prazo. Por exemplo, você pode copiar os arquivos de backup para um bucket do Amazon S3. Para obter mais informações, consulte como usar [Integração do Amazon S3](oracle-s3-integration.md).

Os arquivos de backup para backups do RMAN permanecerão no host da instância de banco de dados do Amazon RDS até que você os remova manualmente. Você pode usar o procedimento `UTL_FILE.FREMOVE` do Oracle para remover arquivos de um diretório. Para receber mais informações, consulte [FREMOVE procedure](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) na documentação da Oracle.

Você não pode usar o RMAN para restaurar o RDS para instâncias de banco de dados Oracle. No entanto, é possível usar o RMAN para restaurar um backup em uma instância on-premises ou do Amazon EC2. Para receber mais informações, consulte o artigo de blog [Restaurar uma instância do Amazon RDS para Oracle para uma instância autogerenciada](https://aws.amazon.com/blogs/database/restore-an-amazon-rds-for-oracle-instance-to-a-self-managed-instance/).

**nota**  
Para fazer o backup e a restauração para outra instância de banco de dados do Amazon RDS para Oracle, você pode continuar usando os atributos de backup e restauração do Amazon RDS. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md).

**Topics**
+ [

# Pré-requisitos para backups do RMAN
](Appendix.Oracle.CommonDBATasks.RMAN-requirements.md)
+ [

# Parâmetros comuns para procedimentos do RMAN
](Appendix.Oracle.CommonDBATasks.CommonParameters.md)
+ [

# Validar arquivos de banco de dados no RDS para Oracle
](Appendix.Oracle.CommonDBATasks.ValidateDBFiles.md)
+ [

# Habilitar e desabilitar o controle de alterações de bloco
](Appendix.Oracle.CommonDBATasks.BlockChangeTracking.md)
+ [

# Verificação cruzada de logs redo
](Appendix.Oracle.CommonDBATasks.Crosscheck.md)
+ [

# Fazer backup de logs redo armazenados
](Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.md)
+ [

# Realizar um backup de banco de dados completo
](Appendix.Oracle.CommonDBATasks.BackupDatabaseFull.md)
+ [

# Realizar um backup completo de um banco de dados de locatários
](Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseFull.md)
+ [

# Realizar um backup de banco de dados incremental
](Appendix.Oracle.CommonDBATasks.BackupDatabaseIncremental.md)
+ [

# Realizar um backup incremental de um banco de dados de locatários
](Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseIncremental.md)
+ [

# Backup de um tablespace
](Appendix.Oracle.CommonDBATasks.BackupTablespace.md)
+ [

# Backup de um arquivo de controle
](Appendix.Oracle.CommonDBATasks.backup-control-file.md)
+ [

# Realizar a recuperação de mídia de blocos
](Appendix.Oracle.CommonDBATasks.block-media-recovery.md)

# Pré-requisitos para backups do RMAN
<a name="Appendix.Oracle.CommonDBATasks.RMAN-requirements"></a>

Antes de fazer backup do banco de dados usando o pacote `rdsadmin.rdsadmin_rman_util`, atenda aos seguintes pré-requisitos:
+ Assegure-se de que o banco de dados RDS para Oracle esteja no modo `ARCHIVELOG`. Para habilitar esse modo, defina o período de retenção de backup como um valor diferente de zero.
+ Ao fazer o backup de redo logs arquivados ou realizar um backup completo ou incremental que inclua redo logs arquivados, a retenção de redo logs deve estar definida como um valor diferente de zero. Os redo logs arquivados são necessários para tornar os arquivos do banco de dados consistentes durante a recuperação. Para obter mais informações, consulte [Retenção de logs redo arquivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md).
+ Assegure-se de que sua instância de banco de dados tenha espaço livre suficiente para armazenar os backups. Ao fazer backup do banco de dados, especifique um objeto de diretório Oracle como um parâmetro na chamada de procedimento. O RMAN coloca os arquivos no diretório especificado. Você pode usar o diretórios padrão, como `DATA_PUMP_DIR`, ou criar um novo diretório. Para obter mais informações, 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 monitorar o espaço livre atual em uma instância do RDS para Oracle usando a métrica `FreeStorageSpace` do CloudWatch. Recomendamos que o espaço livre exceda o tamanho atual do banco de dados, embora o RMAN faça backup somente de blocos formatados e seja compatível com a compactação.

# Parâmetros comuns para procedimentos do RMAN
<a name="Appendix.Oracle.CommonDBATasks.CommonParameters"></a>

Você pode usar procedimentos no pacote `rdsadmin.rdsadmin_rman_util` do Amazon RDS para realizar tarefas com o RMAN. Vários parâmetros são comuns aos procedimentos no pacote. O pacote tem os seguintes parâmetros comuns.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  varchar2  |  Um nome de diretório de banco de dados válido.  |  —  |  Sim  |  O nome do diretório para conter os arquivos de backup.  | 
|  `p_label`  |  varchar2  |  `a-z`, `A-Z`, `0-9`, `'_'`, `'-'`, `'.'`  |  —  |  Não  |  Uma string exclusiva incluída nos nomes dos arquivos de backup.  O limite é de 30 caracteres.   | 
|  `p_owner`  |  varchar2  |  Um proprietário válido do diretório especificado em `p_directory_name`.  |  —  |  Sim  |  O proprietário do diretório para conter os arquivos de backup.  | 
|  `p_tag`  |  varchar2  |  `a-z`, `A-Z`, `0-9`, `'_'`, `'-'`, `'.'`  |  NULL  |  Não  |  Uma string que pode ser usada para distinguir entre backups para indicar a finalidade ou o uso de backups, como backups diários, semanais ou incrementais. O limite é de 30 caracteres. A etiqueta não diferencia maiúsculas de minúsculas. As etiquetas são sempre armazenadas em letras maiúsculas, independentemente de como são inseridas. As etiquetas não precisam ser exclusivas, portanto, vários backups podem ter a mesma etiqueta. Se você não especificar uma tag, o RMAN atribuirá uma tag padrão automaticamente usando o formato `TAGYYYYMMDDTHHMMSS`, em que *YYYY* é o ano, *MM* é o mês, *DD* é o dia, *HH* é a hora (no formato de 24 horas), *MM* são os minutos e *SS* os segundos. A data e a hora referem-se a quando o RMAN iniciou o backup. Por exemplo, um backup pode receber uma etiqueta `TAG20190927T214517` para um backup iniciado em 27/9/2019, às 21h45m17s. O parâmetro `p_tag` é compatível com as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.CommonParameters.html)  | 
|  `p_compress`  |  booleano  |  `TRUE`, `FALSE`  |  `FALSE`  |  Não  |  Especifique `TRUE` para habilitar a compactação de backup BASIC. Especifique `FALSE` para desabilitar a compactação de backup BASIC.  | 
|  `p_include_archive_logs`  |  booliano  |  `TRUE`, `FALSE`  |  `FALSE`  |  Não  |  Especifique `TRUE` para incluir logs redo arquivados no backup. Especifique `FALSE` para excluir logs redo arquivados do backup. Se você incluir logs redo arquivados no backup, defina a retenção para uma hora ou mais usando o procedimento `rdsadmin.rdsadmin_util.set_configuration`. Além disso, chame o procedimento `rdsadmin.rdsadmin_rman_util.crosscheck_archivelog` imediatamente antes de executar o backup. Caso contrário, o backup poderá falhar devido à ausência de arquivos de log redo que foram excluídos por procedimentos de gerenciamento do Amazon RDS.  | 
|  `p_include_controlfile`  |  booliano  |  `TRUE`, `FALSE`  |  `FALSE`  |  Não  |  Especifique `TRUE` para incluir o arquivo de controle no backup. Especifique `FALSE` para excluir o arquivo de controle do backup.  | 
|  `p_optimize`  |  booliano  |  `TRUE`, `FALSE`  |  `TRUE`  |  Não  |  Especifique `TRUE` para habilitar a otimização de backup, se logs redo arquivados estiverem incluídos, para reduzir o tamanho do backup. Especifique `FALSE` para desabilitar a otimização de backup.  | 
|  `p_parallel`  |  número  |  Um inteiro válido entre `1` e `254` para Oracle Database Enterprise Edition (EE) `1` para outras edições do Oracle Database  |  `1`  |  Não  |  Número de canais.  | 
|  `p_rman_to_dbms_output`  |  booliano  |  `TRUE`, `FALSE`  |  `FALSE`  |  Não  |  Quando `TRUE`, a saída RMAN é enviada para o pacote `DBMS_OUTPUT` além de um arquivo no diretório `BDUMP`. No SQL\$1Plus, use `SET SERVEROUTPUT ON` para ver a saída. Quando `FALSE`, a saída RMAN é enviada somente para um arquivo no diretório `BDUMP`.   | 
|  `p_section_size_mb`  |  número  |  Um inteiro válido  |  `NULL`  |  Não  |  O tamanho da seção em megabytes (MB). Valida em paralelo dividindo cada arquivo no tamanho da seção especificado. Quando `NULL`, o parâmetro é ignorado.  | 
|  `p_validation_type`  |  varchar2  |  `'PHYSICAL'`, `'PHYSICAL+LOGICAL'`  |  `'PHYSICAL'`  |  Não  |  O nível de detecção da corrupção. Especifique `'PHYSICAL'` para verificar se há danos físicos. Um exemplo de dano físico é um bloco com uma diferença no cabeçalho e no rodapé. Especifique `'PHYSICAL+LOGICAL'` para verificar se há inconsistências lógicas além de danos físicos. Um exemplo de dano lógico é um bloco corrompido.  | 

# Validar arquivos de banco de dados no RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.ValidateDBFiles"></a>

É possível usar o pacote do Amazon RDS `rdsadmin.rdsadmin_rman_util` para validar os arquivos de banco de dados do Amazon RDS para Oracle, como arquivos de dados, espaços de tabela, arquivos de controle ou arquivos de parâmetro do servidor (SPFILEs).

Para obter mais informações sobre a validação do RMAN, consulte [Validating database files and backups](https://docs.oracle.com/database/121/BRADV/rcmvalid.htm#BRADV90063) (Validar arquivos e backups de bancos de dados) e [ VALIDATE](https://docs.oracle.com/database/121/RCMRF/rcmsynta2025.htm#RCMRF162) (Validar) na documentação do Oracle.

**Topics**
+ [

## Validar um banco de dados
](#Appendix.Oracle.CommonDBATasks.ValidateDB)
+ [

## Validando um banco de dados de inquilinos
](#Appendix.Oracle.CommonDBATasks.ValidateTenantDB)
+ [

## Validar um espaço de tabela
](#Appendix.Oracle.CommonDBATasks.ValidateTablespace)
+ [

## Validar um arquivo de controle
](#Appendix.Oracle.CommonDBATasks.ValidateControlFile)
+ [

## Validar um SPFILE
](#Appendix.Oracle.CommonDBATasks.ValidateSpfile)
+ [

## Validar um arquivo de dados Oracle
](#Appendix.Oracle.CommonDBATasks.ValidateDataFile)

## Validar um banco de dados
<a name="Appendix.Oracle.CommonDBATasks.ValidateDB"></a>

Para validar todos os arquivos relevantes usados por um banco de dados Oracle no RDS para Oracle, use o procedimento `rdsadmin.rdsadmin_rman_util.validate_database` do Amazon RDS. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

O seguinte exemplo valida o banco de dados usando os valores padrão dos parâmetros.

```
EXEC rdsadmin.rdsadmin_rman_util.validate_database;
```

O seguinte exemplo valida o banco de dados usando os valores especificado dos parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.validate_database(
        p_validation_type     => 'PHYSICAL+LOGICAL', 
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_rman_to_dbms_output => FALSE);
END;
/
```

Quando o parâmetro `p_rman_to_dbms_output` é definido como `FALSE`, a saída RMAN é gravada em um arquivo no diretório `BDUMP`.

Para visualizar os arquivos no diretório `BDUMP`, execute o seguinte comando `SELECT`.

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

Para visualizar o conteúdo de um arquivo no diretório `BDUMP`, execute o seguinte comando `SELECT`.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));
```

Substitua o nome do arquivo pelo nome do arquivo que você deseja visualizar.

## Validando um banco de dados de inquilinos
<a name="Appendix.Oracle.CommonDBATasks.ValidateTenantDB"></a>

Para validar os arquivos de dados do banco de dados do inquilino em um banco de dados de contêiner (CDB), use o procedimento do Amazon RDS. `rdsadmin.rdsadmin_rman_util.validate_tenant` 

Este procedimento se aplica somente ao banco de dados do locatário atual e usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md). Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O seguinte exemplo valida a instância de banco de dados usando os valores padrão dos parâmetros.

```
EXEC rdsadmin.rdsadmin_rman_util.validate_tenant;
```

O seguinte exemplo valida a instância de banco de dados usando os valores especificado dos parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.validate_tenant(
        p_validation_type     => 'PHYSICAL+LOGICAL', 
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_rman_to_dbms_output => FALSE);
END;
/
```

Quando o parâmetro `p_rman_to_dbms_output` é definido como `FALSE`, a saída RMAN é gravada em um arquivo no diretório `BDUMP`.

Para visualizar os arquivos no diretório `BDUMP`, execute o seguinte comando `SELECT`.

```
SELECT * FROM table(rdsadmin.rds_file_util.listdir('BDUMP')) order by mtime;
```

Para visualizar o conteúdo de um arquivo no diretório `BDUMP`, execute o seguinte comando `SELECT`.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','rds-rman-validate-nnn.txt'));
```

Substitua o nome do arquivo pelo nome do arquivo que você deseja visualizar.

## Validar um espaço de tabela
<a name="Appendix.Oracle.CommonDBATasks.ValidateTablespace"></a>

Para validar os arquivos associados a um espaço de tabela, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_tablespace`. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa o seguinte parâmetro adicional.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar2  |  Um nome de espaço de tabela válido  |  —  |  Sim  |  O nome do espaço de tabela.  | 

## Validar um arquivo de controle
<a name="Appendix.Oracle.CommonDBATasks.ValidateControlFile"></a>

Para validar somente o arquivo de controle usado por uma instância de banco de dados Oracle do Amazon RDS, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_current_controlfile`. 

Esse procedimento usa o seguinte parâmetro comum para tarefas RMAN:
+ `p_validation_type`
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

## Validar um SPFILE
<a name="Appendix.Oracle.CommonDBATasks.ValidateSpfile"></a>

Para validar somente o arquivo de parâmetro do servidor (SPFILE) usado por uma instância de banco de dados Oracle do Amazon RDS, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_spfile`. 

Esse procedimento usa o seguinte parâmetro comum para tarefas RMAN:
+ `p_validation_type`
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

## Validar um arquivo de dados Oracle
<a name="Appendix.Oracle.CommonDBATasks.ValidateDataFile"></a>

Para validar um arquivo de dados, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.validate_datafile`. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_validation_type`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa os seguintes parâmetros adicionais.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_datafile`  |  varchar2  |  Um número de ID datafile válido ou um nome datafile válido incluindo o caminho completo  |  —  |  Sim  |  O número do ID do arquivo de dados (de `v$datafile.file#`) ou o nome completo do arquivo de dados, incluindo o caminho (de `v$datafile.name`).  | 
|  `p_from_block`  |  número  |  Um inteiro válido  |  `NULL`  |  Não  |  O número do bloco em que a validação começa dentro do arquivo de dados. Quando é `NULL`, `1` é usado.  | 
|  `p_to_block`  |  número  |  Um inteiro válido  |  `NULL`  |  Não  |  O número do bloco em que a validação termina dentro do arquivo de dados. Quando é `NULL`, o bloco máximo no arquivo de dados é usado.  | 

# Habilitar e desabilitar o controle de alterações de bloco
<a name="Appendix.Oracle.CommonDBATasks.BlockChangeTracking"></a>

Os registros de monitoramento de alterações de blocos alterou os blocos em um arquivo de monitoramento. Essa técnica pode melhorar a performance de backups incrementais RMAN. Para obter mais informações, consulte [Using Block Change Tracking to Improve Incremental Backup Performance](https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/backing-up-database.html#GUID-4E1F605A-76A7-48D0-9D9B-7343B4327E2A) (Uso do monitoramento de alterações em bloco para aumentar a performance do backup incremental) na documentação do Oracle Database.

Os recursos do RMAN não são comportados em uma réplica de leitura. No entanto, como parte de sua estratégia de alta disponibilidade, você pode optar por habilitar o rastreamento de blocos em uma réplica somente leitura usando o procedimento `rdsadmin.rdsadmin_rman_util.enable_block_change_tracking`. Se você promover essa réplica somente leitura a uma instância de banco de dados de origem, o rastreamento de alterações de blocos será habilitado para a nova instância de origem. Assim, a instância pode se beneficiar de backups incrementais rápidos.

Os procedimentos de monitoramento de alterações de blocos são compatíveis na Enterprise Edition somente com as seguintes versões do mecanismo de banco de dados:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**nota**  
Em um CDB de locatário único, as operações a seguir funcionam, mas nenhum mecanismo visível para o cliente pode detectar o status atual das operações. Consulte também [Limitações do RDS for CDBs Oracle](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant-limitations).

Para habilitar o controle de alterações de bloco para uma instância de banco de dados usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.enable_block_change_tracking`. Para desativar o monitoramento de alterações de bloco, use `disable_block_change_tracking`. Esses procedimentos não usam parâmetros.

Para determinar se o controle de alterações de bloco está habilitado para a sua instância de banco de dados, execute a consulta a seguir.

```
SELECT STATUS, FILENAME FROM V$BLOCK_CHANGE_TRACKING;
```

O exemplo a seguir habilita o controle de alterações de bloco para uma instância de banco de dados.

```
EXEC rdsadmin.rdsadmin_rman_util.enable_block_change_tracking;
```

O exemplo a seguir desabilita o controle de alterações de bloco para uma instância de banco de dados.

```
EXEC rdsadmin.rdsadmin_rman_util.disable_block_change_tracking;
```

# Verificação cruzada de logs redo
<a name="Appendix.Oracle.CommonDBATasks.Crosscheck"></a>

Você pode fazer a verificação cruzada de logs redo arquivados usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.crosscheck_archivelog`.

É possível usar esse procedimento para fazer uma verificação cruzada dos logs redo arquivados registrados no arquivo de controle e, opcionalmente, excluir os registros de logs expirados. Quando o RMAN faz um backup, ele cria um registro no arquivo de controle. Com o tempo, esses registros aumentam o tamanho do arquivo de controle. Recomendamos que você remova registros expirados periodicamente.

**nota**  
Os backups padrão do Amazon RDS não usam o RMAN e, portanto, não criam registros no arquivo de controle.

Esse procedimento usa o parâmetro comum `p_rman_to_dbms_output` para tarefas do RMAN.

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa o seguinte parâmetro adicional.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_delete_expired`  |  booliano  |  `TRUE`, `FALSE`  |  `TRUE`  |  Não  |  Quando `TRUE`, exclui os registros de logs redo arquivados expirados do arquivo de controle. Quando `FALSE`, retém os registros de logs redo arquivados expirados no arquivo de controle.   | 

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O exemplo a seguir marca os registros de log redo arquivados no arquivo de controle como expirados, mas não exclui os registros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.crosscheck_archivelog(
        p_delete_expired      => FALSE,  
        p_rman_to_dbms_output => FALSE);
END;
/
```

O exemplo a seguir exclui os registros d logs redo arquivados expirados do arquivo de controle.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.crosscheck_archivelog(
        p_delete_expired      => TRUE,  
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Fazer backup de logs redo armazenados
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs"></a>

Você pode usar o pacote `rdsadmin.rdsadmin_rman_util` do Amazon RDS para fazer backup de logs redo arquivados para uma instância de banco de dados do Amazon RDS Oracle.

Os procedimentos para fazer backup de logs redo arquivados têm suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [

## Fazer backup de todos os logs redo arquivados
](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.All)
+ [

## Fazer backup de um log redo arquivado de um intervalo de datas
](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Date)
+ [

## Fazer backup de um log redo arquivado de um intervalo de SCN
](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.SCN)
+ [

## Fazer backup de um log redo arquivado de um intervalo de números de sequência
](#Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Sequence)

## Fazer backup de todos os logs redo arquivados
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.All"></a>

Para fazer backup de todos os logs redo arquivados para uma instância de banco de dados Oracle do Amazon RDS, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_archivelog_all`. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

O exemplo a seguir faz backup de todos os logs redo arquivados para a instância de banco de dados.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_all(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4, 
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## Fazer backup de um log redo arquivado de um intervalo de datas
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Date"></a>

Para fazer backup de logs redo arquivados específicos para uma instância de banco de dados Oracle do Amazon RDS especificando um intervalo de datas, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_archivelog_date`. O intervalo de datas especifica quais logs redo arquivados devem ser incluídos no backup. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa os seguintes parâmetros adicionais.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_date`  |  data  |  Uma data entre `start_date` e `next_date` de um log redo arquivado que existe no disco. O valor deve ser menor que ou igual ao valor especificado para `p_to_date`.  |  —  |  Sim  |  A data de início dos backups de log arquivados.  | 
|  `p_to_date`  |  data  |  Uma data entre `start_date` e `next_date` de um log redo arquivado que existe no disco. O valor deve ser maior que ou igual ao valor especificado para `p_from_date`.  |  —  |  Sim  |  A data de término dos backups de logs arquivados.  | 

O exemplo a seguir faz backup de logs redo arquivados no intervalo de datas para a instância de banco de dados.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_date(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_date           => '03/01/2019 00:00:00',
        p_to_date             => '03/02/2019 00:00:00',
        p_parallel            => 4,  
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## Fazer backup de um log redo arquivado de um intervalo de SCN
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.SCN"></a>

Para fazer backup de logs redo arquivados específicos para uma instância de banco de dados do Oracle do Amazon RDS, especificando um intervalo de SCNs (números de alteração de sistema), use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_archivelog_scn`. O intervalo de SCNs especifica quais logs redo arquivados devem ser incluídos no backup. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa os seguintes parâmetros adicionais.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_scn`  |  número  |  Um SCN de um log redo arquivado que existe no disco. O valor deve ser menor que ou igual ao valor especificado para `p_to_scn`.  |  —  |  Sim  |  O SCN inicial para os backups de logs arquivados.  | 
|  `p_to_scn`  |  número  |  Um SCN de um log redo arquivado que existe no disco. O valor deve ser maior que ou igual ao valor especificado para `p_from_scn`.  |  —  |  Sim  |  O SCN final para os backups de logs arquivados.  | 

O exemplo a seguir faz backup de logs redo arquivados no intervalo de SCNs para a instância de banco de dados.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_scn(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_scn            => 1533835,
        p_to_scn              => 1892447,
        p_parallel            => 4,
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

## Fazer backup de um log redo arquivado de um intervalo de números de sequência
<a name="Appendix.Oracle.CommonDBATasks.BackupArchivedLogs.Sequence"></a>

Para fazer backup de logs redo arquivados específicos para uma instância de banco de dados Oracle do Amazon RDS, especificando um intervalo de números de sequência, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_archivelog_sequence`. O intervalo de números de sequência especifica quais logs redo arquivados devem ser incluídos no backup. 

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa os seguintes parâmetros adicionais.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_from_sequence`  |  número  |  Um número de sequência de um log redo arquivado que existe no disco. O valor deve ser menor que ou igual ao valor especificado para `p_to_sequence`.  |  —  |  Sim  |  O número de sequência inicial dos backups de log arquivados.  | 
|  `p_to_sequence`  |  número  |  Um número de sequência de um log redo arquivado que existe no disco. O valor deve ser maior que ou igual ao valor especificado para `p_from_sequence`.  |  —  |  Sim  |  O número de sequência final dos backups de log arquivados.  | 

O exemplo a seguir faz backup de logs redo arquivados no intervalo de números de sequência para a instância de banco de dados.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_archivelog_sequence(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_from_sequence       => 11160,
        p_to_sequence         => 11160,
        p_parallel            => 4,  
        p_tag                 => 'MY_LOG_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realizar um backup de banco de dados completo
<a name="Appendix.Oracle.CommonDBATasks.BackupDatabaseFull"></a>

Você pode realizar um backup de todos os blocos de arquivos de dados incluídos no backup usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_database_full`.

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O exemplo a seguir realiza um backup completo da instância de banco de dados usando os valores especificados para os parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_database_full(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'FULL_DB_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realizar um backup completo de um banco de dados de locatários
<a name="Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseFull"></a>

Você pode realizar um backup de todos os blocos de dados incluídos em um banco de dados de locatário em um banco de dados de contêiner (CDB). Use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_tenant_full`. Este procedimento se aplica somente ao backup do banco de dados atual e usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

O parâmetro `rdsadmin_rman_util.backup_tenant_full` é compatível com as seguintes versões de mecanismo de banco de dados Amazon RDS for Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O exemplo a seguir realiza um backup completo da instância de banco de dados usando os valores especificados para os parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tenant_full(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'FULL_TENANT_DB_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realizar um backup de banco de dados incremental
<a name="Appendix.Oracle.CommonDBATasks.BackupDatabaseIncremental"></a>

Você pode realizar um backup incremental da sua instância de banco de dados usando o procedimento `rdsadmin.rdsadmin_rman_util.backup_database_incremental` do Amazon RDS.

Para obter mais informações sobre backups incrementais, consulte [Incremental backups](https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#GUID-73642FF2-43C5-48B2-9969-99001C52EB50__BGBHABHH) (Backups incrementais) na documentação do Oracle.

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

Esse procedimento também usa o seguinte parâmetro adicional.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_level`  |  número  |  `0`, `1`  |  `0`  |  Não  |  Especifique `0` para habilitar um backup incremental completo. Especifique `1` para habilitar um backup incremental não cumulativo.  | 

O exemplo a seguir realiza um backup incremental da instância de banco de dados usando os valores especificados para os parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_database_incremental(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_level               => 1,
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MY_INCREMENTAL_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realizar um backup incremental de um banco de dados de locatários
<a name="Appendix.Oracle.CommonDBATasks.BackupTenantDatabaseIncremental"></a>

Você pode realizar um backup incremental do banco de dados do inquilino atual no seu CDB. Use o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_tenant_incremental`.

Para obter mais informações sobre backups incrementais, consulte [Incremental backups](https://docs.oracle.com/database/121/RCMRF/rcmsynta006.htm#GUID-73642FF2-43C5-48B2-9969-99001C52EB50__BGBHABHH) (Backups incrementais) na documentação do Oracle.

Este procedimento se aplica somente ao banco de dados do locatário atual e usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para ter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

Esse procedimento também usa o seguinte parâmetro adicional.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_level`  |  número  |  `0`, `1`  |  `0`  |  Não  |  Especifique `0` para habilitar um backup incremental completo. Especifique `1` para habilitar um backup incremental não cumulativo.  | 

O exemplo a seguir realiza um backup incremental da instância de banco de dados usando os valores especificados para os parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tenant_incremental(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_level               => 1,
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MY_INCREMENTAL_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Backup de um tablespace
<a name="Appendix.Oracle.CommonDBATasks.BackupTablespace"></a>

Você pode realizar um backup de um espaço de tabela usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_tablespace`.

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_parallel`
+ `p_section_size_mb`
+ `p_include_archive_logs`
+ `p_include_controlfile`
+ `p_optimize`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento também usa o seguinte parâmetro adicional.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_tablespace_name`  |  varchar2  |  Um nome de espaço de tabela válido.  |  —  |  Sim  |  O nome do espaço de tabela para backup.  | 

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O exemplo a seguir realiza um backup de espaço de tabela usando os valores especificados para os parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_tablespace(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_tablespace_name     => 'MYTABLESPACE',
        p_parallel            => 4,  
        p_section_size_mb     => 10,
        p_tag                 => 'MYTABLESPACE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Backup de um arquivo de controle
<a name="Appendix.Oracle.CommonDBATasks.backup-control-file"></a>

Você pode fazer backup de um arquivo de controle usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_rman_util.backup_current_controlfile`.

Este procedimento usa os seguintes parâmetros comuns para tarefas RMAN:
+ `p_owner`
+ `p_directory_name`
+ `p_label`
+ `p_compress`
+ `p_rman_to_dbms_output`
+ `p_tag`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O exemplo a seguir realiza um backup de um arquivo de controle usando os valores especificados para os parâmetros.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.backup_current_controlfile(
        p_owner               => 'SYS', 
        p_directory_name      => 'MYDIRECTORY',
        p_tag                 => 'CONTROL_FILE_BACKUP',
        p_rman_to_dbms_output => FALSE);
END;
/
```

# Realizar a recuperação de mídia de blocos
<a name="Appendix.Oracle.CommonDBATasks.block-media-recovery"></a>

É possível recuperar blocos de dados individuais, conhecidos como recuperação de mídia de blocos, usando os procedimentos `rdsadmin.rdsadmin_rman_util.recover_datafile_block` do Amazon RDS. É possível usar esse procedimento sobrecarregado para recuperar um ou vários blocos de dados.

Esse procedimento usa o seguinte parâmetro comum para tarefas RMAN:
+ `p_rman_to_dbms_output`

Para obter mais informações, consulte [Parâmetros comuns para procedimentos do RMAN](Appendix.Oracle.CommonDBATasks.CommonParameters.md).

Esse procedimento usa os parâmetros adicionais a seguir.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `p_datafile`  |  `NUMBER`  |  Um número de ID válido do arquivo de dados.  |  —  |  Sim  |  O arquivo de dados contendo os blocos corrompidos. Especifique o arquivo de dados de uma das seguintes formas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_block`  |  `NUMBER`  |  Um número inteiro válido.  |  —  |  Sim  |  O número de um bloco individual a ser recuperado. Os seguintes parâmetros são mutuamente exclusivos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_from_block`  |  `NUMBER`  |  Um número inteiro válido.  |  —  |  Sim  |  O primeiro número de bloco em um intervalo de blocos a serem recuperados. Os seguintes parâmetros são mutuamente exclusivos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 
|  `p_to_block`  |  `NUMBER`  |  Um número inteiro válido.  |  —  |  Sim  |  O último número de bloco em um intervalo de blocos a serem recuperados. Os seguintes parâmetros são mutuamente exclusivos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.block-media-recovery.html)  | 

Esse procedimento não tem suporte para as seguintes versões de mecanismo de banco de dados do Amazon RDS para Oracle:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

O exemplo a seguir recupera o bloco 100 no arquivo de dados 5.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.recover_datafile_block(
        p_datafile            => 5, 
        p_block               => 100,
        p_rman_to_dbms_output => TRUE);
END;
/
```

O exemplo a seguir recupera os blocos 100 a 150 no arquivo de dados 5.

```
BEGIN
    rdsadmin.rdsadmin_rman_util.recover_datafile_block(
        p_datafile            => 5, 
        p_from_block          => 100,
        p_to_block            => 150,
        p_rman_to_dbms_output => TRUE);
END;
/
```

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

Alguns trabalhos pertencentes ao `SYS` podem interferir nas operações normais de banco de dados. Nesses casos, o Oracle Support recomenda que você modifique a programação. Se você precisar habilitar ou desabilitar trabalhos do `SYS`, teste a operação em jobs programados em um ambiente de teste antes de implementá-la em um ambiente de produção. Para realizar tarefas para trabalhos do Oracle Scheduler pertencentes ao `SYS`, use o pacote `rdsadmin.rdsadmin_dbms_scheduler` do Amazon RDS.

Os procedimentos `rdsadmin.rdsadmin_dbms_scheduler` são compatíveis com as versões de mecanismo de banco de dados do Amazon RDS para Oracle na tabela a seguir. Ao usar esse pacote, você pode especificar os trabalhos do `SYS` listados na tabela.


| Versão do banco de dados | Trabalhos habilitados por padrão | Trabalhos desabilitados por padrão | 
| --- | --- | --- | 
| Oracle Database 19c |  <pre>BSLN_MAINTAIN_STATS_JOB<br />CLEANUP_NON_EXIST_OBJ<br />CLEANUP_ONLINE_IND_BUILD<br />CLEANUP_ONLINE_PMO<br />CLEANUP_TAB_IOT_PMO<br />CLEANUP_TRANSIENT_PKG<br />CLEANUP_TRANSIENT_TYPE<br />DRA_REEVALUATE_OPEN_FAILURES<br />FILE_SIZE_UPD<br />ORA$AUTOTASK_CLEAN<br />PMO_DEFERRED_GIDX_MAINT_JOB<br />PURGE_LOG<br />RSE$CLEAN_RECOVERABLE_SCRIPT<br />SM$CLEAN_AUTO_SPLIT_MERGE</pre>  |  <pre>FGR$AUTOPURGE_JOB<br />FILE_WATCHER<br />HM_CREATE_OFFLINE_DICTIONARY<br />LOAD_OPATCH_INVENTORY<br />ORA$PREPLUGIN_BACKUP_JOB<br />XMLDB_NFS_CLEANUP_JOB</pre>  | 
| Oracle Database 21c |  <pre>BSLN_MAINTAIN_STATS_JOB<br />CLEANUP_NON_EXIST_OBJ<br />CLEANUP_ONLINE_IND_BUILD<br />CLEANUP_ONLINE_PMO<br />CLEANUP_TAB_IOT_PMO<br />CLEANUP_TRANSIENT_PKG<br />CLEANUP_TRANSIENT_TYPE<br />DRA_REEVALUATE_OPEN_FAILURES<br />FILE_SIZE_UPD<br />ORA$AUTOTASK_CLEAN<br />PMO_DEFERRED_GIDX_MAINT_JOB<br />PURGE_LOG</pre>  |  <pre>FGR$AUTOPURGE_JOB<br />FILE_WATCHER<br />HM_CREATE_OFFLINE_DICTIONARY<br />LOAD_OPATCH_INVENTORY<br />ORA$PREPLUGIN_BACKUP_JOB<br />ORA$_ATSK_AUTOSTS<br />XMLDB_NFS_CLEANUP_JOB</pre>  | 

## Parâmetros comuns para os procedimentos do Oracle Scheduler
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters"></a>

Para realizar tarefas com o Oracle Scheduler, use os procedimentos no pacote do Amazon RDS `rdsadmin.rdsadmin_dbms_scheduler`. Vários parâmetros são comuns aos procedimentos no pacote. O pacote tem os seguintes parâmetros comuns.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `name`  |  varchar2  |  Os procedimentos listados na tabela em [Realização de tarefas comuns de agendamento para instâncias de banco de dados Oracle](#Appendix.Oracle.CommonDBATasks.Scheduler)   |  —  |  Sim  |  O nome do trabalho a ser modificado.  | 
|  `attribute`  |  varchar2  |  `'REPEAT_INTERVAL'`,`'SCHEDULE_NAME'`  |  –  |  Sim  |  Atributo a ser modificado. Para modificar o intervalo de repetição do trabalho, especifique `'REPEAT_INTERVAL'`. Para modificar o nome da programação do trabalho, especifique `'SCHEDULE_NAME'`.  | 
|  `value`  |  varchar2  |  Um intervalo de programação ou nome de programação válidos, dependendo do atributo usado.  |  –  |  Sim  |  O novo valor do atributo.  | 

## Modificação de trabalhos DBMS\$1SCHEDULER
<a name="Appendix.Oracle.CommonDBATasks.ModifyScheduler"></a>

Para modificar determinados componentes do Oracle Scheduler, use o procedimento do Oracle `dbms_scheduler.set_attribute`. Para obter mais informações, consulte [DBMS\$1SCHEDULER](https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72235) e [Procedimento SET\$1ATTRIBUTE](https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72399) na documentação da Oracle. 

Ao trabalhar com instâncias de bancos de dados do Amazon RDS, anteponha o nome do esquema `SYS` ao nome do objeto. O exemplo a seguir define o atributo de plano de recurso para o objeto da janela de segunda-feira.

```
BEGIN
    DBMS_SCHEDULER.SET_ATTRIBUTE(
        name      => 'SYS.MONDAY_WINDOW',
        attribute => 'RESOURCE_PLAN',
        value     => 'resource_plan_1');
END;
/
```

## Modificando janelas de manutenção de AutoTask
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.maintenance-windows"></a>

As instâncias do Amazon RDS for Oracle são criadas com configurações padrão para janelas de manutenção. Tarefas de manutenção automatizadas, como coleta de estatísticas do otimizador, são executadas durante essas janelas. Por padrão, as janelas de manutenção ativam o Oracle Database Resource Manager.

Para modificar a janela, use o pacote `DBMS_SCHEDULER`. Talvez seja necessário modificar as configurações da janela de manutenção pelos seguintes motivos:
+ Você deseja que os trabalhos de manutenção sejam executados em um momento diferente, com configurações diferentes ou não. Por exemplo, talvez você queira modificar a duração da janela ou alterar o tempo e o intervalo de repetição.
+ Você quer evitar o impacto sobre a performance causado pela habilitação do Gerenciador de recursos durante a manutenção. Por exemplo, se o plano de manutenção padrão for especificado e se a janela de manutenção for aberta enquanto o banco de dados estiver sob carga, você poderá observar eventos de espera como `resmgr:cpu quantum`. Este evento de espera está relacionado ao Gerenciador de recursos de banco de dados. Você tem as seguintes opções:
  + Certifique-se de que as janelas de manutenção estejam ativas durante horários fora do pico de utilização da sua instância de banco de dados.
  + Desabilite o plano de manutenção padrão definindo o atributo `resource_plan` como uma string vazia.
  + Defina o parâmetro `resource_manager_plan` no grupo de parâmetros do banco de dados como `FORCE:`. Se sua instância usa o Enterprise Edition, essa configuração impede que os planos do Gerenciador de recursos de banco de dados sejam ativados.

**Para modificar as configurações da janela de manutenção**

1. Conecte ao banco de dados usando um cliente Oracle SQL.

1. Consulte a configuração atual para uma janela do programador. 

   O exemplo a seguir consulta a configuração para `MONDAY_WINDOW`.

   ```
   SELECT ENABLED, RESOURCE_PLAN, DURATION, REPEAT_INTERVAL
   FROM   DBA_SCHEDULER_WINDOWS 
   WHERE  WINDOW_NAME='MONDAY_WINDOW';
   ```

   A saída a seguir mostra que a janela está usando os valores padrão.

   ```
   ENABLED         RESOURCE_PLAN                  DURATION         REPEAT_INTERVAL
   --------------- ------------------------------ ---------------- ------------------------------
   TRUE            DEFAULT_MAINTENANCE_PLAN       +000 04:00:00    freq=daily;byday=MON;byhour=22
                                                                   ;byminute=0; bysecond=0
   ```

1. Modifique a janela usando o pacote `DBMS_SCHEDULER`.

   O exemplo a seguir define o plano de recursos como nulo para que o Gerenciador de recursos não seja executado durante a janela de manutenção.

   ```
   BEGIN
     -- disable the window to make changes
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
   
     -- specify the empty string to use no plan
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'RESOURCE_PLAN', value=>'');
   
     -- re-enable the window
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

   O exemplo a seguir define a duração máxima da janela como 2 horas.

   ```
   BEGIN
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'DURATION', value=>'0 2:00:00');
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

   O exemplo a seguir define o intervalo de repetição para todas as segundas-feiras às 10 horas da manhã.

   ```
   BEGIN
     DBMS_SCHEDULER.DISABLE(name=>'"SYS"."MONDAY_WINDOW"',force=>TRUE);
     DBMS_SCHEDULER.SET_ATTRIBUTE(name=>'"SYS"."MONDAY_WINDOW"', attribute=>'REPEAT_INTERVAL', value=>'freq=daily;byday=MON;byhour=10;byminute=0;bysecond=0');
     DBMS_SCHEDULER.ENABLE(name=>'"SYS"."MONDAY_WINDOW"');
   END;
   /
   ```

## Definir o fuso horário para trabalhos do Oracle Scheduler
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.TimeZone"></a>

Para modificar o fuso horário do Oracle Scheduler, você pode usar o procedimento do Oracl `dbms_scheduler.set_scheduler_attribute`. Para obter mais informações sobre o pacote `dbms_scheduler`, consulte [DBMS\$1SCHEDULER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SCHEDULER.html) e [SET\$1SCHEDULER\$1ATTRIBUTE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_SCHEDULER.html#GUID-2AB97BF7-7154-4E6C-933F-B2659B18A907) na documentação do Oracle.

**Como modificar a configuração atual de fuso horário**

1. Conecte-se ao banco de dados usando um cliente como o SQL Developer. Para obter mais informações, consulte [Conectar-se à sua instância de banco de dados usando o Oracle SQL Developer](USER_ConnectToOracleInstance.SQLDeveloper.md).

1. Defina o fuso horário padrão da seguinte maneira, substituindo seu fuso horário por `time_zone_name`.

   ```
   BEGIN
     DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
       attribute => 'default_timezone',
       value => 'time_zone_name'
     );
   END;
   /
   ```

No exemplo a seguir, altere o fuso horário para Ásia/Xangai. 

Comece consultando o fuso horário atual, como mostrado a seguir.

```
SELECT VALUE FROM DBA_SCHEDULER_GLOBAL_ATTRIBUTE WHERE ATTRIBUTE_NAME='DEFAULT_TIMEZONE';
```

A saída mostra que o fuso horário atual é ETC/UTC.

```
VALUE
-------
Etc/UTC
```

Depois, você define o fuso horário como Ásia/Xangai.

```
BEGIN
  DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE(
    attribute => 'default_timezone',
    value => 'Asia/Shanghai'
  );
END;
/
```

Para obter mais informações sobre como alterar o fuso horário do sistema, consulte [Fuso horário da Oracle](Appendix.Oracle.Options.Timezone.md).

## Desativar trabalhos do Oracle Scheduler de propriedade do SYS
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Disabling"></a>

Para desativar um trabalho do Oracle Scheduler pertencente ao SYS, use o procedimento `rdsadmin.rdsadmin_dbms_scheduler.disable`. 

Esse procedimento usa o parâmetro comum `name` para tarefas do Oracle Scheduler. Para obter mais informações, consulte [Parâmetros comuns para os procedimentos do Oracle Scheduler](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

O exemplo a seguir desabilita o trabalho `SYS.CLEANUP_ONLINE_IND_BUILD` do Oracle Scheduler.

```
BEGIN
   rdsadmin.rdsadmin_dbms_scheduler.disable('SYS.CLEANUP_ONLINE_IND_BUILD');
END;
/
```

## Ativar trabalhos do Oracle Scheduler de propriedade do SYS
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Enabling"></a>

Para ativar um trabalho do Oracle Scheduler pertencente ao SYS, use o procedimento `rdsadmin.rdsadmin_dbms_scheduler.enable`.

Esse procedimento usa o parâmetro comum `name` para tarefas do Oracle Scheduler. Para obter mais informações, consulte [Parâmetros comuns para os procedimentos do Oracle Scheduler](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

O exemplo a seguir habilita o trabalho `SYS.CLEANUP_ONLINE_IND_BUILD` do Oracle Scheduler.

```
BEGIN
   rdsadmin.rdsadmin_dbms_scheduler.enable('SYS.CLEANUP_ONLINE_IND_BUILD');
END;
/
```

## Modificar o intervalo de repetição do Oracle Scheduler para trabalhos do tipo CALENDAR
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Modifying_Calendar"></a>

Para modificar o intervalo de repetição de um trabalho do Oracle Scheduler pertencente ao SYS do tipo `CALENDAR`, use o procedimento `rdsadmin.rdsadmin_dbms_scheduler.disable`.

Este procedimento usa os seguintes parâmetros comuns para tarefas do Oracle Scheduler:
+ `name`
+ `attribute`
+ `value`

Para obter mais informações, consulte [Parâmetros comuns para os procedimentos do Oracle Scheduler](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

O exemplo a seguir modifica o intervalo de repetição do trabalho `SYS.CLEANUP_ONLINE_IND_BUILD` do Oracle Scheduler.

```
BEGIN
     rdsadmin.rdsadmin_dbms_scheduler.set_attribute(
          name      => 'SYS.CLEANUP_ONLINE_IND_BUILD', 
          attribute => 'repeat_interval', 
          value     => 'freq=daily;byday=FRI,SAT;byhour=20;byminute=0;bysecond=0');
END;
/
```

## Modificar o intervalo de repetição do Oracle Scheduler para trabalhos do tipo NAMED
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.Modifying_Named"></a>

Alguns trabalhos do Oracle Scheduler usam um nome de programação em vez de um intervalo. Para esse tipo de trabalho, é necessário criar outra programação nomeada no esquema do usuário mestre. Use o procedimento `sys.dbms_scheduler.create_schedule` padrão do Oracle para fazer isso. Além disso, use o `rdsadmin.rdsadmin_dbms_scheduler.set_attribute procedure` para atribuir a nova programação nomeada ao trabalho. 

Este procedimento usa o seguinte parâmetro comum para tarefas do Oracle Scheduler:
+ `name`
+ `attribute`
+ `value`

Para obter mais informações, consulte [Parâmetros comuns para os procedimentos do Oracle Scheduler](#Appendix.Oracle.CommonDBATasks.Scheduler.CommonParameters).

O exemplo a seguir modifica o intervalo de repetição do trabalho `SYS.BSLN_MAINTAIN_STATS_JOB` do Oracle Scheduler.

```
BEGIN
     DBMS_SCHEDULER.CREATE_SCHEDULE (
          schedule_name   => 'rds_master_user.new_schedule',
          start_date      => SYSTIMESTAMP,
          repeat_interval => 'freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=0;byminute=0;bysecond=0',
          end_date        => NULL,
          comments        => 'Repeats daily forever');
END;
/
 
BEGIN
     rdsadmin.rdsadmin_dbms_scheduler.set_attribute (
          name      => 'SYS.BSLN_MAINTAIN_STATS_JOB', 
          attribute => 'schedule_name',
          value     => 'rds_master_user.new_schedule');
END;
/
```

## Desativar a confirmação automática para a criação de trabalhos do Oracle Scheduler
<a name="Appendix.Oracle.CommonDBATasks.Scheduler.autocommit"></a>

Quando o `DBMS_SCHEDULER.CREATE_JOB` cria trabalhos do Oracle Scheduler, ele os cria imediatamente e confirma as alterações. Talvez seja necessário incorporar a criação de trabalhos do Oracle Scheduler na transação do usuário para fazer o seguinte:
+ Reverter o trabalho do Oracle Schedule quando a transação do usuário é revertida.
+ Criar o trabalho do Oracle Scheduler quando a transação principal do usuário é confirmada.

Você pode usar o procedimento `rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag` para ativar esse comportamento. Este procedimento não usa parâmetros. Você pode usar esse procedimento nas seguintes versões do RDS para Oracle:
+ 21.0.0.0.ru-2022-07.rur-2022-07.r1 e posteriores
+ 19.0.0.0.ru-2022-07.rur-2022-07.r1 e posteriores

O exemplo a seguir desativa a confirmação automática do Oracle Scheduler, cria um trabalho do Oracle Scheduler e, depois, reverte a transação. Como a confirmação automática está desativada, o banco de dados também reverte a criação do trabalho do Oracle Scheduler.

```
BEGIN
  rdsadmin.rdsadmin_dbms_scheduler.set_no_commit_flag;
  DBMS_SCHEDULER.CREATE_JOB(job_name   => 'EMPTY_JOB', 
                            job_type   => 'PLSQL_BLOCK', 
                            job_action => 'begin null; end;',
                            auto_drop  => false);
  ROLLBACK;
END;
/

PL/SQL procedure successfully completed.

SELECT * FROM DBA_SCHEDULER_JOBS WHERE JOB_NAME='EMPTY_JOB';

no rows selected
```

# Diagnosticar problemas com instâncias de banco de dados do RDS para Oracle
<a name="Appendix.Oracle.CommonDBATasks.Diagnostics"></a>

O Oracle Database inclui uma infraestrutura de diagnóstico de falhas que pode ser usada para investigar problemas do banco de dados. Na terminologia do Oracle, um *problema* é um erro crítico, como um erro de código ou uma corrupção de dados. Um *incidente* é a ocorrência de um problema. Se o mesmo erro ocorrer três vezes, a infraestrutura mostrará três incidentes desse problema. Para ter mais informações, consulte [Diagnosing and resolving problems](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/diagnosing-and-resolving-problems.html#GUID-8DEB1BE0-8FB9-4FB2-A19A-17CF6F5791C3) (Diagnosticar e resolver problemas) na documentação do Oracle Database.

O utilitário ADRCI (Automatic Diagnostic Repository Command Interpreter) é uma ferramenta da linha de comando Oracle usada para gerenciar dados de diagnóstico. Por exemplo, é possível usar essa ferramenta para investigar problemas e empacotar dados de diagnóstico. Um *pacote de incidente* inclui dados de diagnóstico de um incidente ou de todos os incidentes que fazem referência a um problema específico. Você pode fazer upload de um pacote de incidente, que é implementado como um arquivo .zip, para o suporte do Oracle.

Para oferecer uma experiência de serviço gerenciada, o Amazon RDS não fornece acesso ao shell para ADRCI. Use o pacote `rdsadmin.rdsadmin_adrci_util` do Amazon RDS para realizar tarefas de diagnóstico da instância de banco de dados do RDS para Oracle.

Usando as funções em `rdsadmin_adrci_util`, é possível listar e empacotar problemas e incidentes, além de mostrar arquivos de rastreamento. Todas as funções retornam um ID de tarefa. Esse ID faz parte do nome do arquivo de log que contém a saída de ADRCI, como em `dbtask-task_id.log`. O arquivo de log reside no diretório BDUMP. É possível baixar o arquivo de log seguindo o procedimento descrito em [Como baixar um arquivo de log de banco de dados](USER_LogAccess.Procedural.Downloading.md).

## Parâmetros comuns para procedimentos de diagnóstico
<a name="Appendix.Oracle.CommonDBATasks.CommonDiagParameters"></a>

Para executar tarefas de diagnóstico, use funções no pacote do Amazon RDS `rdsadmin.rdsadmin_adrci_util`. O pacote tem os seguintes parâmetros comuns.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `incident_id`  |  número  |  Um ID de incidente válido ou nulo   |  Nulo  |  Não  |  Se o valor for nulo, a função mostrará todos os incidentes. Se o valor não for nulo e representar um ID de incidente válido, a função mostrará o incidente especificado.   | 
|  `problem_id`  |  número  |  Um ID de problema válido ou nulo  |  Nulo  |  Não  |  Se o valor for nulo, a função mostrará todos os problemas. Se o valor não for nulo e representar um ID de problema válido, a função mostrará o problema especificado.  | 
|  `last`  |  número  |  Um inteiro válido maior que 0 ou nulo  |  Nulo  |  Não  |  Se o valor for nulo, a função exibirá no máximo 50 itens. Se o valor não for nulo, a função exibirá o número especificado.  | 

## Listar incidentes
<a name="Appendix.Oracle.CommonDBATasks.Incidents"></a>

Para listar incidentes de diagnóstico para o Oracle, use a função do Amazon RDS `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents`. Você pode listar incidentes no modo básico ou detalhado. Por padrão, a função lista os 50 incidentes mais recentes.

Essa função usa os seguintes parâmetros comuns:
+  `incident_id`
+  `problem_id`
+  `last`

Se você especificar `incident_id` e `problem_id`, `incident_id` substituirá `problem_id`. Para ter mais informações, consulte [Parâmetros comuns para procedimentos de diagnóstico](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Essa função usa o parâmetro adicional a seguir.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `detail`  |  booliano  | TRUE ou FALSE |  `FALSE`  |  Não  |  Se for `TRUE`, a função listará incidentes no modo detalhado. Se for `FALSE`, a função listará incidentes no modo básico.  | 

Para listar todos os incidentes, consulte a função `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` sem argumentos. A consulta retorna o ID da tarefa.

```
SQL> SELECT rdsadmin.rdsadmin_adrci_util.list_adrci_incidents AS task_id FROM DUAL;

TASK_ID
------------------
1590786706158-3126
```

Ou chame a função `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` sem argumentos e armazene a saída em uma variável de cliente SQL. Você pode usar a variável em outras instruções.

```
SQL> VAR task_id VARCHAR2(80);
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents;

PL/SQL procedure successfully completed.
```

Para ler o arquivo de log, chame o procedimento do Amazon RDS `rdsadmin.rds_file_util.read_text_file`. Forneça o ID da tarefa como parte do nome do arquivo. A saída a seguir mostra três incidentes: 53523, 53522 e 53521.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:11:46.193 UTC [INFO ] Listing ADRCI incidents.
2020-05-29 21:11:46.256 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
INCIDENT_ID PROBLEM_KEY                                                 CREATE_TIME
----------- ----------------------------------------------------------- ----------------------------------------
53523       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00
53522       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 2020-05-29 20:15:15.247000 +00:00
53521       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 2020-05-29 20:15:06.047000 +00:00
3 rows fetched


2020-05-29 21:11:46.256 UTC [INFO ] The ADRCI incidents were successfully listed.
2020-05-29 21:11:46.256 UTC [INFO ] The task finished successfully.

14 rows selected.
```

Para listar determinado incidente, especifique seu ID usando o parâmetro `incident_id`. No exemplo a seguir, o arquivo de log é consultado somente para o incidente 53523.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents(incident_id=>53523);

PL/SQL procedure successfully completed.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
------------------------------------------------------------------------------------------------------------------
2020-05-29 21:15:25.358 UTC [INFO ] Listing ADRCI incidents.
2020-05-29 21:15:25.426 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME
-------------------- ----------------------------------------------------------- ---------------------------------
53523                ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00
1 rows fetched


2020-05-29 21:15:25.427 UTC [INFO ] The ADRCI incidents were successfully listed.
2020-05-29 21:15:25.427 UTC [INFO ] The task finished successfully.

12 rows selected.
```

## Listar problemas
<a name="Appendix.Oracle.CommonDBATasks.Problems"></a>

Para listar problemas de diagnóstico para o Oracle, use a função do Amazon RDS `rdsadmin.rdsadmin_adrci_util.list_adrci_problems`.

Por padrão, a função lista os 50 problemas mais recentes. 

Essa função usa os parâmetros comuns `problem_id` e `last`. Para ter mais informações, consulte [Parâmetros comuns para procedimentos de diagnóstico](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Para obter o ID da tarefa para todos os problemas, chame a função `rdsadmin.rdsadmin_adrci_util.list_adrci_problems` sem argumentos e armazene a saída em uma variável de cliente SQL.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems;

PL/SQL procedure successfully completed.
```

Para ler o arquivo de log, chame a função `rdsadmin.rds_file_util.read_text_file`, fornecendo o ID da tarefa como parte do nome do arquivo. Na saída a seguir, o arquivo de log mostra três problemas: 1, 2 e 3.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
----------------------------------------------------------------------------------------------------------------------
2020-05-29 21:18:50.764 UTC [INFO ] Listing ADRCI problems.
2020-05-29 21:18:50.829 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
PROBLEM_ID   PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
---------- ----------------------------------------------------------- ------------- ---------------------------------
2          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 53523         2020-05-29 20:15:20.928000 +00:00
3          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522         2020-05-29 20:15:15.247000 +00:00
1          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 53521         2020-05-29 20:15:06.047000 +00:00
3 rows fetched


2020-05-29 21:18:50.829 UTC [INFO ] The ADRCI problems were successfully listed.
2020-05-29 21:18:50.829 UTC [INFO ] The task finished successfully.

14 rows selected.
```

No exemplo a seguir, somente o problema 3 é listado.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems(problem_id=>3);

PL/SQL procedure successfully completed.
```

Para ler o arquivo de log do problema 3, chame `rdsadmin.rds_file_util.read_text_file`. Forneça o ID da tarefa como parte do nome do arquivo.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------
2020-05-29 21:19:42.533 UTC [INFO ] Listing ADRCI problems.
2020-05-29 21:19:42.599 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
PROBLEM_ID PROBLEM_KEY                                                 LAST_INCIDENT LASTINC_TIME
---------- ----------------------------------------------------------- ------------- ---------------------------------
3          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522         2020-05-29 20:15:15.247000 +00:00
1 rows fetched


2020-05-29 21:19:42.599 UTC [INFO ] The ADRCI problems were successfully listed.
2020-05-29 21:19:42.599 UTC [INFO ] The task finished successfully.

12 rows selected.
```

## Criar pacotes de incidente
<a name="Appendix.Oracle.CommonDBATasks.IncPackages"></a>

É possível criar pacotes de incidente usando a função do Amazon RDS `rdsadmin.rdsadmin_adrci_util.create_adrci_package`. A saída é um arquivo .zip que você pode fornecer ao suporte do Oracle.

Essa função usa os seguintes parâmetros comuns:
+ `problem_id`
+ `incident_id`

Especifique um dos parâmetros anteriores. Se você especificar ambos os parâmetros, `incident_id` substituirá `problem_id`. Para ter mais informações, consulte [Parâmetros comuns para procedimentos de diagnóstico](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Para criar um pacote para um incidente específico, chame a função `rdsadmin.rdsadmin_adrci_util.create_adrci_package` do Amazon RDS com o parâmetro `incident_id`. O exemplo a seguir cria um pacote para o incidente 53523.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(incident_id=>53523);

PL/SQL procedure successfully completed.
```

Para ler o arquivo de log, chame `rdsadmin.rds_file_util.read_text_file`. Você pode fornecer o ID da tarefa como parte do nome do arquivo. A saída mostra que você gerou o pacote de incidente `ORA700EVE_20200529212043_COM_1.zip`.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
--------------------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:20:43.031 UTC [INFO ] The ADRCI package is being created.
2020-05-29 21:20:47.641 UTC [INFO ] Generated package 1 in file /rdsdbdata/log/trace/ORA700EVE_20200529212043_COM_1.zip, mode complete
2020-05-29 21:20:47.642 UTC [INFO ] The ADRCI package was successfully created.
2020-05-29 21:20:47.642 UTC [INFO ] The task finished successfully.
```

Para empacotar dados de diagnóstico de determinado problema, especifique seu ID usando o parâmetro `problem_id`. No exemplo a seguir, os dados são empacotados apenas para o problema 3.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(problem_id=>3);

PL/SQL procedure successfully completed.
```

Para ler a saída da tarefa, chame `rdsadmin.rds_file_util.read_text_file`, fornecendo o ID da tarefa como parte do nome do arquivo. A saída mostra que você gerou o pacote de incidente `ORA700EVE_20200529212111_COM_1.zip`.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
------------------------------------------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:21:11.050 UTC [INFO ] The ADRCI package is being created.
2020-05-29 21:21:15.646 UTC [INFO ] Generated package 2 in file /rdsdbdata/log/trace/ORA700EVE_20200529212111_COM_1.zip, mode complete
2020-05-29 21:21:15.646 UTC [INFO ] The ADRCI package was successfully created.
2020-05-29 21:21:15.646 UTC [INFO ] The task finished successfully.
```

Também é possível baixar o arquivo de log. Para obter mais informações, consulte [Como baixar um arquivo de log de banco de dados](USER_LogAccess.Procedural.Downloading.md).

## Mostrar arquivos de rastreamento
<a name="Appendix.Oracle.CommonDBATasks.ShowTrace"></a>

Você pode usar a função do Amazon RDS `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile` para listar arquivos de rastreamento no diretório de rastreamento e todos os diretórios de incidentes na página inicial atual do ADR. Você também pode mostrar o conteúdo dos arquivos de rastreamento e dos arquivos de rastreamento de incidentes.

Essa função usa o parâmetro a seguir.


****  

| Nome do parâmetro | Tipo de dados | Valores válidos | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | --- | 
|  `filename`  |  varchar2  | Um nome de arquivo de rastreamento válido |  Nulo  |  Não  |  Se o valor for nulo, a função mostrará todos os arquivos de rastreamento. Se não for nulo, a função mostrará o arquivo especificado.  | 

Para mostrar o arquivo de rastreamento, chame a função `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile` do Amazon RDS.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile;

PL/SQL procedure successfully completed.
```

Para listar os nomes dos arquivos de rastreamento, chame o procedimento `rdsadmin.rds_file_util.read_text_file` do Amazon RDS, fornecendo o ID da tarefa como parte do nome do arquivo.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE TEXT LIKE '%/alert_%';

TEXT
---------------------------------------------------------------
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-28
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-27
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-26
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-25
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-24
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-23
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-22
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-21
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log

9 rows selected.
```

No exemplo a seguir, é gerada uma saída para `alert_ORCL.log`.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile('diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log');

PL/SQL procedure successfully completed.
```

Para ler o arquivo de log, chame `rdsadmin.rds_file_util.read_text_file`. Forneça o ID da tarefa como parte do nome do arquivo. A saída mostra as primeiras 10 linhas de alert\$1ORCL.log.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE ROWNUM <= 10;

TEXT
-----------------------------------------------------------------------------------------
2020-05-29 21:24:02.083 UTC [INFO ] The trace files are being displayed.
2020-05-29 21:24:02.128 UTC [INFO ] Thu May 28 23:59:10 2020
Thread 1 advanced to log sequence 2048 (LGWR switch)
  Current log# 3 seq# 2048 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_3_hbl2p8xs_.log
Thu May 28 23:59:10 2020
Archived Log entry 2037 added for thread 1 sequence 2047 ID 0x5d62ce43 dest 1:
Fri May 29 00:04:10 2020
Thread 1 advanced to log sequence 2049 (LGWR switch)
  Current log# 4 seq# 2049 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_4_hbl2qgmh_.log
Fri May 29 00:04:10 2020

10 rows selected.
```

Também é possível baixar o arquivo de log. Para obter mais informações, consulte [Como baixar um arquivo de log de banco de dados](USER_LogAccess.Procedural.Downloading.md).

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

Veja a seguir como executar diversas tarefas de DBA nas instâncias de banco de dados do Amazon RDS que executam o Oracle. Para oferecer uma experiência de serviço gerenciado, o Amazon RDS não fornece acesso ao shell para instâncias de bancos de dados e restringe o acesso a determinados procedimentos e tabelas do sistema que exigem privilégios avançados. 

**Topics**
+ [

## Criar e eliminar diretórios no espaço de armazenamento de dados principal
](#Appendix.Oracle.CommonDBATasks.NewDirectories)
+ [

## Listagem de arquivos no diretório de uma instância de banco de dados
](#Appendix.Oracle.CommonDBATasks.ListDirectories)
+ [

## Leitura de arquivos no diretório de uma instância de banco de dados
](#Appendix.Oracle.CommonDBATasks.ReadingFiles)
+ [

## Acessar arquivos do Opatch
](#Appendix.Oracle.CommonDBATasks.accessing-opatch-files)
+ [

## Gerenciando de tarefas do advisor
](#Appendix.Oracle.CommonDBATasks.managing-advisor-tasks)
+ [

# Transportar espaços para tabela
](rdsadmin_transport_util.md)

## Criar e eliminar diretórios no espaço de armazenamento de dados principal
<a name="Appendix.Oracle.CommonDBATasks.NewDirectories"></a>

Para criar diretórios, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.create_directory`. É possível criar até 10.000 diretórios, todas localizados no seu espaço de armazenamento físico de dados principal. Para criar diretórios, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.drop_directory`.

Os procedimentos `create_directory` e `drop_directory` têm o parâmetro necessário a seguir. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  —  |  Sim  |  O nome do diretório.  | 

O exemplo a seguir cria um novo diretório chamado `PRODUCT_DESCRIPTIONS`. 

```
EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'product_descriptions');
```

O dicionário de dados armazena o nome do diretório em maiúsculas. Você pode listar os diretórios consultando `DBA_DIRECTORIES`. O sistema escolhe automaticamente o nome do caminho do host real. O exemplo a seguir obtém o caminho do diretório para o diretório chamado `PRODUCT_DESCRIPTIONS`: 

```
SELECT DIRECTORY_PATH 
  FROM DBA_DIRECTORIES 
 WHERE DIRECTORY_NAME='PRODUCT_DESCRIPTIONS';
        
DIRECTORY_PATH
----------------------------------------
/rdsdbdata/userdirs/01
```

O nome de usuário mestre para a instância de banco de dados tem privilégios de leitura e gravação no novo diretório e pode conceder acesso a outros usuários. Privilégios `EXECUTE` não estão disponíveis para diretórios em uma instância de banco de dados. Os diretórios são criados no seu espaço de armazenamento físico de dados principal e consumirão espaço e largura de banda de E/S. 

O exemplo a seguir elimina o diretório chamado `PRODUCT_DESCRIPTIONS`. 

```
EXEC rdsadmin.rdsadmin_util.drop_directory(p_directory_name => 'product_descriptions');
```

**nota**  
Também é possível descartar um diretório usando o comando do Oracle SQ `DROP DIRECTORY`. 

Descartar um diretório não remove seu conteúdo. Como o procedimento `rdsadmin.rdsadmin_util.create_directory` pode reutilizar nomes de caminhos, os arquivos em diretórios eliminados podem aparecer em um diretório recém-criado. Antes de eliminar um diretório, recomendamos que você use `UTL_FILE.FREMOVE` para remover arquivos do diretório. Para obter mais informações, consulte [Procedimento FREMOVE](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) na documentação da Oracle.

## Listagem de arquivos no diretório de uma instância de banco de dados
<a name="Appendix.Oracle.CommonDBATasks.ListDirectories"></a>

Para listar os arquivos em um diretório, use o procedimento do Amazon RDS `rdsadmin.rds_file_util.listdir`. Esse procedimento não é compatível com uma réplica da Oracle. O procedimento `listdir` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  Sim  |  O nome do diretório a ser listado.  | 

O exemplo a seguir concede privilégios de leitura/gravação no diretório `PRODUCT_DESCRIPTIONS` para o usuário `rdsadmin` e, em seguida, lista os arquivos neste diretório. 

```
GRANT READ,WRITE ON DIRECTORY PRODUCT_DESCRIPTIONS TO rdsadmin;
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'PRODUCT_DESCRIPTIONS'));
```

## Leitura de arquivos no diretório de uma instância de banco de dados
<a name="Appendix.Oracle.CommonDBATasks.ReadingFiles"></a>

Para ler um arquivo de texto, use o procedimento do Amazon RDS `rdsadmin.rds_file_util.read_text_file`. O procedimento `read_text_file` tem os seguintes parâmetros. 


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_directory`  |  varchar2  |  —  |  Sim  |  O nome do diretório que contém o arquivo.  | 
|  `p_filename`  |  varchar2  |  —  |  Sim  |  O nome do arquivo a ser lido.  | 

O exemplo a seguir cria o arquivo `rice.txt` no diretório `PRODUCT_DESCRIPTIONS`. 

```
declare
  fh sys.utl_file.file_type;
begin
  fh := utl_file.fopen(location=>'PRODUCT_DESCRIPTIONS', filename=>'rice.txt', open_mode=>'w');
  utl_file.put(file=>fh, buffer=>'AnyCompany brown rice, 15 lbs');
  utl_file.fclose(file=>fh);
end;
/
```

O exemplo a seguir lê o arquivo `rice.txt` do diretório `PRODUCT_DESCRIPTIONS`. 

```
SELECT * FROM TABLE
    (rdsadmin.rds_file_util.read_text_file(
        p_directory => 'PRODUCT_DESCRIPTIONS',
        p_filename  => 'rice.txt'));
```

## Acessar arquivos do Opatch
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files"></a>

O Opatch é um utilitário do Oracle que permite a aplicação e a reversão de patches para o software do Oracle. O mecanismo do Oracle para determinar quais patches foram aplicados a um banco de dados é o comando `opatch lsinventory`. Para abrir solicitações de serviço para clientes de Traga sua própria licença (BYOL – Bring Your Own Licence), o suporte do Oracle solicita o arquivo `lsinventory` e, às vezes, o arquivo `lsinventory_detail` gerado pelo Opatch.

Para oferecer uma experiência de serviço gerenciada, o Amazon RDS não fornece acesso ao shell para o Opatch. Em vez disso, o `lsinventory-dbv.txt` no diretório BDUMP contém as informações de patch relacionadas à versão atual do mecanismo. Quando você executa um upgrade principal ou secundário, o Amazon RDS atualiza `lsinventory-dbv.txt` em até uma hora após a aplicação do patch. Para verificar os patches aplicados, leia `lsinventory-dbv.txt`. Essa ação é semelhante a executar o comando `opatch lsinventory`.

**nota**  
Os exemplos nesta seção pressupõem que o diretório BDUMP seja chamado `BDUMP`. Em uma réplica de leitura, o nome do diretório BDUMP é diferente. Para saber como obter o nome BDUMP consultando `V$DATABASE.DB_UNIQUE_NAME` em uma réplica de leitura, consulte [Listar arquivos](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles.ViewingBackgroundDumpDest).

Os arquivos de inventário usam a convenção de nomenclatura do Amazon RDS `lsinventory-dbv.txt` e `lsinventory_detail-dbv.txt`, onde *dbv* é o nome completo da versão do banco de dados. O arquivo `lsinventory-dbv.txt` está disponível em todas as versões do banco de dados. O `lsinventory_detail-dbv.txt` correspondente está disponível em 19.0.0.0, ru-2020-01.rur-2020-01.r1 ou posterior.

Por exemplo, se a versão do seu banco de dados for 19.0.0.0.ru-2021-07.rur-2021-07.r1, os arquivos de inventário terão os nomes a seguir.

```
lsinventory-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
lsinventory_detail-19.0.0.0.ru-2021-07.rur-2021-07.r1.txt
```

Baixe os arquivos que correspondem à versão atual do mecanismo de banco de dados.

### Console
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.console"></a>

**Como baixar um arquivo de inventário usando o console**

1. Abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha o nome da instância de banco de dados que contém o arquivo de log que você deseja visualizar.

1. Escolha a guia **Logs & events (Logs e eventos)**.

1. Role para baixo até a seção **Logs**.

1. Na seção **Logs**, procure por `lsinventory`.

1. Escolha o arquivo que você deseja acessar e selecione **Download** (Baixar).

### SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.sql"></a>

Para ler o `lsinventory-dbv.txt` em um cliente SQL, é possível usar uma instrução `SELECT`. Para esta técnica, use uma das seguintes funções `rdsadmin`: `rdsadmin.rds_file_util.read_text_file` ou `rdsadmin.tracefile_listing`.

Na consulta de exemplo a seguir, substitua *dbv* pela versão do seu banco de dados Oracle. Por exemplo, a versão do seu banco de dados pode ser 19.0.0.0.ru-2020-04.rur-2020-04.r1.

```
SELECT text
FROM   TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'lsinventory-dbv.txt'));
```

### PL/SQL
<a name="Appendix.Oracle.CommonDBATasks.accessing-opatch-files.plsql"></a>

Para ler o `lsinventory-dbv.txt` em um cliente SQL, é possível escrever um programa PL/SQL. Esse programa usa `utl_file` para ler o arquivo e `dbms_output` para imprimi-lo. Esses são pacotes fornecidos pelo Oracle. 

No programa de exemplo a seguir, substitua *dbv* pela versão do seu banco de dados Oracle. Por exemplo, a versão do seu banco de dados pode ser 19.0.0.0.ru-2020-04.rur-2020-04.r1.

```
SET SERVEROUTPUT ON
DECLARE
  v_file              SYS.UTL_FILE.FILE_TYPE;
  v_line              VARCHAR2(1000);
  v_oracle_home_type  VARCHAR2(1000);
  c_directory         VARCHAR2(30) := 'BDUMP';
  c_output_file       VARCHAR2(30) := 'lsinventory-dbv.txt';
BEGIN
  v_file := SYS.UTL_FILE.FOPEN(c_directory, c_output_file, 'r');
  LOOP
    BEGIN
      SYS.UTL_FILE.GET_LINE(v_file, v_line,1000);
      DBMS_OUTPUT.PUT_LINE(v_line);
    EXCEPTION
      WHEN no_data_found THEN
        EXIT;
    END;
  END LOOP;
END;
/
```

Ou consulte `rdsadmin.tracefile_listing` e transfira a saída para um arquivo. O exemplo a seguir transfere a saída para `/tmp/tracefile.txt`.

```
SPOOL /tmp/tracefile.txt
SELECT * 
FROM   rdsadmin.tracefile_listing 
WHERE  FILENAME LIKE 'lsinventory%';
SPOOL OFF;
```

## Gerenciando de tarefas do advisor
<a name="Appendix.Oracle.CommonDBATasks.managing-advisor-tasks"></a>

O banco de dados Oracle inclui vários advisors. Cada advisor suporta tarefas automatizadas e manuais. Você pode usar procedimentos no pacote `rdsadmin.rdsadmin_util` para gerenciar algumas tarefas do advisor.

Os procedimentos de tarefas do advisor estão disponíveis nas seguintes versões do mecanismo:
+ Oracle Database 21c (21.0.0)
+ Versão 19.0.0.0.ru-2021-01.rur-2021-01.r1 e versões posteriores do Oracle Database 19c 

  Para obter mais informações, consulte [Versão 19.0.0.0.ru-2021-01.rur-2021-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2021-01.rur-2021-01.r1) em *Notas de lançamento do Amazon RDS for Oracle*.

**Topics**
+ [

### Definição de parâmetros para tarefas do advisor
](#Appendix.Oracle.CommonDBATasks.setting-task-parameters)
+ [

### Desativação de AUTO\$1STATS\$1ADVISOR\$1TASK
](#Appendix.Oracle.CommonDBATasks.dropping-advisor-task)
+ [

### Reativação de AUTO\$1STATS\$1ADVISOR\$1TASK
](#Appendix.Oracle.CommonDBATasks.recreating-advisor-task)

### Definição de parâmetros para tarefas do advisor
<a name="Appendix.Oracle.CommonDBATasks.setting-task-parameters"></a>

Para definir parâmetros para algumas tarefas do advisor, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.advisor_task_set_parameter`. O procedimento `advisor_task_set_parameter` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  Sim  |  O nome da tarefa do advisor cujos parâmetros você deseja alterar. Os valores a seguir são válidos: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Misc.html)  | 
|  `p_parameter`  |  varchar2  |  —  |  Sim  |  O nome do parâmetro da tarefa. Para localizar parâmetros válidos para uma tarefa do advisor, execute a seguinte consulta. Substitua *p\$1task\$1name* com um valor válido para `p_task_name`: <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 
|  `p_value`  |  varchar2  |  —  |  Sim  |  O valor de um parâmetro de tarefa. Para localizar valores válidos para parâmetros de tarefa, execute a seguinte consulta. Substitua *p\$1task\$1name* com um valor válido para `p_task_name`: <pre>COL PARAMETER_NAME FORMAT a30<br />COL PARAMETER_VALUE FORMAT a30<br />SELECT PARAMETER_NAME, PARAMETER_VALUE<br />FROM DBA_ADVISOR_PARAMETERS<br />WHERE TASK_NAME='p_task_name'<br />AND PARAMETER_VALUE != 'UNUSED'<br />ORDER BY PARAMETER_NAME;</pre>  | 

Os seguintes programas PL/SQL definem `ACCEPT_PLANS` como `FALSE` para `SYS_AUTO_SPM_EVOLVE_TASK`. A tarefa automatizada do Gerenciamento de Plano SQL verifica os planos e gera um relatório de suas descobertas, mas não evolui os planos automaticamente. Você pode usar um relatório para identificar novas listas de referência do plano SQL e aceitá-las manualmente.

```
BEGIN 
  rdsadmin.rdsadmin_util.advisor_task_set_parameter(
    p_task_name => 'SYS_AUTO_SPM_EVOLVE_TASK',
    p_parameter => 'ACCEPT_PLANS',
    p_value     => 'FALSE');
END;
```

Os seguintes programas PL/SQL definem `EXECUTION_DAYS_TO_EXPIRE` como `10` para `AUTO_STATS_ADVISOR_TASK`. A tarefa predefinida `AUTO_STATS_ADVISOR_TASK` é executada automaticamente na janela de manutenção uma vez por dia. O exemplo define o período de retenção para a execução da tarefa como 10 dias. 

```
BEGIN 
  rdsadmin.rdsadmin_util.advisor_task_set_parameter(
    p_task_name => 'AUTO_STATS_ADVISOR_TASK',
    p_parameter => 'EXECUTION_DAYS_TO_EXPIRE',
    p_value     => '10');
END;
```

### Desativação de AUTO\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.dropping-advisor-task"></a>

Para desativar `AUTO_STATS_ADVISOR_TASK`, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.advisor_task_drop`. O procedimento `advisor_task_drop` aceita o parâmetro a seguir.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_task_name`  |  varchar2  |  —  |  Sim  |  O nome da tarefa do advisor a ser desabilitada. O único valor válido é `AUTO_STATS_ADVISOR_TASK`.  | 

Execute o seguinte comando: `AUTO_STATS_ADVISOR_TASK`.

```
EXEC rdsadmin.rdsadmin_util.advisor_task_drop('AUTO_STATS_ADVISOR_TASK')
```

Você pode reabilitar `AUTO_STATS_ADVISOR_TASK` usando `rdsadmin.rdsadmin_util.dbms_stats_init`.

### Reativação de AUTO\$1STATS\$1ADVISOR\$1TASK
<a name="Appendix.Oracle.CommonDBATasks.recreating-advisor-task"></a>

Para reativar `AUTO_STATS_ADVISOR_TASK`, use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.dbms_stats_init`. O procedimento `dbms_stats_init` não recebe parâmetros.

O comando a seguir reativa `AUTO_STATS_ADVISOR_TASK`.

```
EXEC rdsadmin.rdsadmin_util.dbms_stats_init()
```

# Transportar espaços para tabela
<a name="rdsadmin_transport_util"></a>

Use o pacote `rdsadmin.rdsadmin_transport_util` do Amazon RDS para copiar um conjunto de espaços para tabela de um banco de dados Oracle on-premises para uma instância de banco de dados do RDS para Oracle. No nível físico, o atributo de espaço para tabelas copia incrementalmente os arquivos de dados de origem e os arquivos de metadados para a instância de destino. Você pode transferir os arquivos usando o Amazon EFS ou o Amazon S3. Para ter mais informações, consulte [Migrar usando espaços de tabela transportáveis da Oracle](oracle-migrating-tts.md).

**Topics**
+ [

# Importar espaços para tabela transportados para a instância de banco de dados
](rdsadmin_transport_util_import_xtts_tablespaces.md)
+ [

# Importar metadados de espaços para tabela transportáveis para a instância de banco de dados
](rdsadmin_transport_util_import_xtts_metadata.md)
+ [

# Listar arquivos órfãos após a importação de um espaço para tabela
](rdsadmin_transport_util_list_xtts_orphan_files.md)
+ [

# Excluir arquivos de dados órfãos após a importação de espaços para tabela
](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md)

# Importar espaços para tabela transportados para a instância de banco de dados
<a name="rdsadmin_transport_util_import_xtts_tablespaces"></a>

Use o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar espaços para tabela que você exportou anteriormente de uma instância de banco de dados de origem. Na fase de transporte, você fará backup dos espaços para tabela somente leitura, exportará os metadados do Data Pump, transferirá esses arquivos para a instância de banco de dados de destino e, depois, importará os espaços para tabela. Para obter mais informações, consulte [Fase 4: Transportar os espaços de tabela](oracle-migrating-tts.md#oracle-migrating-tts.final-br-phase). 

## Sintaxe
<a name="rdsadmin_transport_util_import_xtts_tablespaces-syntax"></a>

```
FUNCTION import_xtts_tablespaces(
    p_tablespace_list IN CLOB,
    p_directory_name  IN VARCHAR2,
    p_platform_id     IN NUMBER DEFAULT 13,
    p_parallel        IN INTEGER DEFAULT 0) RETURN VARCHAR2;
```

## Parâmetros
<a name="rdsadmin_transport_util_import_xtts_tablespaces-parameters"></a>


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_tablespace_list`  |  `CLOB`  |  —  |  Sim  |  A lista de espaços para tabela a serem importados.  | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  Sim  | O diretório que contém os backups de espaços para tabela. | 
|  `p_platform_id`  |  `NUMBER`  |  `13`  |  Não  |  Forneça um ID de plataforma que corresponda ao especificado durante a fase de backup. Para encontrar uma lista de plataformas, consulte `V$TRANSPORTABLE_PLATFORM`. A plataforma padrão é Linux x86 de 64 bits, que é pouco comum.  | 
|  `p_parallel`  |  `INTEGER`  |  `0`  |  Não  |  O grau de paralelismo. Por padrão, o paralelismo está desabilitado.  | 

## Exemplos
<a name="rdsadmin_transport_util_import_xtts_tablespaces-examples"></a>

O exemplo a seguir importa os espaços de tabela *TBS1*, *TBS2* e *TBS3* do diretório *DATA\$1PUMP\$1DIR*. A plataforma de origem é de sistemas baseados em AIX (64 bits), que tem o ID da plataforma de `6`. É possível encontrar os IDs da plataforma consultando `V$TRANSPORTABLE_PLATFORM`.

```
VAR task_id CLOB

BEGIN
  :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
        'TBS1,TBS2,TBS3',
        'DATA_PUMP_DIR',
        p_platform_id => 6);
END;
/

PRINT task_id
```

# Importar metadados de espaços para tabela transportáveis para a instância de banco de dados
<a name="rdsadmin_transport_util_import_xtts_metadata"></a>

Use o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_metadata` para importar os metadados de espaços para tabela transportáveis para a instância de banco de dados do RDS para Oracle. Durante a operação, o status da importação de metadados é mostrado na tabela `rdsadmin.rds_xtts_operation_info`. Para obter mais informações, consulte [Etapa 5: Importar os metadados de espaços de tabela na instância de banco de dados de destino](oracle-migrating-tts.md#oracle-migrating-tts.transport.import-dmp).

## Sintaxe
<a name="rdsadmin_transport_util_import_xtts_metadata-syntax"></a>

```
PROCEDURE import_xtts_metadata(
    p_datapump_metadata_file IN SYS.DBA_DATA_FILES.FILE_NAME%TYPE,
    p_directory_name         IN VARCHAR2,
    p_exclude_stats          IN BOOLEAN DEFAULT FALSE,
    p_remap_tablespace_list  IN CLOB DEFAULT NULL,
    p_remap_user_list        IN CLOB DEFAULT NULL);
```

## Parâmetros
<a name="rdsadmin_transport_util_import_xtts_metadata-parameters"></a>


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_datapump_metadata_file`  |  `SYS.DBA_DATA_FILES.FILE_NAME%TYPE`  |  —  |  Sim  |  O nome do arquivo Oracle Data Pump que contém os metadados de seus espaços para tabela transportáveis.  | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  Sim  |  O diretório que contém o arquivo Data Pump.  | 
|  `p_exclude_stats`  |  `BOOLEAN`  |  `FALSE`  |  Não  |  Sinalizador que indica se as estatísticas devem ser excluídas.  | 
|  `p_remap_tablespace_list`  |  `CLOB`  |  NULL  |  Não  |  Uma lista de espaços para tabela a serem associados novamente durante a importação de metadados. Use o formato `from_tbs:to_tbs`. Por exemplo, especifique `users:user_data`.   | 
|  `p_remap_user_list`  |  `CLOB`  |  NULL  |  Não  |  Uma lista de esquemas de usuário a serem novamente associados durante a importação de metadados. Use o formato `from_schema_name:to_schema_name`. Por exemplo, especifique `hr:human_resources`.   | 

## Exemplos
<a name="rdsadmin_transport_util_import_xtts_metadata-examples"></a>

O exemplo importa os metadados de espaço para tabelas do arquivo *xttdump.dmp*, que está localizado no diretório *DATA\$1PUMP\$1DIR*.

```
BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata('xttdump.dmp','DATA_PUMP_DIR');
END;
/
```

# Listar arquivos órfãos após a importação de um espaço para tabela
<a name="rdsadmin_transport_util_list_xtts_orphan_files"></a>

Use o procedimento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para listar arquivos de dados que ficaram órfãos após a importação de espaços para tabela. Depois de identificar os arquivos de dados, você pode excluí-los chamando `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import`.

## Sintaxe
<a name="rdsadmin_transport_util_list_xtts_orphan_files-syntax"></a>

```
FUNCTION list_xtts_orphan_files RETURN xtts_orphan_files_list_t PIPELINED;
```

## Exemplos
<a name="rdsadmin_transport_util_list_xtts_orphan_files-examples"></a>

O exemplo a seguir executa o procedimento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files`. A saída mostra dois arquivos de dados que estão órfãos.

```
SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);

FILENAME       FILESIZE
-------------- ---------
datafile_7.dbf 104865792
datafile_8.dbf 104865792
```

# Excluir arquivos de dados órfãos após a importação de espaços para tabela
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import"></a>

Use o procedimento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para excluir arquivos de dados que ficaram órfãos após a importação de espaços para tabela. A execução desse comando gera um arquivo de log que usa o formato do nome `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` no diretório `BDUMP`. Use o procedimento `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import` para encontrar os arquivos órfãos. Você pode ler o arquivo de log chamando o procedimento `rdsadmin.rds_file_util.read_text_file`. Para obter mais informações, consulte [Fase 6: Limpar os arquivos restantes](oracle-migrating-tts.md#oracle-migrating-tts.cleanup).

## Sintaxe
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-syntax"></a>

```
PROCEDURE cleanup_incomplete_xtts_import(
    p_directory_name IN VARCHAR2);
```

## Parâmetros
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-parameters"></a>


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  `VARCHAR2`  |  —  |  Sim  |  O diretório que contém os arquivos de dados órfãos.  | 

## Exemplos
<a name="rdsadmin_transport_util_cleanup_incomplete_xtts_import-examples"></a>

O exemplo a seguir exclui os arquivos de dados órfãos no *DATA\$1PUMP\$1DIR*.

```
BEGIN
  rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('DATA_PUMP_DIR');
END;
/
```

O exemplo a seguir lê o arquivo de log gerado pelo comando anterior. 

```
SELECT * 
FROM TABLE(rdsadmin.rds_file_util.read_text_file(
       p_directory => 'BDUMP',
       p_filename  => 'rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log'));

TEXT
--------------------------------------------------------------------------------
orphan transported datafile datafile_7.dbf deleted.
orphan transported datafile datafile_8.dbf deleted.
```

# Trabalhar com armazenamento no RDS para Oracle
<a name="User_Oracle_AdditionalStorage"></a>

Cada instância do RDS para Oracle tem um volume de armazenamento primário. Para aumentar a capacidade de armazenamento, você pode anexar até três volumes de armazenamento adicionais à sua instância de banco de dados. Dependendo dos requisitos da workload, escolha entre armazenamento gp3 e io2 para cada volume. Por exemplo, você pode colocar dados acessados com frequência em um volume io2 e dados históricos em um volume gp3.

Use volumes de armazenamento adicionais para habilitar os seguintes benefícios:
+ **Capacidade aprimorada**: escale seu armazenamento total em até 256 TiB por instância de banco de dados anexando até três volumes de armazenamento adicionais.
+ **Configuração flexível de armazenamento e otimização do desempenho**: combine diferentes tipos de armazenamento (gp3 e io2) para otimizar o custo e a performance com base em seus padrões de acesso aos dados. Separe os dados acessados com frequência no armazenamento io2 de alta performance dos dados de arquivamento no armazenamento gp3 econômico.
+ **Expanda e reduza a capacidade de armazenamento conforme necessário**: anexe um volume quando precisar de armazenamento adicional, como durante a migração de dados, e depois exclua o volume. Dessa forma, você pode expandir e reduzir o armazenamento total da instância de banco de dados.
+ **Movimentação de dados on-line**: use os recursos integrados do Oracle Database para mover dados entre volumes sem tempo de inatividade.

**nota**  
Você pode remover volumes de armazenamento adicionais, mas não pode remover o volume principal.

**Topics**
+ [

## Considerações sobre o uso de volumes de armazenamento adicionais com o RDS para Oracle
](#User_Oracle_AdditionalStorage.considerations)
+ [

## Limitações do uso de volumes de armazenamento adicionais com o RDS para Oracle
](#User_Oracle_AdditionalStorage.limitations)
+ [

## Operações de gerenciamento de banco de dados com volumes de armazenamento adicionais no RDS para Oracle
](#User_Oracle_AdditionalStorage.DBManagement)
+ [

# Adicionar, remover ou modificar volumes de armazenamento com o RDS para Oracle
](User_Oracle_AdditionalStorage.ModifyStorageVolumes.md)
+ [

# Backup e restauração de dados com volumes de armazenamento adicionais no RDS para Oracle
](User_Oracle_AdditionalStorage.BackupRestore.md)
+ [

# Casos de uso para volumes de armazenamento adicionais no RDS para Oracle
](User_Oracle_AdditionalStorage.UseCases.md)

## Considerações sobre o uso de volumes de armazenamento adicionais com o RDS para Oracle
<a name="User_Oracle_AdditionalStorage.considerations"></a>

Pense no seguinte ao usar volumes de armazenamento adicionais com o RDS para Oracle:
+ É possível adicionar até três volumes de armazenamento adicionais por instância.
+ Volumes de armazenamento adicionais devem usar os seguintes nomes de volume:
  + rdsdbdata2
  + rdsdbdata3
  + rdsdbdata4
+ Você só pode usar os tipos de armazenamento SSD de uso geral (gp3) e o armazenamento em SSD de IOPS provisionadas (io2).
+ Você pode usar os recursos de realocação on-line da Oracle para mover dados entre volumes enquanto suas aplicações continuam em execução.
+ Quando você cria um volume de armazenamento adicional modificando a instância de banco de dados, o RDS cria imediatamente o volume de armazenamento, independentemente da configuração de modificações do cronograma. Adicionar um volume de armazenamento é uma operação on-line e não afeta a performance do banco de dados. Consulte [Usar a configuração de programação de modificações](USER_ModifyInstance.ApplyImmediately.md).

Para ter a performance ideal, confira o seguinte ao usar volumes de armazenamento adicionais:
+ Planejamento de movimentação de dados
  + Programe grandes movimentos fora do horário de pico.
  + Divida grandes operações em partes menores.
  + Monitore os recursos do sistema durante as movimentações.
+ Gerenciamento de recursos
  + Mantenha espaço livre suficiente nos dois volumes.
  + Monitorar padrões de E/S usando AWR ou Statspack.
  + Observe cenários de armazenamento cheio.
+ Práticas recomendadas
  + Use operações de realocação de arquivos de dados on-line sempre que possível.
  + Mantenha índices apropriados.
  + Monitore o uso do espaço regularmente.

Ao usar volumes de armazenamento adicionais com réplicas:
+ Quando você está criando uma réplica do RDS para Oracle para uma instância de banco de dados que tenha volumes de armazenamento adicionais, o RDS configura automaticamente volumes de armazenamento adicionais na réplica. No entanto, nenhuma modificação subsequente feita nos volumes de armazenamento da sua instância de banco de dados primária é aplicada automaticamente à réplica.
+ Ao gerenciar localizações de arquivos de dados em vários volumes, recomendamos usar configurações de grupos de parâmetros em vez de alterações em nível de sessão para garantir um comportamento consistente entre as instâncias primária e de réplica.

## Limitações do uso de volumes de armazenamento adicionais com o RDS para Oracle
<a name="User_Oracle_AdditionalStorage.limitations"></a>

As seguintes limitações se aplicam ao uso de volumes de armazenamento adicionais com o RDS para Oracle:
+ Você não pode adicionar um volume de armazenamento aos tipos de instância com menos de 64 GiB de memória porque eles não têm memória suficiente para comportar grandes volumes de armazenamento.
+ O tamanho mínimo de armazenamento é de 200 GiB para volumes de armazenamento adicionais. O volume de armazenamento primário da sua instância de banco de dados deve ser igual ou maior que 200 GiB para anexar volumes de armazenamento adicionais. O tamanho máximo de armazenamento para sua instância de banco de dados é de 256 TiB no total em todos os volumes.
+ Os seguintes recursos não são aceitos em instâncias de banco de dados com volumes de armazenamento adicionais:
  + Backups automatizados entre regiões
  + Ajuste de escala automático do armazenamento (para volumes de armazenamento adicionais)
  + Cópia de snapshot entre contas
  + Snapshots públicos
+ Você não pode excluir o volume de armazenamento primário (`rdsdbdata`), mas pode excluir outros volumes de armazenamento, desde que estejam vazios.
+ Não é possível armazenar os redo logs on-line, os redo logs arquivados e os arquivos de controle em volumes de armazenamento adicionais. Esses arquivos só podem ser armazenados no volume de armazenamento primário (`rdsdbdata`).

## Operações de gerenciamento de banco de dados com volumes de armazenamento adicionais no RDS para Oracle
<a name="User_Oracle_AdditionalStorage.DBManagement"></a>

Você pode realizar operações de gerenciamento de banco de dados, como criar espaços para tabela ou mover dados entre volumes de armazenamento, enquanto usa volumes de armazenamento adicionais no RDS para Oracle. Para acessar mais informações sobre operações de gerenciamento de banco de dados com volumes de armazenamento adicionais, consulte as seguintes seções:
+ [Especificar locais de arquivos de banco de dados no RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [Criar e usar espaços de tabela no RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [Mover arquivos de dados entre volumes no RDS para Oracle](Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes.md#Appendix.Oracle.CommonDBATasks.MovingDatafiles)

# Adicionar, remover ou modificar volumes de armazenamento com o RDS para Oracle
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes"></a>

Você pode adicionar, modificar e remover volumes de armazenamento adicionais usando a Console de gerenciamento da AWS ou o AWS CLI. Todas as operações usam o comando `modify-db-instance` com o parâmetro `additional-storage-volumes`.

**Importante**  
Adicionar ou remover volumes de armazenamento adicionais cria uma ação pendente de backup e uma janela de bloqueio. A janela de bloqueio é fechada quando o fluxo de trabalho de backup é concluído.



## Adicionar volumes de armazenamento
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Add"></a>

Você pode adicionar até três volumes de armazenamento além do volume de armazenamento primário. Para adicionar um novo volume de armazenamento à sua instância de banco de dados do RDS para Oracle, use o comando `modify-db-instance` com o parâmetro `additional-storage-volumes`.

O trecho de código a seguir adiciona um novo volume SSD de uso geral (gp3) de 5 mil GiB com 4 mil IOPS provisionadas denominado `rdsdbdata3`.

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata3",
            "StorageType":"gp3",
            "AllocatedStorage":5000
            "IOPS":4000}
    ]' \
  --apply-immediately
```

## Modificar volumes de armazenamento
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Modifying"></a>

Você pode modificar o tipo de armazenamento, o tamanho de armazenamento alocado, as IOPS e as configurações de throughput de armazenamento de seu volume de armazenamento adicional. O trecho de código a seguir modifica a configuração de IOPS do volume `rdsdbdata2`.

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "IOPS":8000}
    ]' \
  --apply-immediately
```

**nota**  
Você não pode reduzir a alocação de armazenamento para um volume de armazenamento adicional depois de adicioná-lo à instância.

## Remover volumes de armazenamento
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Remove"></a>

Você pode remover volumes de armazenamento adicionais das instâncias de banco de dados do RDS para Oracle quando eles não são mais necessários. Antes de remover um volume, verifique se você moveu todos os arquivos do banco de dados do volume e se nenhum objeto do banco de dados está fazendo referência a ele. Verifique se o status do volume é `Not-in-use`. Você pode remover volumes de armazenamento adicionais, mas não pode remover o volume principal. 

**Atenção**  
Antes de remover um volume de armazenamento adicional, garanta que nenhum arquivo de banco de dados esteja armazenado no volume. A remoção de um volume com arquivos de banco de dados ativos causa corrupção no banco de dados.

O exemplo a seguir remove o volume `rdsdbdata4`.

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "SetForDelete":true}
    ]' \
  --apply-immediately
```

# Backup e restauração de dados com volumes de armazenamento adicionais no RDS para Oracle
<a name="User_Oracle_AdditionalStorage.BackupRestore"></a>

Você pode usar backups automatizados e criar um snapshot de banco de dados com sua instância de banco de dados com volumes de armazenamento adicionais. Todas as operações de backup incluem o volume principal e volumes de armazenamento adicionais. Também é possível usar recuperação para um ponto no tempo para sua instância de banco de dados com volumes de armazenamento adicionais. Quando você restaura seu banco de dados, pode adicionar volumes de armazenamento. Também é possível modificar as configurações de armazenamento dos volumes existentes. Você não pode excluir volumes de armazenamento adicionais ao restaurar seu banco de dados por meio de um snapshot. 

**Topics**
+ [

## Criar snapshots manuais
](#User_Oracle_AdditionalStorage.BackupRestore.ManualSnapshots)
+ [

## Restaurar snapshots manuais
](#User_Oracle_AdditionalStorage.BackupRestore.RestoreSnapshots)
+ [

## Recuperação para um ponto no tempo
](#User_Oracle_AdditionalStorage.BackupRestore.PitR)

## Criar snapshots manuais
<a name="User_Oracle_AdditionalStorage.BackupRestore.ManualSnapshots"></a>

O exemplo a seguir cria um snapshot manual do seu banco de dados com volumes de armazenamento adicionais:

```
aws rds create-db-snapshot \
--db-instance-identifier my-oracle-asv-instance \
--db-snapshot-identifier my-snapshot
```

## Restaurar snapshots manuais
<a name="User_Oracle_AdditionalStorage.BackupRestore.RestoreSnapshots"></a>

Quando você restaura por meio de um snapshot, pode adicionar outros volumes de armazenamento ou modificar as configurações de IOPS ou throughput dos volumes existentes. O seguinte exemplo restaura uma instância de banco de dados por meio de um snapshot e modifica a configuração de IOPS para o volume `rdsdbdata2`:

```
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier my-restored-instance \
  --db-snapshot-identifier my-snapshot \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "IOPS":5000
        }
    ]'
```

## Recuperação para um ponto no tempo
<a name="User_Oracle_AdditionalStorage.BackupRestore.PitR"></a>

Durante a recuperação para um ponto no tempo (PITR), é possível adicionar novos volumes de armazenamento com configurações personalizadas. O seguinte exemplo realiza PITR e adiciona um novo SSD de uso geral de 5 mil GiB (gp3) com 5 mil IOPS e throughput de armazenamento de 200 MB/s para o volume `rdsdbdata2`: 

```
aws rds restore-db-instance-to-point-in-time \
  --source-db-instance-identifier my-source-instancemy-source-instance \
  --target-db-instance my-pitr-instance\
  --use-latest-restorable-time \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "StorageType":"gp3",
            "AllocatedStorage":5000,
            "IOPS":5000,
            "StorageThroughput":200
        }
    ]'
```

# Casos de uso para volumes de armazenamento adicionais no RDS para Oracle
<a name="User_Oracle_AdditionalStorage.UseCases"></a>

Volumes de armazenamento adicionais comportam vários cenários de gerenciamento de banco de dados. As seções a seguir descrevem casos de uso comuns e abordagens de implementação.

**Topics**
+ [

## Estender a capacidade de armazenamento para além de 64 TiB
](#User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity)
+ [

## Hierarquização do armazenamento de dados acessados com frequência e pouca frequência em volumes separados
](#User_Oracle_AdditionalStorage.UseCases.Storagetiering)
+ [

## Armazenamento temporário para carregamento e descarregamento de dados
](#User_Oracle_AdditionalStorage.UseCases.Temporarystorage)
+ [

## Usar espaços para tabela transportáveis Oracle com um volume de armazenamento adicional
](#User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces)

## Estender a capacidade de armazenamento para além de 64 TiB
<a name="User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity"></a>

Você pode usar volumes de armazenamento adicionais quando o volume de armazenamento primário se aproximar do limite de 64 TiB, mas precisar de mais espaço de armazenamento no banco de dados. Você pode anexar volumes de armazenamento adicionais à sua instância de banco de dados, cada um com até 64 TiB, usando o comando `modify-db-instance`. Depois de anexar volumes de armazenamento adicionais, você pode criar espaços para tabela em volumes de armazenamento adicionais e mover objetos, como tabelas, índices e partições, para esses espaços para tabela usando o Oracle SQL padrão. Para obter mais informações, consulte [Operações de gerenciamento de banco de dados com volumes de armazenamento adicionais no RDS para Oracle](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement).

## Hierarquização do armazenamento de dados acessados com frequência e pouca frequência em volumes separados
<a name="User_Oracle_AdditionalStorage.UseCases.Storagetiering"></a>

Você pode usar volumes de armazenamento adicionais para otimizar o custo e a performance configurando diferentes tipos de armazenamento entre os volumes. Por exemplo, você pode usar volumes de armazenamento SSD de IOPS provisionadas (io2) de alta performance para dados acessados com frequência enquanto armazena dados históricos em volumes de armazenamento econômicos de uso geral (gp3). Você pode mover objetos de banco de dados específicos (tabelas, índices e partições) para esses espaços para tabela usando os comandos padrão Oracle. Para obter mais informações, consulte [Operações de gerenciamento de banco de dados com volumes de armazenamento adicionais no RDS para Oracle](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement).

## Armazenamento temporário para carregamento e descarregamento de dados
<a name="User_Oracle_AdditionalStorage.UseCases.Temporarystorage"></a>

Você pode usar volumes de armazenamento adicionais como armazenamento temporário para grandes cargas de dados ou exportações com as seguintes etapas:
+ Crie um diretório em um volume de armazenamento adicional com o seguinte comando:

  ```
  BEGIN
  rdsadmin.rdsadmin_util.create_directory(
              p_directory_name => 'DATA_PUMP_DIR2',
              p_database_volume_name => 'rdsdbdata2');
  END;
  /
  ```
+ Após a criação do diretório, siga as etapas descritas em [Importar usando o Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md) para exportar e importar seus dados para o novo diretório. 
+ Após a conclusão da operação, remova os arquivos e, opcionalmente, exclua o volume para economizar nos custos de armazenamento. Você pode remover o volume de armazenamento adicional somente quando o volume estiver vazio.

## Usar espaços para tabela transportáveis Oracle com um volume de armazenamento adicional
<a name="User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces"></a>

Você pode usar volumes de armazenamento adicionais para mover arquivos de dados para um volume de armazenamento adicional usando espaços para tabela transportáveis Oracle com as seguintes etapas:
+ Defina o parâmetro `db_create_file_dest` em nível de sessão antes de importar espaços para tabela transportáveis para o banco de dados de destino com um volume de armazenamento adicional.

  ```
  ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';
  
  VAR x CLOB;
  
  BEGIN
  :x := rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
  p_tablespace_list => 'TBTEST1',
  p_directory_name => 'XTTS_DIR_DATA2',
  p_platform_id => 13);
  END;
  /
  
  PRINT :x;
  ```
+ Confira o status de importação do espaço para tabela transportável:

  ```
  ALTER SESSION SET nls_date_format = 'DD.MM.YYYY HH24:MI:SS';
  
  COL xtts_operation_start_utc FORMAT A30
  COL xtts_operation_end_utc FORMAT A30
  COL xtts_operation_state FORMAT A30
  COL xtts_operation_type FORMAT A30
  
  SELECT xtts_operation_start_utc, xtts_operation_type, xtts_operation_state
  FROM rdsadmin.rds_xtts_operation_info;
  ```
+ Quando a importação do espaço para tabela transportável for concluída, importe os metadados do espaço para tabela transportável.

  ```
  BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata(
  p_datapump_metadata_file => 'xttdump.dmp',
  p_directory_name => 'XTTS_DIR_DATA2');
  END;
  /
  ```

# Configurar recursos avançados do RDS para Oracle
<a name="CHAP_Oracle.advanced-features"></a>

O RDS para Oracle é compatível com vários recursos avançados, inclusive o HugePages, um armazenamento de instância e tipos de dados estendidos.

**Topics**
+ [

# Armazenar dados temporários em um armazenamento de instância do RDS for Oracle
](CHAP_Oracle.advanced-features.instance-store.md)
+ [

# Ativar o HugePages para uma instância do RDS para Oracle
](Oracle.Concepts.HugePages.md)
+ [

# Ativar tipos de dados estendidos no RDS para Oracle
](Oracle.Concepts.ExtendedDataTypes.md)

# Armazenar dados temporários em um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store"></a>

Use um armazenamento de instância para os espaços de tabela temporários e o Database Smart Flash Cache (o cache flash) em classes de instância de banco de dados do RDS for Oracle compatíveis.

**Topics**
+ [

## Visão geral do armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview)
+ [

## Ativar um armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.Enable)
+ [

# Configurar um armazenamento de instância do RDS for Oracle
](CHAP_Oracle.advanced-features.instance-store.configuring.md)
+ [

# Trabalhar com um armazenamento de instância em uma réplica de leitura da Oracle
](CHAP_Oracle.advanced-features.instance-store.replicas.md)
+ [

# Configurar um grupo de espaços de tabela temporários em um armazenamento de instância e no Amazon EBS
](CHAP_Oracle.advanced-features.instance-store.temp-ebs.md)
+ [

## Remover um armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.Disable)

## Visão geral do armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview"></a>

Um *armazenamento de instância* fornece armazenamento temporário em nível de bloco para a instância de banco de dados do RDS for Oracle. Você pode usar um armazenamento de instância para armazenamento temporário de informações que mudam com frequência.

Um armazenamento de instância é baseado em dispositivos Non-Volatile Memory Express (NVMe) anexados fisicamente ao computador host. Esse armazenamento é otimizado para baixa latência, performance de E/S aleatória e throughput de leitura sequencial.

O tamanho do armazenamento de instância varia de acordo com o tipo de instância de banco de dados. Para obter mais informações sobre o armazenamento de instância, consulte [Armazenamento de instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) no *Amazon Elastic Compute Cloud Manual do usuário para instâncias do Linux*.

**Topics**
+ [

### Tipos de dados no armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview.uses)
+ [

### Benefícios do armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview.benefits)
+ [

### Classes de instância compatíveis com o armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes)
+ [

### Versões de mecanismo compatíveis com o armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview.db-versions)
+ [

### Regiões da AWS compatíveis com o armazenamento de instância do RDS for Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview.regions)
+ [

### Custo do armazenamento de instância do RDS para Oracle
](#CHAP_Oracle.advanced-features.instance-store.overview.cost)

### Tipos de dados no armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.uses"></a>

Você pode colocar os seguintes tipos de dados temporários do RDS for Oracle em um armazenamento de instância:

Um espaço de tabela temporário  
O Oracle Database usa espaços de tabela temporários para armazenar resultados de consultas intermediárias que não cabem na memória. Consultas maiores podem gerar grandes quantidades de dados intermediários que precisam ser armazenados temporariamente em cache, mas não precisam ser mantidos. Especificamente, um espaço de tabela temporário é útil para classificações, agregações de hash e uniões. Se sua instância de banco de dados do RDS for Oracle usar a Enterprise Edition ou a Standard Edition 2, você poderá colocar um espaço de tabela temporário em um armazenamento de instância.

O cache flash  
O cache flash melhora a performance das leituras aleatórias de bloco único no caminho convencional. Uma prática recomendada é dimensionar o cache para acomodar a maior parte do conjunto de dados ativo. Se sua instância de banco de dados do RDS for Oracle usar a Enterprise Edition, você poderá colocar o cache flash em um armazenamento de instância.

Por padrão, um armazenamento de instância é configurado para um espaço de tabela temporário, mas não para o cache flash. Não é possível colocar arquivos de dados do Oracle e arquivos de log do banco de dados em um armazenamento de instância.

### Benefícios do armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.benefits"></a>

Você pode considerar o uso de um armazenamento de instância para armazenar arquivos e caches temporários que você pode perder. Se você quiser melhorar a performance do banco de dados ou se uma workload crescente estiver causando problemas de performance para seu armazenamento do Amazon EBS, considere escalar para uma classe de instância que seja compatível com um armazenamento de instância.

Ao colocar o espaço de tabela temporário e o cache flash em um armazenamento de instância, você obtém os seguintes benefícios:
+ Latências de leitura mais baixas
+ Throughput maior
+ Menor carga nos volumes do Amazon EBS
+ Custos mais baixos de armazenamento e snapshot devido à redução da carga do Amazon EBS
+ Menos necessidade de provisionar IOPS alta, possivelmente reduzindo o custo geral

 Ao colocar o espaço de tabela temporário no armazenamento de instância, você aumenta imediatamente a performance das consultas que usam espaço temporário. Quando você coloca o cache flash no armazenamento de instância, as leituras de blocos em cache normalmente têm uma latência muito menor do que as leituras do Amazon EBS. O cache flash precisa ser “aquecido” antes de oferecer benefícios de performance. O cache se aquece sozinho porque o banco de dados grava blocos no cache flash à medida que eles saem do cache do buffer do banco de dados.

**nota**  
Em alguns casos, o cache flash causa sobrecarga de performance devido ao gerenciamento do cache. Antes de ativar o cache flash em um ambiente de produção, recomendamos que você analise sua workload e teste o cache em um ambiente de teste.

### Classes de instância compatíveis com o armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.instance-classes"></a>

O Amazon RDS é compatível com o armazenamento de instância para as seguintes classes de instância de banco de dados:
+ db.m5d
+ db.m6id
+ db.r5d
+ db.r6id
+ db.x2idn
+ db.x2iedn

O RDS para Oracle é compatível com as classes de instância de banco de dados anteriores somente para o modelo de licenciamento BYOL. Para obter mais informações, consulte [Classes de instância de banco de dados compatíveis do RDS para Oracle](Oracle.Concepts.InstanceClasses.md#Oracle.Concepts.InstanceClasses.Supported) e [Traga a sua própria licença (BYOL) para EE e SE2](Oracle.Concepts.Licensing.md#Oracle.Concepts.Licensing.BYOL).

Para ver o armazenamento total de instâncias para os tipos compatíveis de instância de banco de dados, execute o comando a seguir na CLI da AWS. 

**Example**  

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

O comando anterior retorna o tamanho bruto do dispositivo para o armazenamento de instância. O RDS for Oracle usa uma pequena parte desse espaço para configuração. O espaço no armazenamento de instância que está disponível para espaços de tabela temporários ou para o cache flash é um pouco menor.

### Versões de mecanismo compatíveis com o armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.db-versions"></a>

O armazenamento de instância é compatível com as seguintes versões de mecanismo do RDS for Oracle: 
+ Versões 21.0.0.0.ru-2022-01.rur-2022-01.r1 ou Oracle Database 21c posterior
+ 19.0.0.0.ru-2021-10.rur-2021-10.r1 ou versões posteriores do Oracle Database 19c

### Regiões da AWS compatíveis com o armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.regions"></a>

O armazenamento de instância está disponível em todas as Regiões da AWS onde um ou mais desses tipos de instância são compatíveis. Para obter mais informações sobre as classes de instância db.m5d e db.r5d, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md). Para obter mais informações sobre as classes de instância compatíveis com o Amazon RDS para Oracle, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

### Custo do armazenamento de instância do RDS para Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.overview.cost"></a>

O custo do armazenamento de instância é incorporado ao custo do armazenamento de instância ativado nas instâncias. Você não gera custos adicionais ao habilitar um armazenamento de instância em uma instância de banco de dados do RDS for Oracle. Para obter mais informações sobre instâncias ativadas em armazenamento de instância, consulte [Classes de instância compatíveis com o armazenamento de instância do RDS for Oracle](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes).

## Ativar um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.Enable"></a>

Para ativar o armazenamento de instância para dados temporários do RDS for Oracle, siga um destes procedimentos:
+ Crie uma instância de banco de dados do RDS for Oracle utilizando uma classe de instância compatível. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
+ Modifique uma instância de banco de dados do RDS for Oracle para utilizar uma classe de instância compatível. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

# Configurar um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.configuring"></a>

Por padrão, 100% do espaço de armazenamento de instância é alocado ao espaço de tabela temporário. Para configurar o armazenamento de instância para alocar espaço para o cache flash e o espaço de tabela temporário, defina os seguintes parâmetros no grupo de parâmetros de sua instância:

**db\$1flash\$1cache\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
Esse parâmetro especifica a quantidade de espaço de armazenamento alocado para o cache flash. Esse parâmetro é válido apenas para o Oracle Database Enterprise Edition. O valor padrão é `{DBInstanceStore*0/10}`. Se você definir um valor diferente de zero para `db_flash_cache_size`, sua instância do RDS for Oracle ativará o cache flash após a reinicialização da instância.

**rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
Esse parâmetro especifica a quantidade de espaço de armazenamento alocado para o espaço de tabela temporário. O valor padrão é `{DBInstanceStore*10/10}`. Esse parâmetro pode ser modificado para o Oracle Database Enterprise Edition e somente leitura para Standard Edition 2. Se você definir um valor diferente de zero para `rds.instance_store_temp_size`, o Amazon RDS alocará espaço no armazenamento de instância para o espaço de tabela temporário.  
Você pode definir os parâmetros `db_flash_cache_size` e `rds.instance_store_temp_size` para instâncias de banco de dados que não usam um armazenamento de instância. Nesse caso, as duas configurações são avaliadas como `0`, o que desativa o recurso. Nesse caso, você pode usar o mesmo grupo de parâmetros para diferentes tamanhos de instância e para instâncias que não usam um armazenamento de instância. Se você modificar esses parâmetros, reinicialize as instâncias associadas para que as alterações tenham efeito.  
Se você alocar espaço para um espaço de tabela temporário, o Amazon RDS não criará o espaço de tabela temporário automaticamente. Para saber como criar o espaço de tabela temporário no armazenamento de instância, consulte [Criar um espaço de tabela temporário no armazenamento de instância](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store).

O valor combinado dos parâmetros anteriores não deve exceder 10/10 ou 100%. A tabela a seguir ilustra as configurações de parâmetros válidas e inválidas.


| configuração db\$1flash\$1cache\$1size | configuração rds.instance\$1store\$1temp\$1size | Explicação | 
| --- | --- | --- | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$10/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$110/10\$1  |  Essa é uma configuração válida para todas as edições do Oracle Database. O Amazon RDS aloca 100% do espaço de armazenamento de instância ao espaço de tabela temporário. Esse é o padrão.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$110/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$10/10\$1  |  Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 100% do espaço de armazenamento de instância ao cache flash.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 20% do espaço de armazenamento de instância para o cache flash e 80% do espaço de armazenamento da instância para o espaço de tabela temporário.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$16/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  |  Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 60% do espaço de armazenamento de instância para o cache flash e 40% do espaço de armazenamento da instância para o espaço de tabela temporário.  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  | Essa é uma configuração válida apenas para o Oracle Database Enterprise Edition. O Amazon RDS aloca 20% do espaço de armazenamento de instância para o cache flash e 40% do espaço de armazenamento da instância para o espaço de tabela temporário. | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$18/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  Essa é uma configuração inválida porque a porcentagem combinada do espaço de armazenamento da instância excede 100%. Nesses casos, o Amazon RDS falha na tentativa.  | 

## Considerações ao alterar o tipo de instância de banco de dados
<a name="CHAP_Oracle.advanced-features.instance-store.configuring.modifying"></a>

Se você alterar o tipo de instância de banco de dados, isso poderá afetar a configuração do cache flash ou do espaço de tabela temporário no armazenamento de instância. Considere as seguintes modificações e seus efeitos:

**Aumente ou reduza a escala verticalmente da instância de banco de dados que é compatível com o armazenamento de instância.**  
Os valores a seguir aumentam ou diminuem proporcionalmente ao novo tamanho do armazenamento de instância:  
+ O novo tamanho do cache flash.
+ O espaço alocado para os espaços de tabela temporários que residem no armazenamento de instância.
Por exemplo, a configuração `db_flash_cache_size={DBInstanceStore*6/10}` em uma instância db.m5d.4xlarge fornece cerca de 340 GB de espaço em cache flash. Se você aumentar a escala verticalmente do tipo de instância para db.m5d.8xlarge, o espaço do cache flash aumentará para cerca de 680 GB.

**Modifique uma instância de banco de dados que não use um armazenamento de instância para uma instância que usa um armazenamento de instância.**  
Se `db_flash_cache_size` for definido como um valor maior que `0`, o cache flash será configurado. Se `rds.instance_store_temp_size` for definido como um valor maior que `0`, o espaço de armazenamento da instância será alocado para uso por um espaço de tabela temporário. O RDS for Oracle não move arquivos temporários para o armazenamento de instância automaticamente. Para obter informações sobre como usar o espaço alocado, consulte [Criar um espaço de tabela temporário no armazenamento de instância](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store) ou [Adicionar um arquivo temporário ao armazenamento de instância em uma réplica de leitura](Appendix.Oracle.CommonDBATasks.using-tempfiles.md#Appendix.Oracle.CommonDBATasks.adding-tempfile-replica).

**Modifique uma instância de banco de dados que não use um armazenamento de instância para uma instância que usa um armazenamento de instância.**  
Nesse caso, o RDS for Oracle remove o cache flash. O RDS recria o arquivo temporário atualmente localizado no armazenamento de instância em um volume do Amazon EBS. O tamanho máximo do novo arquivo temporário é o tamanho anterior do parâmetro `rds.instance_store_temp_size`.

# Trabalhar com um armazenamento de instância em uma réplica de leitura da Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.replicas"></a>

As réplicas de leitura são compatíveis com o cache flash e aos espaços de tabela temporários em um armazenamento de instância. Embora o cache flash funcione da mesma forma que na instância de banco de dados primária, observe as seguintes diferenças para espaços de tabela temporários:
+ Não é possível criar um espaço de tabela temporário em uma réplica de leitura. Se você criar um espaço de tabela temporário na instância primária, o RDS for Oracle replicará as informações do espaço de tabela sem arquivos temporários. Para adicionar um novo arquivo temporário, use uma das seguintes técnicas:
  + Use o procedimento do Amazon RDS `rdsadmin.rdsadmin_util.add_inst_store_tempfile`. O RDS for Oracle cria um arquivo temporário no armazenamento de instância em sua réplica de leitura e o adiciona ao espaço de tabela temporário especificado.
  + Execute o comando `ALTER TABLESPACE … ADD TEMPFILE`. O RDS for Oracle coloca o arquivo temporário no armazenamento do Amazon EBS.
**nota**  
Os tamanhos dos arquivos temporários e os tipos de armazenamento podem ser diferentes na instância de banco de dados primária e na réplica de leitura.
+ Você pode gerenciar a configuração de espaço de tabela temporário padrão somente na instância de banco de dados primária. O RDS for Oracle replica a configuração para todas as réplicas de leitura.
+ Você pode configurar os grupos de espaços de tabela temporários somente na instância de banco de dados primária. O RDS for Oracle replica a configuração para todas as réplicas de leitura.

# Configurar um grupo de espaços de tabela temporários em um armazenamento de instância e no Amazon EBS
<a name="CHAP_Oracle.advanced-features.instance-store.temp-ebs"></a>

Você pode configurar um grupo de espaços de tabela temporários para incluir espaços de tabela temporários em um armazenamento de instância e no Amazon EBS. Essa técnica é útil quando você deseja mais armazenamento temporário do que o permitido pela configuração máxima de `rds.instance_store_temp_size`.

Quando você configura um grupo de espaços de tabela temporários em um armazenamento de instância e no Amazon EBS, os dois espaços de tabela têm características de performance significativamente diferentes. O Oracle Database escolhe o espaço de tabela para atender às consultas com base em um algoritmo interno. Portanto, consultas semelhantes podem variar em performance.

Normalmente, você cria um espaço de tabela temporário no armazenamento de instância da seguinte forma:

1. Crie um espaço de tabela temporário no armazenamento de instância.

1. Defina o novo espaço de tabela como o espaço de tabela temporário padrão do banco de dados.

Se o tamanho do espaço de tabela no armazenamento de instância for insuficiente, você poderá criar armazenamento temporário adicional da seguinte forma:

1. Atribua o espaço de tabela temporário no armazenamento de instância a um grupo de espaços de tabela temporários.

1. Crie um espaço de tabela temporário no Amazon EBS, caso não exista.

1. Atribua o espaço de tabela temporário no Amazon EBS ao mesmo grupo de espaços de tabela que inclui o espaço de tabela do armazenamento de instância.

1. Defina o grupo de espaços de tabela como o espaço de tabela temporário padrão.

O exemplo a seguir pressupõe que o tamanho do espaço de tabela temporário no armazenamento de instância não atenda aos requisitos de sua aplicação. O exemplo cria o espaço de tabela temporário `temp_in_inst_store` no armazenamento de instância, o atribui ao grupo de espaços de tabela `temp_group`, adiciona o espaço de tabela existente do Amazon EBS chamado `temp_in_ebs` a esse grupo e define esse grupo como o espaço de tabela temporário padrão.

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

## Remover um armazenamento de instância do RDS for Oracle
<a name="CHAP_Oracle.advanced-features.instance-store.Disable"></a>

Para remover o armazenamento de instância, modifique sua instância de banco de dados do RDS for Oracle para usar um tipo de instância que não seja compatível com o armazenamento de instância, como db.m5 ou db.r5.

# Ativar o HugePages para uma instância do RDS para Oracle
<a name="Oracle.Concepts.HugePages"></a>

O Amazon RDS para Oracle é compatível com HugePages do kernel do Linux para aumentar a escalabilidade do banco de dados. O uso de HugePages resulta em tabelas de página menores e menos tempo de CPU gasto no gerenciamento de memória, aumentando a performance de instâncias de banco de dados grandes. Para obter mais informações, consulte [Visão geral sobre HugePages](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400) na documentação da Oracle. 

Você pode usar HugePages com todas as versões e edições do RDS para Oracle compatíveis.

 O parâmetro `use_large_pages` controla se o recurso HugePages permanece ativado para uma instância de banco de dados. As configurações possíveis desse parâmetro são `ONLY`, `FALSE` e `{DBInstanceClassHugePagesDefault}`. O parâmetro `use_large_pages` é definido como `{DBInstanceClassHugePagesDefault}` no parameter group de banco de dados padrão para Oracle. 

Para controlar se o recurso HugePages permanece ativado para uma instância de banco de dados automaticamente, você pode usar a variável de fórmula `DBInstanceClassHugePagesDefault` em grupos de parâmetros. O valor é determinado da seguinte forma:
+ Para as classes de instância do banco de dados mencionadas na tabela a seguir, `DBInstanceClassHugePagesDefault` sempre é avaliado como `FALSE` por padrão, e `use_large_pages` é avaliado como `FALSE`. Será possível ativar o recurso HugePages manualmente para essas classes de instância de banco de dados se estas tiverem pelo menos 14 GiB de memória.
+ Para classes de instância de banco de dados não mencionadas na tabela a seguir, se a classe tiver menos de 14 GiB de memória, `DBInstanceClassHugePagesDefault` sempre será avaliado como `FALSE`. Além disso, o `use_large_pages` será avaliado como `FALSE`
+ Para classes de instância de banco de dados não mencionadas na tabela a seguir, se a classe da instância tiver pelo menos 14 GiB de memória e menos de 100 GiB de memória, `DBInstanceClassHugePagesDefault` será avaliado como `TRUE` por padrão. Além disso, o `use_large_pages` será avaliado como `ONLY` É possível desativar o recurso HugePages manualmente definindo `use_large_pages` como `FALSE`.
+ Para classes de instância de banco de dados não mencionadas na tabela abaixo, se a classe da instância tiver pelo menos 100 GiB de memória, `DBInstanceClassHugePagesDefault` sempre é avaliado como `TRUE`. Além disso, o `use_large_pages` será avaliado como `ONLY` e o recurso HugePages não pode ser desabilitado.

O recurso HugePages não é ativado por padrão para as classes de instância de banco de dados a seguir. 


****  

| Família de classe de instância de banco de dados | Classes de instância de banco de dados com o recurso HugePages não ativado por padrão | 
| --- | --- | 
|  db.m5  |  db.m5.large  | 
|  db.m4  |  db.m4.large, db.m4.xlarge, db.m4.2xlarge, db.m4.4xlarge, db.m4.10xlarge  | 
|  db.t3  |  db.t3.micro, db.t3.small, db.t3.medium, db.t3.large  | 

Para mais informações sobre classes de instância de banco de dados, consulte [Especificações de hardware para classes de instância de banco de dados](Concepts.DBInstanceClass.Summary.md). 

Para ativar o recurso HugePages para instâncias de banco de dados novas ou existentes manualmente, defina o parâmetro `use_large_pages` como `ONLY`. Não é possível usar HugePages com o Oracle Automatic Memory Management (AMM). Se você definir o parâmetro `use_large_pages` como `ONLY`, também deverá definir `memory_target` e `memory_max_target` como `0`. Para obter mais informações sobre como definir parâmetros de banco de dados para a sua instância de banco de dados, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). 

Também é possível definir os parâmetros `sga_target`, `sga_max_size` e `pga_aggregate_target`. Quando você definir os parâmetros de memória da área global do sistema (SGA) e da área global do programa (PGA), adicione os valores juntos. Subtraia esse total da sua memória de instância disponível (`DBInstanceClassMemory`) para determinar a memória livre além da alocação de HugePages. Você deve deixar pelo menos 2 GiB de memória livre ou 10% da memória total da instância disponível, o que for menor. 

Depois de configurar seus parâmetros, você deverá reiniciar sua instância de banco de dados para que as alterações entrem em vigor. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md). 

**nota**  
A instância de banco de dados Oracle adiará as alterações nos parâmetros de inicialização relacionados ao SGA até que você reinicialize a instância sem failover. No console do Amazon RDS, escolha **Reinicializar**, mas *não* escolha **Reinicializar com failover**. Na AWS CLI, chame o comando `reboot-db-instance` com o parâmetro `--no-force-failover`. A instância de banco de dados não processa os parâmetros relacionados ao SGA durante o failover ou durante outras operações de manutenção que fazem com que a instância seja reiniciada.

Essa é uma configuração de parâmetro de exemplo de HugePages que permite páginas enormes manualmente. Você deve definir os valores para atender às suas necessidades. 

```
1. memory_target            = 0
2. memory_max_target        = 0
3. pga_aggregate_target     = {DBInstanceClassMemory*1/8}
4. sga_target               = {DBInstanceClassMemory*3/4}
5. sga_max_size             = {DBInstanceClassMemory*3/4}
6. use_large_pages          = ONLY
```

Suponhamos que os valores de parâmetros estejam definidos em um parameter group.

```
1. memory_target            = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target        = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target     = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target               = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size             = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages          = {DBInstanceClassHugePagesDefault}
```

O grupo de parâmetros é usado por uma classe de instância de banco de dados db.r4 com menos de 100 GiB de memória. Com essas configurações de parâmetro e `use_large_pages` definido como `{DBInstanceClassHugePagesDefault}`, o recurso HugePages permanece ativado para a instância db.r4.

Considere outro exemplo com os valores de parâmetros a seguir definidos em um parameter group.

```
1. memory_target           = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target       = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target    = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target              = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size            = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages         = FALSE
```

O grupo de parâmetros é usado por uma classe de instância de banco de dados db.r4 e por uma classe de instância de banco de dados db.r5, as duas com menos de 100 GiB de memória. Com essas configurações de parâmetro, o HugePages é desativado nas instâncias db.r4 e db.r5.

**nota**  
Caso esse grupo de parâmetros seja usado por uma classe de instância de banco de dados db.r4 ou por uma classe de instância de banco de dados db.r5 com pelo menos 100 GiB de memória, a configuração de `FALSE` para `use_large_pages` será substituída e definida como `ONLY`. Nesse caso, uma notificação do cliente em relação à substituição é enviada.

Depois que o recurso HugePages estiver habilitado na instância de banco de dados, você poderá visualizar informações sobre o recurso HugePages habilitando o monitoramento avançado. Para obter mais informações, consulte [Monitorar métricas do SO com o monitoramento avançado](USER_Monitoring.OS.md). 

# Ativar tipos de dados estendidos no RDS para Oracle
<a name="Oracle.Concepts.ExtendedDataTypes"></a>

O Amazon RDS para Oracle é compatível com tipos de dados estendidos. Com tipos de dados estendidos, o tamanho máximo é 32.767 bytes para os tipos de dados `VARCHAR2`, `NVARCHAR2` e `RAW`. Para usar os tipos de dados estendidos, defina o parâmetro `MAX_STRING_SIZE` como `EXTENDED`. Para obter mais informações, consulte [Tipos de dados estendidos](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623) na documentação da Oracle. 

Se você não deseja usar os tipos de dados estendidos, mantenha o parâmetro `MAX_STRING_SIZE` definido como `STANDARD` (padrão). Nesse caso, os limites de tamanho são 4.000 bytes para os tipos de dados `VARCHAR2` e `NVARCHAR2` e 2.000 bytes para o tipo de dados RAW.

Você pode ativar os tipos de dados estendidos em uma instância de banco de dados nova ou existente. Para novas instâncias de banco de dados, o tempo de criação de instâncias de banco de dados normalmente é maior quando você ativa os tipos de dados estendidos. Para instâncias de banco de dados existentes, a instância fica indisponível durante o processo de conversão.

## Considerações sobre tipos de dados estendidos
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

Considere o seguinte ao habilitar tipos de dados estendidos para sua instância de banco de dados:
+ Ao ativar tipos de dados estendidos para uma instância de banco de dados nova ou existente, você deve reiniciar a instância para que a alteração entre em vigor. 
+ Depois de ativar tipos de dados estendidos, você não poderá voltar atrás e usar o tamanho padrão de tipos de dados para a instância. Se você definir o parâmetro `MAX_STRING_SIZE` novamente como `STANDARD`, ele assumirá o status `incompatible-parameters`.
+ Quando você restaura uma instância de banco de dados que usa tipos de dados estendidos, é preciso especificar um parameter group com o parâmetro `MAX_STRING_SIZE` definido como `EXTENDED`. Durante a restauração, se você especificar um parameter group padrão ou qualquer outro parameter group com `MAX_STRING_SIZE` definido como `STANDARD`, o status `incompatible-parameters` será gerado.
+ Quando o status da instância de banco e dados for `incompatible-parameters` por causa da configuração de `MAX_STRING_SIZE`, a instância permanecerá indisponível até você definir o parâmetro `MAX_STRING_SIZE` como `EXTENDED` e reinicializar a instância de banco de dados.

## Ativar tipos de dados estendidos para uma nova instância de banco de dados
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

Quando você cria uma instância de banco de dados com `MAX_STRING_SIZE` definido como `EXTENDED`, a instância mostra `MAX_STRING_SIZE` definido como `STANDARD` padrão. Reinicialize a instância para ativar a alteração.

**Para ativar tipos de dados estendidos para uma nova instância de banco de dados**

1. Defina o parâmetro `MAX_STRING_SIZE` como `EXTENDED` em um parameter group.

   Para definir o parâmetro, crie um novo parameter group ou modifique um parameter group existente.

   Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Crie uma instância de banco de dados do RDS para Oracle.

   Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

1. Associe o grupo de parâmetros com `MAX_STRING_SIZE` definido como `EXTENDED` à instância de banco de dados.

   Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

1. Reinicialize a instância de banco de dados para que a alteração do parâmetro tenha efeito.

   Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).

## Ativar tipos de dados estendidos para uma instância de banco de dados existente
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

Quando você modifica uma instância de banco de dados para ativar tipos de dados estendidos, o RDS converte os dados no banco de dados para usar os tamanhos estendidos. A conversão e o tempo de inatividade ocorrerão na próxima reinicialização do banco de dados depois da alteração do parâmetro. A instância de banco de dados fica indisponível durante a migração. 

O tempo necessário para converter os dados depende da classe da instância de banco de dados, do tamanho do banco de dados e do horário do último snapshot de banco de dados. Para reduzir o tempo de inatividade, considere gerar um snapshot imediatamente antes da reinicialização. Isso reduz o tempo do backup que ocorre durante o fluxo de trabalho de conversão.

**nota**  
Depois de ativar os tipos de dados estendidos, não é possível realizar uma recuperação a um ponto anterior no tempo durante o processo de conversão. Você pode restaurar para o momento imediatamente anterior à conversão ou após a conversão.

**Como ativar tipos de dados estendidos para uma instância de banco de dados existente**

1. Faça um snapshot do banco de dados.

   Se houver objetos inválidos no banco de dados, o Amazon RDS tentará recompilá-los. A conversão para tipos de dados estendidos poderá falhar se o Amazon RDS não puder recompilar um objeto inválido. O snapshot permitirá que você restaure o banco de dados se houver um problema com a conversão. Sempre verifique se há objetos inválidos antes de iniciar a conversão e corrija ou descarte esses objetos inválidos. Para bancos de dados de produção, recomendamos primeiro testar o processo de conversão em uma cópia da instância de banco de dados.

   Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md).

1. Defina o parâmetro `MAX_STRING_SIZE` como `EXTENDED` em um parameter group.

   Para definir o parâmetro, crie um novo parameter group ou modifique um parameter group existente.

   Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md).

1. Modifique a instância de banco de dados para associá-la ao parameter group com `MAX_STRING_SIZE` definido como `EXTENDED`.

   Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Reinicialize a instância de banco de dados para que a alteração do parâmetro tenha efeito.

   Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).

# Importar dados para o Oracle no Amazon RDS
<a name="Oracle.Procedural.Importing"></a>

A forma como você importa dados para uma instância de banco de dados do Amazon RDS para Oracle depende do seguinte: 
+ A quantidade de dados que você tem
+ O número de objetos em seu banco de dados
+ A variedade de objetos em seu banco de dados

Por exemplo, você pode usar as seguintes ferramentas, dependendo de seus requisitos:
+ Oracle SQL Developer: importe um banco de dados simples de 20 MB.
+ Oracle Data Pump: importar bancos de dados complexos ou bancos de dados com várias centenas de megabytes ou terabytes de tamanho. Por exemplo, você pode transportar espaços de tabela de um banco de dados on-premises para a instância de banco de dados do RDS para Oracle. Você pode usar o Amazon S3 ou o Amazon EFS para transferir os arquivos de dados e os metadados. Para mais informações, consulte [Migrar usando espaços de tabela transportáveis da Oracle](oracle-migrating-tts.md), [Integração do Amazon EFS](oracle-efs-integration.md) e [Integração do Amazon S3](oracle-s3-integration.md).
+ AWS Database Migration Service(AWS DMS): migre bancos de dados sem tempo de inatividade. Para obter mais informações sobre AWS DMS, consulte [O que é o AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) e a publicação de blog [Migrar bancos de dados do Oracle com tempo de inatividade quase zero usando o AWS DMS](https://aws.amazon.com/blogs/database/migrating-oracle-databases-with-near-zero-downtime-using-aws-dms/).

**Importante**  
Antes de usar as técnicas de migração anteriores, recomendamos que você faça backup do banco de dados. Após importar os dados, você pode fazer backup de suas instâncias de banco de dados do RDS para Oracle criando snapshots. Mais tarde, você poderá restaurar os snapshots. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md).

Para vários mecanismos de banco de dados, a replicação contínua pode continuar até que você esteja pronto para migrar para o banco de dados de destino. Você pode usar AWS DMS a fim de migrar para o RDS para Oracle a partir do mesmo mecanismo de banco de dados ou um mecanismo de banco de dados diferente. Se você migrar de um mecanismo de banco de dados diferente, poderá usar a AWS Schema Conversion Tool para migrar objetos de esquema que o AWS DMS não consegue migrar.

**Topics**
+ [

# Importar usando o Oracle SQL Developer
](Oracle.Procedural.Importing.SQLDeveloper.md)
+ [

# Migrar usando espaços de tabela transportáveis da Oracle
](oracle-migrating-tts.md)
+ [

# Importar usando o Oracle Data Pump
](Oracle.Procedural.Importing.DataPump.md)
+ [

# Importar usando Oracle Export/Import
](Oracle.Procedural.Importing.ExportImport.md)
+ [

# Importar usando o Oracle SQL\$1Loader
](Oracle.Procedural.Importing.SQLLoader.md)
+ [

# Migrar com visualizações materializadas do Oracle
](Oracle.Procedural.Importing.Materialized.md)

# Importar usando o Oracle SQL Developer
<a name="Oracle.Procedural.Importing.SQLDeveloper"></a>

O Oracle SQL Developer é uma ferramenta gráfica Java distribuída sem custos pela Oracle. O SQL Developer fornece opções para migrar dados entre dois bancos de dados Oracle ou para migrar dados de outros bancos de dados, como o MySQL, para um banco de dados Oracle. Essa ferramenta é a mais adequada para migrar bancos de dados pequenos. 

Você pode instalar essa ferramenta no seu computador desktop (Windows, Linux ou Mac) ou em um dos seus servidores. Depois de instalar o SQL Developer, você pode usá-lo para se conectar aos bancos de dados de origem e de destino. Use o comando **Cópia do banco de dados** no menu Ferramentas para copiar seus dados para a instância de banco de dados do RDS para Oracle. 

Para baixar o SQL Developer, acesse [http://www.oracle.com/technetwork/developer-tools/sql-developer](http://www.oracle.com/technetwork/developer-tools/sql-developer). 

Recomendamos que você leia a documentação do produto Oracle SQL Developer antes de começar a migrar seus dados. A Oracle também possui documentação sobre como migrar de outros bancos de dados, incluindo o MySQL e o SQL Server. Para obter mais informações, consulte [http://www.oracle.com/technetwork/database/migration](http://www.oracle.com/technetwork/database/migration) na documentação da Oracle. 

# Migrar usando espaços de tabela transportáveis da Oracle
<a name="oracle-migrating-tts"></a>

Você pode usar o atributo de espaços de tabela transportáveis da Oracle para copiar um conjunto de espaços de tabela de um banco de dados Oracle on-premises para uma instância de banco de dados do RDS para Oracle. No nível físico, é necessário transferir os arquivos de dados de origem e os arquivos de metadados para a instância de banco de dados de destino usando o Amazon EFS ou o Amazon S3. O recurso de espaços de tabela transportáveis usa o pacote `rdsadmin.rdsadmin_transport_util`. Consulte a sintaxe e a semântica desse pacote em [Transportar espaços para tabela](rdsadmin_transport_util.md).

Para publicações de blog que explicam como transportar espaços de tabela, consulte [Migrate Oracle Databases to AWS using transportable tablespace](https://aws.amazon.com/blogs/database/migrate-oracle-databases-to-aws-using-transportable-tablespace/) e [Amazon RDS for Oracle Transportable Tablespaces using RMAN](https://aws.amazon.com/blogs/database/amazon-rds-for-oracle-transportable-tablespaces-using-rman/).

**Topics**
+ [

## Visão geral dos espaços de tabela transportáveis da Oracle
](#oracle-migrating-tts.overview)
+ [

## Fase 1: Configurar o host de origem
](#oracle-migrating-tts.setup-phase)
+ [

## Fase 2: Preparar o backup completo dos espaços de tabela
](#oracle-migrating-tts.initial-br-phase)
+ [

## Fase 3: Criar e transferir backups incrementais
](#oracle-migrating-tts.roll-forward-phase)
+ [

## Fase 4: Transportar os espaços de tabela
](#oracle-migrating-tts.final-br-phase)
+ [

## Fase 5: Validar os espaços de tabela transportados
](#oracle-migrating-tts.validate)
+ [

## Fase 6: Limpar os arquivos restantes
](#oracle-migrating-tts.cleanup)

## Visão geral dos espaços de tabela transportáveis da Oracle
<a name="oracle-migrating-tts.overview"></a>

Um conjunto de espaços de tabela transportáveis consiste em arquivos de dados para o conjunto de espaços de tabela que está sendo transportado e um arquivo de despejo de exportação que contém metadados do espaço de tabela. Em uma solução de migração física, como os espaços de tabela transportáveis, você transfere arquivos físicos: arquivos de dados, arquivos de configuração e arquivos de despejo do Data Pump.

**Topics**
+ [

### Vantagens e desvantagens dos espaços de tabela transportáveis
](#oracle-migrating-tts.overview.benefits)
+ [

### Limitações dos espaços de tabela transportáveis
](#oracle-migrating-tts.limitations)
+ [

### Pré-requisitos para espaços de tabela transportáveis
](#oracle-migrating-tts.requirements)

### Vantagens e desvantagens dos espaços de tabela transportáveis
<a name="oracle-migrating-tts.overview.benefits"></a>

Recomendamos que você use espaços de tabela transportáveis quando precisar migrar um ou mais espaços de tabela grandes para o RDS com o mínimo de tempo de inatividade. Os espaços de tabela transportáveis oferecem as seguintes vantagens em relação à migração lógica:
+ O tempo de inatividade é menor do que a maioria das outras soluções de migração da Oracle.
+ Como o atributo de espaço de tabela transportável copia somente arquivos físicos, ele evita os erros de integridade de dados e a corrupção lógica que podem ocorrer na migração lógica.
+ Nenhuma licença adicional é necessária.
+ Você pode migrar um conjunto de espaços de tabela entre diferentes plataformas e tipos de extremidade, por exemplo, de uma plataforma do Oracle Solaris para Linux. No entanto, não há suporte ao transporte de espaços de tabela de e para servidores Windows.
**nota**  
O Linux foi totalmente testado e é totalmente compatível. Nem todas as variações do UNIX foram testadas.

Se você usar espaços de tabela transportáveis, poderá transportar dados usando o Amazon S3 ou o Amazon EFS:
+ Ao usar o EFS, seus backups permanecem no sistema de arquivos do EFS durante a importação. Você poderá remover os arquivos posteriormente. Nessa técnica, não é necessário provisionar o armazenamento do EBS para sua instância de banco de dados. Por esse motivo, recomendamos usar o Amazon EFS em vez do S3. Para obter mais informações, consulte [Integração do Amazon EFS](oracle-efs-integration.md).
+ Ao usar o S3, baixe backups do RMAN para o armazenamento do EBS conectado à sua instância de banco de dados. Os arquivos permanecem no armazenamento do EBS durante a importação. Após a importação, você poderá liberar esse espaço, que permanecerá alocado para sua instância de banco de dados.

A principal desvantagem dos espaços de tabela transportáveis é a necessidade de um conhecimento relativamente avançado sobre o Oracle Database. Para obter mais informações, consulte [Transporting Tablespaces Between Databases](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-F7B2B591-AA88-4D16-8DCF-712763923FFB) no *Oracle Database Administrator's Guide*.

### Limitações dos espaços de tabela transportáveis
<a name="oracle-migrating-tts.limitations"></a>

As limitações do Oracle Database para espaços de tabela transportáveis se aplicam quando você usa esse atributo no RDS para Oracle. Para obter mais informações, consulte [Limitations on Transportable Tablespaces]( https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-DAB51E42-9BBC-4001-B5CB-0ECDBE128787) e [General Limitations on Transporting Data](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/transporting-data.html#GUID-28800719-6CB9-4A71-95DD-4B61AA603173) no *Oracle Database Administrator’s Guide*. Observe as seguintes limitações adicionais para espaços de tabela transportáveis no RDS para Oracle:
+ Nem o banco de dados de origem, nem o de destino podem usar a Standard Edition 2 (SE2). Somente a Enterprise Edition é compatível.
+ Não é possível usar um banco de dados do Oracle Database 11g como fonte. O recurso de espaços de tabela transportáveis multiplataforma do RMAN depende do mecanismo de transporte RMAN, que o Oracle Database 11g não comporta.
+ Não é possível migrar dados de uma instância de banco de dados do RDS para Oracle usando espaços de tabela transportáveis. Só é possível usar os espaços de tabela transportáveis para migrar dados para uma instância de banco de dados do RDS para Oracle.
+ Não há suporte ao sistema operacional Windows.
+ Não é possível transportar espaços de tabela para um banco de dados em um nível de versão inferior. O banco de dados de destino deve estar no mesmo nível de versão, ou posterior, do banco de dados de origem. Por exemplo, não é possível transportar espaços de tabela do Oracle Database 21c para o Oracle Database 19c.
+ Não é possível transportar espaços de tabela administrativos, como `SYSTEM` e `SYSAUX`.
+ Não é possível transportar objetos que não sejam de dados, como pacotes PL/SQL, classes Java, visualizações, gatilhos, sequências, usuários, perfis e tabelas temporárias. Para transportar objetos que não sejam de dados, crie-os manualmente ou use a exportação e importação de metadados do Data Pump. Para ter mais informações, consulte [My Oracle Support Note 1454872.1](https://support.oracle.com/knowledge/Oracle%20Cloud/1454872_1.html).
+ Não é possível transportar espaços de tabela que estão criptografados ou que usam colunas criptografadas.
+ Ao transferir arquivos usando o Amazon S3, o tamanho máximo de arquivo compatível é de 5 TiB.
+ Se o banco de dados de origem usar opções do Oracle como o Spatial, você não poderá transportar espaços de tabela, a menos que as mesmas opções estejam configuradas no banco de dados de destino.
+ Não é possível transportar espaços de tabela para uma instância de banco de dados do RDS para Oracle em uma configuração de réplica do Oracle. Como solução alternativa, você pode excluir todas as réplicas, transportar os espaços de tabela e recriar as réplicas.

### Pré-requisitos para espaços de tabela transportáveis
<a name="oracle-migrating-tts.requirements"></a>

 Antes de começar, conclua as seguintes tarefas:
+ Analise os requisitos para espaços de tabela transportáveis descritos nos seguintes documentos em My Oracle Support:
  + [Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (ID 2471245.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2471245.1)
  + [Transportable Tablespace (TTS) Restrictions and Limitations: Details, Reference, and Version Where Applicable (ID 1454872.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454872.1)
  + [Primary Note for Transportable Tablespaces (TTS) -- Common Questions and Issues (ID 1166564.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1166564.1)
+ Planeje a conversão de extremidade. Se você especificar o ID da plataforma de origem, o RDS para Oracle converterá a extremidade automaticamente. Para saber como encontrar IDs de plataforma, consulte [Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=413484.1). 
+ Verifique se o atributo de espaços de tabela transportáveis está habilitado em sua instância de banco de dados de destino. O atributo só estará habilitado se você não receber um erro `ORA-20304` ao executar a seguinte consulta:

  ```
  SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
  ```

  Se o atributo de espaços de tabela transportáveis não estiver habilitado, reinicialize a instância de banco de dados. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).
+ Verifique se o arquivo de fuso horário é o mesmo nos bancos de dados de origem e de destino.
+ Certifique-se de que os conjuntos de caracteres do banco de dados nos bancos de dados de origem e de destino satisfaçam um dos seguintes requisitos:
  + Os conjuntos de caracteres são os mesmos.
  + Os conjuntos de caracteres são compatíveis. Para obter uma lista dos requisitos de compatibilidade, consulte [Limitações gerais no transporte de dados](https://docs.oracle.com/en/database/oracle/oracle-database/19/spmdu/general-limitations-on-transporting-data.html#GUID-28800719-6CB9-4A71-95DD-4B61AA603173) na documentação do Oracle Database.
+ Se você planeja transferir arquivos usando o Amazon S3, faça o seguinte:
  + Verifique se há um bucket do Amazon S3 disponível para transferências de arquivos e se o bucket do Amazon S3 está na mesma região da AWS que a sua instância de banco de dados. Para obter mais informações, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) no *Guia de conceitos básicos do Amazon Simple Storage Service*.
  + Prepare o bucket do Amazon S3 para a integração com o Amazon RDS seguindo as instruções em [Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon S3](oracle-s3-integration.preparing.md).
+ Se você planeja transferir arquivos usando o Amazon EFS, verifique se configurou o EFS de acordo com as instruções em [Integração do Amazon EFS](oracle-efs-integration.md).
+ É altamente recomendável que você ative os backups automáticos na instância de banco de dados de destino. Como a [etapa de importação de metadados](#oracle-migrating-tts.transport.import-dmp) pode falhar, é importante ser capaz de restaurar a instância de banco de dados para o estado anterior à importação, evitando assim a necessidade de fazer backup, transferir e importar os espaços de tabela novamente.

## Fase 1: Configurar o host de origem
<a name="oracle-migrating-tts.setup-phase"></a>

Nesta etapa, você copiará os scripts de transporte de espaços de tabela fornecidos em My Oracle Support e definirá os arquivos de configuração necessários. Nas etapas a seguir, o *host de origem* executará o banco de dados que contém os espaços de tabela que serão transportados para a *instância de destino*.

**Como configurar o host de origem**

1. Faça login no host de origem como proprietário do início do Oracle.

1. Certifique-se de que as variáveis de ambiente `ORACLE_HOME` e `ORACLE_SID` apontem para o banco de dados de origem.

1. Faça login em seu banco de dados como administrador e verifique se a versão do fuso horário, o conjunto de caracteres do banco de dados e o conjunto de caracteres nacionais são iguais aos do banco de dados de destino.

   ```
   SELECT * FROM V$TIMEZONE_FILE;
   SELECT * FROM NLS_DATABASE_PARAMETERS 
     WHERE PARAMETER IN ('NLS_CHARACTERSET','NLS_NCHAR_CHARACTERSET');
   ```

1. Configure o utilitário de espaços de tabela transportáveis conforme descrito em [Oracle Support note 2471245.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2471245.1). 

   A configuração inclui a edição do arquivo `xtt.properties` em seu host de origem. O exemplo de arquivo `xtt.properties` a seguir especifica backups de três espaços de tabela no diretório `/dsk1/backups`. Esses são os espaços de tabela que você pretende transportar para a instância de banco de dados de destino. Também especifica o ID da plataforma de origem para converter a extremidade automaticamente.
**nota**  
Para saber como encontrar IDs de plataforma, consulte [Data Guard Support for Heterogeneous Primary and Physical Standbys in Same Data Guard Configuration (Doc ID 413484.1)](https://support.oracle.com/epmos/faces/DocumentDisplay?id=413484.1). 

   ```
   #linux system 
   platformid=13
   #list of tablespaces to transport
   tablespaces=TBS1,TBS2,TBS3
   #location where backup will be generated
   src_scratch_location=/dsk1/backups
   #RMAN command for performing backup
   usermantransport=1
   ```

## Fase 2: Preparar o backup completo dos espaços de tabela
<a name="oracle-migrating-tts.initial-br-phase"></a>

Nesta fase, você fará backup dos espaços de tabela pela primeira vez, transferirá os backups para o host de destino e restaurará usando o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces`. Quando essa fase estiver concluída, os backups iniciais dos espaços de tabela vão residir na instância de banco de dados de destino e poderão ser atualizados com backups incrementais.

**Topics**
+ [

### Etapa 1: Fazer backup dos espaços de tabela no host de origem
](#oracle-migrating-tts.backup-full)
+ [

### Etapa 2: Transferir os arquivos de backup para a instância de banco de dados de destino
](#oracle-migrating-tts.transfer-full)
+ [

### Etapa 3: Importar os espaços de tabela na instância de banco de dados de destino
](#oracle-migrating-tts.initial-tts-import)

### Etapa 1: Fazer backup dos espaços de tabela no host de origem
<a name="oracle-migrating-tts.backup-full"></a>

Nesta etapa, use o script `xttdriver.pl` para fazer um backup completo dos espaços de tabela. A saída de `xttdriver.pl` é armazenada na variável de ambiente `TMPDIR`.

**Como fazer backup dos espaços de tabela**

1. Se os espaços de tabela estiverem no modo somente leitura, faça login no banco de dados de origem como um usuário que tem o privilégio `ALTER TABLESPACE` e coloque os espaços de tabela no modo de leitura/gravação. Caso contrário, vá para a próxima etapa.

   O exemplo a seguir coloca `tbs1`, `tbs2` e `tbs3` no modo de leitura/gravação.

   ```
   ALTER TABLESPACE tbs1 READ WRITE;
   ALTER TABLESPACE tbs2 READ WRITE;
   ALTER TABLESPACE tbs3 READ WRITE;
   ```

1. Faça backup dos espaços de tabela usando o script `xttdriver.pl`. Opcionalmente, você pode especificar `--debug` para executar o script no modo de depuração.

   ```
   export TMPDIR=location_of_log_files
   cd location_of_xttdriver.pl
   $ORACLE_HOME/perl/bin/perl xttdriver.pl --backup
   ```

### Etapa 2: Transferir os arquivos de backup para a instância de banco de dados de destino
<a name="oracle-migrating-tts.transfer-full"></a>

Nesta etapa, copie os arquivos de backup e configuração do local temporário para a instância de banco de dados de destino. Escolha uma das seguintes opções:
+ Se os hosts de origem e de destino compartilharem um sistema de arquivos do Amazon EFS, use um utilitário de sistema operacional, como `cp`, para copiar os arquivos de backup e o arquivo `res.txt` do local temporário para um diretório compartilhado. Em seguida, vá para [Etapa 3: Importar os espaços de tabela na instância de banco de dados de destino](#oracle-migrating-tts.initial-tts-import).
+ Se você precisar preparar os backups em um bucket do Amazon S3, realize as etapas a seguir.

![\[Transfira os arquivos usando o Amazon S3 ou o Amazon EFS.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-tts.png)


#### Etapa 2.2: Fazer upload dos backups no bucket do Amazon S3
<a name="oracle-migrating-tts.upload-full"></a>

Faça upload dos backups e do arquivo `res.txt` do diretório temporário para o bucket do Amazon S3. Para obter mais informações, consulte [Fazer upload de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) no *Guia do usuário do Amazon Simple Storage Service*.

#### Etapa 2.3: Fazer download dos backups do bucket do Amazon S3 para a instância de banco de dados de destino
<a name="oracle-migrating-tts.download-full"></a>

Nesta etapa, use o procedimento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para fazer download dos backups para a instância de banco de dados do RDS para Oracle.

**Como fazer download dos backups do bucket do Amazon S3**

1. Inicie o SQL\$1Plus ou o Oracle SQL Developer e faça login em sua instância de banco de dados do RDS para Oracle.

1. Faça download dos backups do bucket do Amazon S3 para a instância de banco de dados de destino usando o procedimento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` do Amazon RDS. O exemplo a seguir baixa todos os arquivos de um bucket do Amazon S3 chamado `amzn-s3-demo-bucket` no diretório `DATA_PUMP_DIR`.

   ```
   EXEC UTL_FILE.FREMOVE ('DATA_PUMP_DIR', 'res.txt');
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
     p_bucket_name    =>  'amzn-s3-demo-bucket',
     p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
   ```

   A instrução `SELECT` retorna o ID da tarefa em um tipo de dados `VARCHAR2`. Para obter mais informações, consulte [Baixar arquivos de um bucket do Amazon S3 para uma instância de banco de dados Oracle](oracle-s3-integration.using.md#oracle-s3-integration.using.download).

### Etapa 3: Importar os espaços de tabela na instância de banco de dados de destino
<a name="oracle-migrating-tts.initial-tts-import"></a>

Use o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar os espaços de tabela na instância de banco de dados de destino. Esse procedimento converte automaticamente os arquivos de dados para o formato endian correto.

Se você importar de uma plataforma diferente do Linux, especifique a plataforma de origem usando o parâmetro `p_platform_id` ao chamar `import_xtts_tablespaces`. O ID da plataforma que você especificou deve corresponder ao que foi especificado no arquivo `xtt.properties` em [Etapa 2: Exportar os metadados dos espaços de tabela no host de origem](#oracle-migrating-tts.transport.export).

**Importar os espaços de tabela na instância de banco de dados de destino**

1. Inicie um cliente Oracle SQL e faça login como usuário principal na instância de banco de dados de destino do RDS para Oracle.

1. Execute o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces`, especificando os espaços de tabela que serão importados e o diretório que contém os backups.

   O exemplo a seguir importa os espaços de tabela *TBS1*, *TBS2* e *TBS3* do diretório *DATA\$1PUMP\$1DIR*. A plataforma de origem é de sistemas baseados em AIX (64 bits), que tem o ID da plataforma de `6`. É possível encontrar os IDs da plataforma consultando `V$TRANSPORTABLE_PLATFORM`.

   ```
   VAR task_id CLOB
   
   BEGIN
     :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
           'TBS1,TBS2,TBS3',
           'DATA_PUMP_DIR',
           p_platform_id => 6);
   END;
   /
   
   PRINT task_id
   ```

1. (Opcional) Monitore o progresso consultando a tabela `rdsadmin.rds_xtts_operation_info`. A coluna `xtts_operation_state` mostra o valor `EXECUTING`, `COMPLETED` ou `FAILED`.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```
**nota**  
Para operações de longa duração, você também pode consultar `V$SESSION_LONGOPS`, `V$RMAN_STATUS` e `V$RMAN_OUTPUT`.

1. Veja o log da importação concluída usando o ID de tarefa da etapa anterior.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
   ```

   Verifique se importação foi bem-sucedida antes de prosseguir para a próxima etapa.

## Fase 3: Criar e transferir backups incrementais
<a name="oracle-migrating-tts.roll-forward-phase"></a>

Nesta fase, você fará e transferirá backups incrementais periodicamente enquanto o banco de dados de origem estiver ativo. Essa técnica reduz o tamanho do backup final de espaços de tabela. Se você criar vários backups incrementais, deverá copiar o arquivo `res.txt` depois do último backup incremental antes de poder aplicá-lo na instância de destino.

As etapas são as mesmas de [Fase 2: Preparar o backup completo dos espaços de tabela](#oracle-migrating-tts.initial-br-phase), exceto que a etapa de importação é opcional.

## Fase 4: Transportar os espaços de tabela
<a name="oracle-migrating-tts.final-br-phase"></a>

Nesta fase, você fará backup dos espaços de tabela somente leitura e exportará os metadados do Data Pump, transferirá esses arquivos para o host de destino e importará os espaços de tabela e os metadados.

**Topics**
+ [

### Etapa 1: Fazer backup dos espaços de tabela somente leitura
](#oracle-migrating-tts.final-backup)
+ [

### Etapa 2: Exportar os metadados dos espaços de tabela no host de origem
](#oracle-migrating-tts.transport.export)
+ [

### Etapa 3: (somente Amazon S3) Transferir os arquivos de backup e exportação para a instância de banco de dados de destino
](#oracle-migrating-tts.transport)
+ [

### Etapa 4: Importar os espaços de tabela na instância de banco de dados de destino
](#oracle-migrating-tts.restore-full)
+ [

### Etapa 5: Importar os metadados de espaços de tabela na instância de banco de dados de destino
](#oracle-migrating-tts.transport.import-dmp)

### Etapa 1: Fazer backup dos espaços de tabela somente leitura
<a name="oracle-migrating-tts.final-backup"></a>

Esta etapa é idêntica a [Etapa 1: Fazer backup dos espaços de tabela no host de origem](#oracle-migrating-tts.backup-full), com uma única diferença importante: você coloca os espaços de tabela no modo somente leitura antes de fazer backup dos espaços de tabela pela última vez.

O exemplo a seguir coloca `tbs1`, `tbs2` e `tbs3` no modo somente leitura.

```
ALTER TABLESPACE tbs1 READ ONLY;
ALTER TABLESPACE tbs2 READ ONLY;
ALTER TABLESPACE tbs3 READ ONLY;
```

### Etapa 2: Exportar os metadados dos espaços de tabela no host de origem
<a name="oracle-migrating-tts.transport.export"></a>

Exporte os metadados dos espaços de tabela executando o utilitário `expdb` no host de origem. O exemplo a seguir exporta os espaços de tabela *TBS1*, *TBS2* e *TBS3* para o arquivo de despejo *xttdump.dmp* no diretório *DATA\$1PUMP\$1DIR*.

```
expdp username/pwd \
dumpfile=xttdump.dmp \
directory=DATA_PUMP_DIR \
statistics=NONE \
transport_tablespaces=TBS1,TBS2,TBS3 \
transport_full_check=y \
logfile=tts_export.log
```

Se *DATA\$1PUMP\$1DIR* for um diretório compartilhado no Amazon EFS, vá para [Etapa 4: Importar os espaços de tabela na instância de banco de dados de destino](#oracle-migrating-tts.restore-full).

### Etapa 3: (somente Amazon S3) Transferir os arquivos de backup e exportação para a instância de banco de dados de destino
<a name="oracle-migrating-tts.transport"></a>

Se você estiver usando o Amazon S3 para preparar os backups de espaços de tabela e o arquivo de exportação do Data Pump, conclua as etapas a seguir.

#### Etapa 3.1: Fazer upload dos backups e do arquivo de despejo do host de origem no bucket do Amazon S3
<a name="oracle-migrating-tts.transport.upload-dmp"></a>

Faça upload dos arquivos de backup e despejo do host de origem no bucket do Amazon S3. Para obter mais informações, consulte [Fazer upload de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) no *Guia do usuário do Amazon Simple Storage Service*.

#### Etapa 3.2: Fazer download dos backups e do arquivo de despejo do bucket do Amazon S3 para a instância de banco de dados de destino
<a name="oracle-migrating-tts.transport.download-dmp"></a>

Nesta etapa, use o procedimento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` para fazer download dos backups e do arquivo de despejo para a instância de banco de dados do RDS para Oracle. Siga as etapas em [Etapa 2.3: Fazer download dos backups do bucket do Amazon S3 para a instância de banco de dados de destino](#oracle-migrating-tts.download-full).

### Etapa 4: Importar os espaços de tabela na instância de banco de dados de destino
<a name="oracle-migrating-tts.restore-full"></a>

Use o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces` para restaurar os espaços de tabela. Para conhecer a sintaxe e a semântica desse procedimento, consulte [Importar espaços para tabela transportados para a instância de banco de dados](rdsadmin_transport_util_import_xtts_tablespaces.md).

**Importante**  
Depois de concluir a importação final de espaços de tabela, a próxima etapa será [importar os metadados do Oracle Data Pump](#oracle-migrating-tts.transport.export). Em caso de falha na importação, é importante restaurar o estado da instância de banco de dados anterior à falha. Portanto, recomendamos que você crie um snapshot de banco de dados da instância de banco de dados seguindo as instruções em [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md). O snapshot conterá todos os espaços de tabela importados, portanto, se a importação falhar, você não precisará repetir o processo de backup e importação.   
Se a instância de banco de dados de destino estiver com a opção de backups automáticos ativada e o Amazon RDS não detectar que um snapshot válido foi iniciado antes da importação dos metadados, o RDS tentará criar um snapshot. Dependendo da atividade da instância, esse snapshot pode ou não ser bem-sucedido. Se um snapshot válido não for detectado ou se não for possível iniciar o snapshot, a importação de metadados será encerrada com erros.

**Importar os espaços de tabela na instância de banco de dados de destino**

1. Inicie um cliente Oracle SQL e faça login como usuário principal na instância de banco de dados de destino do RDS para Oracle.

1. Execute o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces`, especificando os espaços de tabela que serão importados e o diretório que contém os backups.

   O exemplo a seguir importa os espaços de tabela *TBS1*, *TBS2* e *TBS3* do diretório *DATA\$1PUMP\$1DIR*.

   ```
   BEGIN
     :task_id:=rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces('TBS1,TBS2,TBS3','DATA_PUMP_DIR');
   END;
   /
   PRINT task_id
   ```

1. (Opcional) Monitore o progresso consultando a tabela `rdsadmin.rds_xtts_operation_info`. A coluna `xtts_operation_state` mostra o valor `EXECUTING`, `COMPLETED` ou `FAILED`.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```
**nota**  
Para operações de longa duração, você também pode consultar `V$SESSION_LONGOPS`, `V$RMAN_STATUS` e `V$RMAN_OUTPUT`.

1. Veja o log da importação concluída usando o ID de tarefa da etapa anterior.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||'&task_id'||'.log'));
   ```

   Verifique se importação foi bem-sucedida antes de prosseguir para a próxima etapa.

1. Gere um snapshot manual do banco de dados seguindo as instruções em [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md).

### Etapa 5: Importar os metadados de espaços de tabela na instância de banco de dados de destino
<a name="oracle-migrating-tts.transport.import-dmp"></a>

Nesta etapa, importe os metadados de espaços de tabela transportáveis para a instância de banco de dados do RDS para Oracle usando o procedimento `rdsadmin.rdsadmin_transport_util.import_xtts_metadata`. Para conhecer a sintaxe e a semântica desse procedimento, consulte [Importar metadados de espaços para tabela transportáveis para a instância de banco de dados](rdsadmin_transport_util_import_xtts_metadata.md). Durante a operação, o status da importação é mostrado na tabela  `rdsadmin.rds_xtts_operation_info`.

**Importante**  
Antes de importar metadados, é altamente recomendável que você confirme se um snapshot do banco de dados foi criado com êxito depois da importação dos espaços de tabela. Se a etapa de importação falhar, restaure a instância de banco de dados, resolva os erros de importação e tente importar novamente.

**Importar os metadados do Data Pump para uma instância de banco de dados do RDS para Oracle**

1. Inicie seu cliente Oracle SQL e faça login como usuário principal na instância de banco de dados de destino.

1. Crie os usuários proprietários de esquemas nos espaços de tabela transportados, caso esses usuários ainda não existam.

   ```
   CREATE USER tbs_owner IDENTIFIED BY password;
   ```

1. Importe os metadados, especificando o nome do arquivo de despejo e sua localização no diretório.

   ```
   BEGIN
     rdsadmin.rdsadmin_transport_util.import_xtts_metadata('xttdump.dmp','DATA_PUMP_DIR');
   END;
   /
   ```

1. (Opcional) Consulte a tabela de histórico de espaços de tabela transportáveis para ver o status da importação de metadados.

   ```
   SELECT * FROM rdsadmin.rds_xtts_operation_info;
   ```

   Quando a operação for concluída, os espaços de tabela ficarão no modo somente leitura.

1. (Opcional) Veja o arquivo de log.

   O exemplo a seguir lista o conteúdo do diretório BDUMP, depois consulta o log de importação.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'BDUMP'));
   
   SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file(
     p_directory => 'BDUMP',
     p_filename => 'rds-xtts-import_xtts_metadata-2023-05-22.01-52-35.560858000.log'));
   ```

## Fase 5: Validar os espaços de tabela transportados
<a name="oracle-migrating-tts.validate"></a>

Nesta etapa opcional, você validará os espaços de tabela transportados usando o procedimento `rdsadmin.rdsadmin_rman_util.validate_tablespace`, depois colocará os espaços de tabela no modo de leitura/gravação.

**Como validar os dados transportados**

1. Inicie o SQL\$1Plus ou o SQL Developer e faça login como usuário principal em sua instância de banco de dados de destino.

1. Valide os espaços de tabela usando o procedimento `rdsadmin.rdsadmin_rman_util.validate_tablespace`.

   ```
   SET SERVEROUTPUT ON
   BEGIN
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS1',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS2',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
       rdsadmin.rdsadmin_rman_util.validate_tablespace(
           p_tablespace_name     => 'TBS3',
           p_validation_type     => 'PHYSICAL+LOGICAL',
           p_rman_to_dbms_output => TRUE);
   END;
   /
   ```

1. Coloque os espaços de tabela no modo de leitura/gravação.

   ```
   ALTER TABLESPACE TBS1 READ WRITE;
   ALTER TABLESPACE TBS2 READ WRITE;
   ALTER TABLESPACE TBS3 READ WRITE;
   ```

## Fase 6: Limpar os arquivos restantes
<a name="oracle-migrating-tts.cleanup"></a>

Nesta etapa opcional, você removerá todos os arquivos desnecessários. Use o procedimento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para listar arquivos de dados que ficaram órfãos após a importação de um espaço de tabela e, depois, use o procedimento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files` para excluí-los. Para conhecer a sintaxe e a semântica desses procedimentos, consulte [Listar arquivos órfãos após a importação de um espaço para tabela](rdsadmin_transport_util_list_xtts_orphan_files.md) e [Excluir arquivos de dados órfãos após a importação de espaços para tabela](rdsadmin_transport_util_cleanup_incomplete_xtts_import.md).

**Como limpar os arquivos restantes**

1. Remova os backups antigos em *DATA\$1PUMP\$1DIR* da seguinte forma:

   1. Liste os arquivos de backup executando `rdsadmin.rdsadmin_file_util.listdir`.

      ```
      SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => 'DATA_PUMP_DIR'));
      ```

   1. Remova os backups um por um chamando `UTL_FILE.FREMOVE`.

      ```
      EXEC UTL_FILE.FREMOVE ('DATA_PUMP_DIR', 'backup_filename');
      ```

1. Se você importou espaços de tabela, mas não importou metadados para esses espaços de tabela, poderá excluir os arquivos de dados órfãos da seguinte forma:

   1. Liste os arquivos de dados órfãos que você precisa excluir. O exemplo a seguir executa o procedimento `rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files`.

      ```
      SQL> SELECT * FROM TABLE(rdsadmin.rdsadmin_transport_util.list_xtts_orphan_files);
      
      FILENAME       FILESIZE
      -------------- ---------
      datafile_7.dbf 104865792
      datafile_8.dbf 104865792
      ```

   1. Exclua os arquivos órfãos executando o procedimento `rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import`.

      ```
      BEGIN
        rdsadmin.rdsadmin_transport_util.cleanup_incomplete_xtts_import('DATA_PUMP_DIR');
      END;
      /
      ```

      A operação de limpeza gera um arquivo de log que usa o formato de nome `rds-xtts-delete_xtts_orphaned_files-YYYY-MM-DD.HH24-MI-SS.FF.log` no diretório `BDUMP`.

   1. Leia o arquivo de log gerado na etapa anterior. O exemplo a seguir lê o log `rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log`.

      ```
      SELECT * 
      FROM TABLE(rdsadmin.rds_file_util.read_text_file(
             p_directory => 'BDUMP',
             p_filename  => 'rds-xtts-delete_xtts_orphaned_files-2023-06-01.09-33-11.868894000.log'));
      
      TEXT
      --------------------------------------------------------------------------------
      orphan transported datafile datafile_7.dbf deleted.
      orphan transported datafile datafile_8.dbf deleted.
      ```

1. Se você importou espaços de tabela e importou metadados para esses espaços de tabela, mas encontrou erros de compatibilidade ou outros problemas do Oracle Data Pump, limpe os arquivos de dados parcialmente transportados da seguinte forma:

   1. Liste os espaços de tabela que contêm arquivos de dados parcialmente transportados consultando `DBA_TABLESPACES`.

      ```
      SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE PLUGGED_IN='YES';
      
      TABLESPACE_NAME
      --------------------------------------------------------------------------------
      TBS_3
      ```

   1. Elimine os espaços de tabela e os arquivos de dados parcialmente transportados.

      ```
      DROP TABLESPACE TBS_3 INCLUDING CONTENTS AND DATAFILES;
      ```

# Importar usando o Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump"></a>

O Oracle Data Pump é um utilitário que permite exportar dados Oracle para um arquivo de despejo e importá-los para outro banco de dados Oracle. Ele é uma substituição a longo prazo para os utilitários de importação/exportação da Oracle. O Oracle Data Pump é a maneira preferida de mover grandes quantidades de dados de um banco de dados Oracle para uma instância de banco de dados do Amazon RDS.

Os exemplos desta seção mostram uma maneira de importar dados para um banco de dados Oracle, o Oracle Data Pump oferece suporte a outras técnicas. Para obter mais informações, consulte a [documentação do Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump.html#GUID-501A9908-BCC5-434C-8853-9A6096766B5A).

Os exemplos desta seção usam o pacote `DBMS_DATAPUMP`. Você pode realizar as mesmas tarefas usando os utilitários da linha de comando do Oracle Data Pump `impdp` e `expdp`. Você pode instalar esses utilitários em um host remoto como parte de uma instalação do Oracle Client, incluindo o Oracle Instant Client. Para obter mais informações, consulte [“Como usar o Oracle Instant Client para executar a importação ou exportação do Data Pump para a minha instância de banco de dados do Amazon RDS para Oracle?”](https://aws.amazon.com/premiumsupport/knowledge-center/rds-oracle-instant-client-datapump/)

**Topics**
+ [

## Visão geral do Oracle Data Pump
](#Oracle.Procedural.Importing.DataPump.Overview)
+ [

## Importar dados com o Oracle Data Pump e um bucket do Amazon S3
](#Oracle.Procedural.Importing.DataPump.S3)
+ [

## Importar dados com o Oracle Data Pump e um link de banco de dados
](#Oracle.Procedural.Importing.DataPump.DBLink)

## Visão geral do Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview"></a>

O Oracle Data Pump tem os seguintes componentes:
+ Clientes de linha de comando `expdp` e `impdp`
+ O pacote PL/SQL `DBMS_DATAPUMP`
+ O pacote PL/SQL `DBMS_METADATA`

Você pode usar o Oracle Data Pump nos seguintes cenários:
+ Importar dados de um banco de dados Oracle, on-premises ou em uma instância do Amazon EC2), para uma instância de banco de dados do RDS para Oracle.
+ Importar dados de uma instância de banco de dados do RDS para Oracle para um banco de dados Oracle, on-premises ou em uma instância do Amazon EC2.
+ Importar dados entre instâncias de banco de dados do RDS para Oracle, por exemplo, para migrar dados do EC2-Classic para a VPC.

Para baixar os utilitários do Oracle Data Pump, consulte [“Oracle database software downloads”](http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html) (Downloads do software Oracle Database) no site da Oracle Technology Network. Para considerações sobre compatibilidade ao migrar entre versões do Oracle Database, consulte [a documentação do Oracle Database](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-BAA3B679-A758-4D55-9820-432D9EB83C68).

### Fluxo de trabalho do Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview.how-it-works"></a>

Normalmente, você usa o Oracle Data Pump nos seguintes estágios:

1. Exportar seus dados em um arquivo de despejo no banco de dados de origem.

1. Carregar seu arquivo de despejo em sua instância de destino do RDS para Oracle. Você pode transferir usando um bucket do Amazon S3 ou usando um link de banco de dados entre os dois bancos de dados.

1. Importe os dados de seu arquivo de despejo em sua instância de banco de dados do RDS para Oracle.

### Práticas recomendadas do Oracle Data Pump
<a name="Oracle.Procedural.Importing.DataPump.Overview.best-practices"></a>

Ao usar o Oracle Data Pump para importar dados para uma instância do RDS para Oracle, recomendamos as seguintes práticas:
+ Faça importações no modo `schema` ou `table` para importar esquemas e objetos específicos.
+ Limite os esquemas que você importa àqueles exigidos por sua aplicação.
+ Não importe no modo `full` ou importar esquemas para componentes mantidos pelo sistema.

  Como o RDS para Oracle não permite o acesso a usuários administrativos do `SYS` ou `SYSDBA`, essas ações podem danificar o dicionário de dados da Oracle e afetar a estabilidade de seu banco de dados.
+ Ao carregar grandes quantidades de dados, faça o seguinte:

  1. Transfira o arquivo de despejo para a instância de banco de dados do RDS para Oracle de destino.

  1. Crie um snapshot do banco de dados da instância.

  1. Teste a importação para verificar se ela é bem-sucedida.

  Se os componentes do banco de dados forem invalidados, você poderá excluir a instância de banco de dados e recriá-la a partir do snapshot. A instância de banco de dados restaurada incluirá qualquer arquivo de despejo preparado na instância de banco de dados quando você criou o snapshot.
+ Não importe arquivos de despejo que foram criados usando os parâmetros de exportação do Oracle Data Pump `TRANSPORT_TABLESPACES`, `TRANSPORTABLE` ou `TRANSPORT_FULL_CHECK`. As instâncias de banco de dados do RDS para Oracle não oferecem suporte à importação desses arquivos de despejo.
+ Não importe arquivos de despejo que contenham objetos do Oracle Scheduler em `SYS`, `SYSTEM`, `RDSADMIN`, `RDSSEC` e `RDS_DATAGUARD` e pertençam às seguintes categorias:
  + Tarefas
  + Programas
  + Schedules
  + Cadeias
  + Regras
  + Contextos de avaliação
  + Conjuntos de regras

  As instâncias de banco de dados do RDS para Oracle não oferecem suporte à importação desses arquivos de despejo. 
+ Para excluir objetos do Oracle Scheduler não aceitos, use diretivas adicionais durante a exportação do Data Pump. Se usar o `DBMS_DATAPUMP`, você poderá adicionar um `METADATA_FILTER` antes do `DBMS_METADATA.START_JOB`:

  ```
  DBMS_DATAPUMP.METADATA_FILTER(
    v_hdnl,
    'EXCLUDE_NAME_EXPR',
    q'[IN (SELECT NAME FROM SYS.OBJ$ 
           WHERE TYPE# IN (66,67,74,79,59,62,46) 
           AND OWNER# IN
             (SELECT USER# FROM SYS.USER$ 
              WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
              )
          )
    ]',
    'PROCOBJ'
  );
  ```

  Se você usar o `expdp`, crie um arquivo de parâmetro que contenha a diretiva `exclude` mostrada no exemplo a seguir. Em seguida, use `PARFILE=parameter_file` com o comando `expdp`.

  ```
  exclude=procobj:"IN 
    (SELECT NAME FROM sys.OBJ$
     WHERE TYPE# IN (66,67,74,79,59,62,46) 
     AND OWNER# IN 
       (SELECT USER# FROM SYS.USER$ 
        WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
       )
    )"
  ```

## Importar dados com o Oracle Data Pump e um bucket do Amazon S3
<a name="Oracle.Procedural.Importing.DataPump.S3"></a>

O processo de importação a seguir usa o Oracle Data Pump e um bucket do Amazon S3. As etapas são:

1. Exporte dados no banco de dados de origem usando o pacote[DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DATAPUMP.html) da Oracle.

1. Coloque o arquivo de despejo em um bucket do Amazon S3.

1. Baixe o arquivo de despejo do bucket do Amazon S3 no diretório `DATA_PUMP_DIR` na instância de destino do banco de dados do RDS para Oracle. 

1. Importe os dados do arquivo de despejo copiado para a instância de banco de dados do RDS para Oracle usando o pacote `DBMS_DATAPUMP`.

**Topics**
+ [

### Requisitos para importar dados com o Oracle Data Pump e um bucket do Amazon S3
](#Oracle.Procedural.Importing.DataPumpS3.requirements)
+ [

### Etapa 1: Conceder privilégios ao usuário do banco de dados na instância de banco de dados de destino do RDS para Oracle
](#Oracle.Procedural.Importing.DataPumpS3.Step1)
+ [

### Etapa 2: Exportar dados para um arquivo de despejo usando DBMS\$1DATAPUMP
](#Oracle.Procedural.Importing.DataPumpS3.Step2)
+ [

### Etapa 3: Carregar o arquivo de despejo para o seu bucket do Amazon S3
](#Oracle.Procedural.Importing.DataPumpS3.Step3)
+ [

### Etapa 4: Baixe o arquivo no bucket do Amazon S3 para a instância de banco de dados de destino
](#Oracle.Procedural.Importing.DataPumpS3.Step4)
+ [

### Etapa 5: Importar seu arquivo de despejo para sua instância de banco de dados de destino usando DBMS\$1DATAPUMP
](#Oracle.Procedural.Importing.DataPumpS3.Step5)
+ [

### Etapa 6: Limpeza
](#Oracle.Procedural.Importing.DataPumpS3.Step6)

### Requisitos para importar dados com o Oracle Data Pump e um bucket do Amazon S3
<a name="Oracle.Procedural.Importing.DataPumpS3.requirements"></a>

O processo tem estes requisitos:
+ Verifique se há um bucket do Amazon S3 disponível para transferências de arquivos e se o bucket do Amazon S3 está na mesma Região da AWS que a instância de banco de dados. Para obter mais informações, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html) no *Guia de conceitos básicos do Amazon Simple Storage Service*.
+ O objeto carregado no bucket do Amazon S3 deve ter 5 TB ou menos. Para obter mais informações sobre como trabalhar com objetos no Amazon S3, consulte o [Manual do usuário do Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html).
**nota**  
Se o arquivo de despejo for superior a 5 TB, será possível executar a exportação do Oracle Data Pump com a opção paralela. Essa operação distribui os dados em vários arquivos de despejo para que você não exceda o limite de 5 TB para arquivos individuais.
+ Você deve preparar o bucket do Amazon S3 para a integração com o Amazon RDS seguindo as instruções em [Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon S3](oracle-s3-integration.preparing.md).
+ Você deve ter espaço de armazenamento suficiente para armazenar o arquivo de despejo na instância de origem e na instância de banco de dados de destino.

**nota**  
Esse processo importa um arquivo de despejo no diretório `DATA_PUMP_DIR`, um diretório pré-configurado em todas as instâncias de banco de dados Oracle. Esse diretório está localizado no mesmo volume de armazenamento que seus arquivos de dados. Ao importar o arquivo de despejo, os arquivos de dados existes da Oracle usam mais espaço. Dessa forma, você deve verificar se a sua instância de banco de dados pode acomodar o uso de espaço adicional. O arquivo de despejo importado não é excluído ou limpo automaticamente do diretório `DATA_PUMP_DIR`. Para remover o arquivo de despejo importado, use [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), que pode ser encontrado no site da Oracle. 

### Etapa 1: Conceder privilégios ao usuário do banco de dados na instância de banco de dados de destino do RDS para Oracle
<a name="Oracle.Procedural.Importing.DataPumpS3.Step1"></a>

Nesta etapa, você cria os esquemas nos quais planeja importar dados e concede aos usuários os privilégios necessários.

**Para criar usuários e conceder os privilégios necessários na instância do RDS para Oracle de destino**

1. Use o SQL\$1Plus ou o Oracle SQL Developer para fazer login como usuário mestre na instância de banco de dados do RDS para Oracle para onde os dados serão importados. Para saber mais sobre como se conectar à sua instância de banco de dados, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md).

1. Crie os espaços de tabela necessários antes de importar os dados. Para obter mais informações, consulte [Criar e usar espaços de tabela no RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles).

1. Crie a conta de usuário e conceda as permissões e funções necessárias se a conta de usuário na qual os dados serão importados não existir. Se você planeja importar dados para vários esquemas de usuários, crie cada conta de usuário e conceda as funções e os privilégios necessários a ela.

   Por exemplo, as instruções SQL a seguir criam um novo usuário e concedem as permissões e funções necessárias para importar os dados para o esquema de propriedade do usuário. Substitua `schema_1` pelo nome de seu schema nesta e nas etapas a seguir.

   ```
   CREATE USER schema_1 IDENTIFIED BY my_password;
   GRANT CREATE SESSION, RESOURCE TO schema_1;
   ALTER USER schema_1 QUOTA 100M ON users;
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

   As instruções anteriores concedem ao novo usuário o privilégio `CREATE SESSION` e a função `RESOURCE`. Podem ser necessários privilégios e funções adicionais dependendo dos objetos de banco de dados que você importar.

### Etapa 2: Exportar dados para um arquivo de despejo usando DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpS3.Step2"></a>

Para criar um arquivo de despejo, use o pacote `DBMS_DATAPUMP`.

**Como exportar dados Oracle para um arquivo de despejo**

1. Use o SQL Plus ou o Oracle SQL Developer para se conectar à instância de banco de dados do RDS para Oracle de origem por meio de um usuário administrativo. Se o banco de dados de origem for uma instância de banco de dados do RDS para Oracle, conecte-se com o usuário mestre do Amazon RDS.

1. Exporte os dados chamando procedimentos do `DBMS_DATAPUMP`.

   O script a seguir exporta o esquema `SCHEMA_1` em um arquivo de despejo chamado `sample.dmp` no diretório `DATA_PUMP_DIR`. Substitua `SCHEMA_1` pelo nome do esquema que você quer exportar.

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN(
       operation => 'EXPORT', 
       job_mode  => 'SCHEMA', 
       job_name  => null
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl         , 
       filename  => 'sample.dmp'   , 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_dump_file
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_exp.log', 
       directory => 'DATA_PUMP_DIR' , 
       filetype  => dbms_datapump.ku$_file_type_log_file
     );
     DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl,
       'EXCLUDE_NAME_EXPR',
       q'[IN (SELECT NAME FROM SYS.OBJ$ 
              WHERE TYPE# IN (66,67,74,79,59,62,46) 
              AND OWNER# IN 
                (SELECT USER# FROM SYS.USER$ 
                 WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
                )
             )
       ]',
       'PROCOBJ'
     );
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**nota**  
O Data Pump inicia os trabalhos de forma assíncrona. Para obter informações sobre o monitoramento de um trabalho do Data Pump, consulte [Monitoring Job Status](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) (Monitorar status do trabalho) na documentação da Oracle. 

1. (Opcional) Você pode visualizar o conteúdo do log de exportação chamando o procedimento `rdsadmin.rds_file_util.read_text_file`. Para obter mais informações, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

### Etapa 3: Carregar o arquivo de despejo para o seu bucket do Amazon S3
<a name="Oracle.Procedural.Importing.DataPumpS3.Step3"></a>

Use o procedimento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` do Amazon RDS para copiar o arquivo de despejo no bucket do Amazon S3. O exemplo a seguir faz upload todos os arquivos do diretório `DATA_PUMP_DIR` para um bucket do Amazon S3 chamado `amzn-s3-demo-bucket`.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
  p_bucket_name    =>  'amzn-s3-demo-bucket',       
  p_directory_name =>  'DATA_PUMP_DIR') 
AS TASK_ID FROM DUAL;
```

A instrução `SELECT` retorna o ID da tarefa em um tipo de dados `VARCHAR2`. Para obter mais informações, consulte [Carregar arquivos de uma instância de banco de dados do RDS para Oracle para um bucket do Amazon S3](oracle-s3-integration.using.md#oracle-s3-integration.using.upload).

### Etapa 4: Baixe o arquivo no bucket do Amazon S3 para a instância de banco de dados de destino
<a name="Oracle.Procedural.Importing.DataPumpS3.Step4"></a>

Execute esta etapa usando o procedimento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` do Amazon RDS. Quando você baixar um arquivo em um diretório, o procedimento `download_from_s3` ignorará o download se um arquivo com nome idêntico já existir no diretório. Para remover um arquivo do diretório de downloads, use [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), que pode ser encontrado no site da Oracle.

**Como baixar seu arquivo de despejo**

1. Inicie o SQL\$1Plus ou o Oracle SQL Developer e faça login como mestre em sua instância de banco de dados Oracle de destino do Amazon RDS

1. Baixe o arquivo de despejo usando o procedimento do Amazon RDS `rdsadmin.rdsadmin_s3_tasks.download_from_s3`.

   O exemplo a seguir baixa todos os arquivos de um bucket do Amazon S3 chamado `amzn-s3-demo-bucket` no diretório `DATA_PUMP_DIR`.

   ```
   SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
     p_bucket_name    =>  'amzn-s3-demo-bucket',
     p_directory_name =>  'DATA_PUMP_DIR')
   AS TASK_ID FROM DUAL;
   ```

   A instrução `SELECT` retorna o ID da tarefa em um tipo de dados `VARCHAR2`. Para obter mais informações, consulte [Baixar arquivos de um bucket do Amazon S3 para uma instância de banco de dados Oracle](oracle-s3-integration.using.md#oracle-s3-integration.using.download).

### Etapa 5: Importar seu arquivo de despejo para sua instância de banco de dados de destino usando DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpS3.Step5"></a>

Use o `DBMS_DATAPUMP` para importar o esquema em sua instância de banco de dados do RDS para Oracle. Opções adicionais, como `METADATA_REMAP`, podem ser necessárias.

**Para importar dados para sua instância de banco de dados de destino**

1. Inicie o SQL\$1Plus ou o SQL Developer e faça login como usuário mestre em sua instância de banco de dados do RDS para Oracle.

1. Importe os dados chamando procedimentos `DBMS_DATAPUMP`.

   O exemplo a seguir importa os dados de *SCHEMA\$11* de `sample_copied.dmp` em sua instância de banco de dados de destino.

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN( 
       operation => 'IMPORT', 
       job_mode  => 'SCHEMA', 
       job_name  => null);
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_copied.dmp', 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_dump_file);
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample_imp.log', 
       directory => 'DATA_PUMP_DIR', 
       filetype  => dbms_datapump.ku$_file_type_log_file);
     DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**nota**  
Os trabalhos do Data Pump são iniciados de forma assíncrona. Para obter informações sobre o monitoramento de um trabalho do Data Pump, consulte [Monitoring Job Status](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) (Monitorar status do trabalho) na documentação da Oracle. Você pode visualizar o conteúdo do log de importação usando o procedimento `rdsadmin.rds_file_util.read_text_file`. Para obter mais informações, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

1. Verifique a importação de dados listando as tabelas de esquema na sua instância de banco de dados de destino.

   Por exemplo, a consulta a seguir retorna o número de tabelas para o `SCHEMA_1`. 

   ```
   SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='SCHEMA_1';
   ```

### Etapa 6: Limpeza
<a name="Oracle.Procedural.Importing.DataPumpS3.Step6"></a>

Depois que os dados foram importados, você pode excluir os arquivos que não deseja manter.

**Como remover arquivos desnecessários**

1. Inicie o SQL\$1Plus ou o SQL Developer e faça login como usuário mestre em sua instância de banco de dados do RDS para Oracle.

1. Liste os arquivos no `DATA_PUMP_DIR` usando o comando a seguir.

   ```
   SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
   ```

1. Para excluir arquivos no `DATA_PUMP_DIR` que não são mais necessários, use o comando a seguir.

   ```
   EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','filename');
   ```

   Por exemplo, o seguinte comando exclui o arquivo chamado `sample_copied.dmp`.

   ```
   EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample_copied.dmp'); 
   ```

## Importar dados com o Oracle Data Pump e um link de banco de dados
<a name="Oracle.Procedural.Importing.DataPump.DBLink"></a>

O processo a seguir usa o Oracle Data Pump e o pacote [DBMS\$1FILE\$1TRANSFER](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_FILE_TRANSFER.html) do Oracle. As etapas são:

1. Conecte-se a um banco de dados Oracle de origem, que pode ser um banco de dados on-premises, uma instância do Amazon EC2 ou uma instância de banco de dados do RDS para Oracle. 

1. Exporte dados usando o pacote [DBMS\$1DATAPUMP](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DATAPUMP.html).

1. Ele usa `DBMS_FILE_TRANSFER.PUT_FILE` para copiar o arquivo de despejo do banco de dados Oracle para o diretório `DATA_PUMP_DIR` na instância do banco de dados do RDS para Oracle de destino que está conectada por meio de um link de banco de dados. 

1. Importe os dados do arquivo de despejo copiado para a instância de banco de dados do RDS para Oracle usando o pacote ` DBMS_DATAPUMP`.

O processo de importação usando o Oracle Data Pump e o pacote `DBMS_FILE_TRANSFER` tem as etapas a seguir.

**Topics**
+ [

### Requisitos para importar dados com o Oracle Data Pump e um link de banco de dados
](#Oracle.Procedural.Importing.DataPumpDBLink.requirements)
+ [

### Etapa 1: Conceder privilégios ao usuário na instância de destino do RDS para Oracle
](#Oracle.Procedural.Importing.DataPumpDBLink.Step1)
+ [

### Etapa 2: Conceder privilégios ao usuário no banco de dados de origem
](#Oracle.Procedural.Importing.DataPumpDBLink.Step2)
+ [

### Etapa 3: Criar um arquivo de despejo usando DBMS\$1DATAPUMP
](#Oracle.Procedural.Importing.DataPumpDBLink.Step3)
+ [

### Etapa 4: Criar o vínculo de banco de dados com a instância de banco de dados de destino
](#Oracle.Procedural.Importing.DataPumpDBLink.Step4)
+ [

### Etapa 5: Copiar o arquivo de despejo exportado para a instância de banco de dados de destino usando DBMS\$1FILE\$1TRANSFER
](#Oracle.Procedural.Importing.DataPumpDBLink.Step5)
+ [

### Etapa 6: Importar o arquivo de dados para a instância de banco de dados de destino usando DBMS\$1DATAPUMP
](#Oracle.Procedural.Importing.DataPumpDBLink.Step6)
+ [

### Etapa 7: Limpeza
](#Oracle.Procedural.Importing.DataPumpDBLink.Step7)

### Requisitos para importar dados com o Oracle Data Pump e um link de banco de dados
<a name="Oracle.Procedural.Importing.DataPumpDBLink.requirements"></a>

O processo tem estes requisitos:
+ É necessário ter privilégios de execução nos pacotes `DBMS_FILE_TRANSFER` e `DBMS_DATAPUMP`.
+ É necessário ter privilégios de gravação no diretório `DATA_PUMP_DIR` na instância de banco de dados de origem.
+ Você deve ter espaço de armazenamento suficiente para armazenar o arquivo de despejo na instância de origem e na instância de banco de dados de destino.

**nota**  
Esse processo importa um arquivo de despejo no diretório `DATA_PUMP_DIR`, um diretório pré-configurado em todas as instâncias de banco de dados Oracle. Esse diretório está localizado no mesmo volume de armazenamento que seus arquivos de dados. Ao importar o arquivo de despejo, os arquivos de dados existes da Oracle usam mais espaço. Dessa forma, você deve verificar se a sua instância de banco de dados pode acomodar o uso de espaço adicional. O arquivo de despejo importado não é excluído ou limpo automaticamente do diretório `DATA_PUMP_DIR`. Para remover o arquivo de despejo importado, use [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF), que pode ser encontrado no site da Oracle. 

### Etapa 1: Conceder privilégios ao usuário na instância de destino do RDS para Oracle
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step1"></a>

Para conceder privilégios ao usuário na instância de banco de dados de destino do RDS para Oracle, sigas estas etapas:

1. Use o SQL Plus ou o Oracle SQL Developer para se conectar à instância de banco de dados do RDS para Oracle para onde você pretende importar os dados. Conecte-se como usuário mestre do Amazon RDS. Para obter informações sobre como se conectar à sua instância de banco de dados, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md).

1. Crie os espaços de tabela necessários antes de importar os dados. Para obter mais informações, consulte [Criar e usar espaços de tabela no RDS para Oracle](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles).

1. Se a conta de usuário na qual os dados serão importados não existir, crie-a e conceda as permissões e funções necessárias a ela. Se você planeja importar dados para vários esquemas de usuários, crie cada conta de usuário e conceda as funções e os privilégios necessários a ela.

   Por exemplo, os comandos a seguir criam um novo usuário chamado *schema\$11* e concedem as permissões e funções necessárias para importar os dados para o esquema deste usuário.

   ```
   CREATE USER schema_1 IDENTIFIED BY my-password;
   GRANT CREATE SESSION, RESOURCE TO schema_1;
   ALTER USER schema_1 QUOTA 100M ON users;
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

   O exemplo anterior concede ao novo usuário o privilégio `CREATE SESSION` e a função `RESOURCE`. Podem ser necessários privilégios e funções adicionais dependendo dos objetos de banco de dados que você importa. 
**nota**  
Substitua `schema_1` pelo nome de seu schema nesta e nas etapas a seguir.

### Etapa 2: Conceder privilégios ao usuário no banco de dados de origem
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step2"></a>

Use o SQL\$1Plus ou o Oracle SQL Developer para se conectar à instância de banco de dados do RDS para Oracle que contém os dados a serem importados. Se necessário, crie uma conta de usuário e conceda as permissões necessárias. 

**nota**  
Se o banco de dados de origem for uma instância do Amazon RDS, você poderá ignorar esta etapa. Use sua conta de usuário mestre do Amazon RDS para executar a exportação.

Os comandos a seguir criam um novo usuário e concedem as permissões necessárias.

```
CREATE USER export_user IDENTIFIED BY my-password;
GRANT CREATE SESSION, CREATE TABLE, CREATE DATABASE LINK TO export_user;
ALTER USER export_user QUOTA 100M ON users;
GRANT READ, WRITE ON DIRECTORY data_pump_dir TO export_user;
GRANT SELECT_CATALOG_ROLE TO export_user;
GRANT EXECUTE ON DBMS_DATAPUMP TO export_user;
GRANT EXECUTE ON DBMS_FILE_TRANSFER TO export_user;
```

**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

### Etapa 3: Criar um arquivo de despejo usando DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step3"></a>

Para criar o arquivo de despejo, faça o seguinte:

1. Use o SQL\$1Plus ou o Oracle SQL Developer para se conectar à instância de origem do Oracle por meio de um usuário administrativo ou o usuário que você criou na etapa 2. Se o banco de dados de origem for uma instância de banco de dados do Amazon RDS para Oracle, conecte-se com o usuário mestre do Amazon RDS.

1. Crie um arquivo de despejo usando o utilitário Oracle Data Pump.

   O script a seguir cria um arquivo de despejo chamado *sample.dmp* no diretório `DATA_PUMP_DIR`. 

   ```
   DECLARE
     v_hdnl NUMBER;
   BEGIN
     v_hdnl := DBMS_DATAPUMP.OPEN( 
       operation => 'EXPORT' , 
       job_mode  => 'SCHEMA' , 
       job_name  => null
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl, 
       filename  => 'sample.dmp'    , 
       directory => 'DATA_PUMP_DIR' , 
       filetype  => dbms_datapump.ku$_file_type_dump_file
     );
     DBMS_DATAPUMP.ADD_FILE( 
       handle    => v_hdnl           , 
       filename  => 'sample_exp.log' , 
       directory => 'DATA_PUMP_DIR'  , 
       filetype  => dbms_datapump.ku$_file_type_log_file
     );
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl              ,
       'SCHEMA_EXPR'       ,
       'IN (''SCHEMA_1'')'
     );
     DBMS_DATAPUMP.METADATA_FILTER(
       v_hdnl,
       'EXCLUDE_NAME_EXPR',
       q'[IN (SELECT NAME FROM sys.OBJ$ 
              WHERE TYPE# IN (66,67,74,79,59,62,46) 
              AND OWNER# IN 
                (SELECT USER# FROM SYS.USER$ 
                 WHERE NAME IN ('RDSADMIN','SYS','SYSTEM','RDS_DATAGUARD','RDSSEC')
                )
             )
       ]',
       'PROCOBJ'
     );
     DBMS_DATAPUMP.START_JOB(v_hdnl);
   END;
   /
   ```
**nota**  
Os trabalhos do Data Pump são iniciados de forma assíncrona. Para obter informações sobre o monitoramento de um trabalho do Data Pump, consulte [Monitoring Job Status](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) (Monitorar status do trabalho) na documentação da Oracle. É possível visualizar o conteúdo do log de exportação usando o procedimento `rdsadmin.rds_file_util.read_text_file`. Para obter mais informações, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

### Etapa 4: Criar o vínculo de banco de dados com a instância de banco de dados de destino
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step4"></a>

Crie um link de banco de dados entre sua instância de banco de dados de origem e sua instância de banco de dados de destino. Observe que sua instância local do Oracle deve ter conectividade de rede com a instância de banco de dados para criar um link de banco de dados e transferir seu arquivo de despejo. 

Realize esta etapa conectado com a mesma conta de usuário da etapa anterior.

Se você estiver criando um link de banco de dados entre duas instâncias de bancos de dados na mesma VPC ou VPCs emparelhadas, as duas instâncias de bancos de dados deverão ter uma rota válida entre elas. O grupo de segurança de cada instância de banco de dados deve permitir a entrada e a saída da outra instância de banco de dados. As regras de entrada e saída do grupo de segurança podem se referir a grupos de segurança da mesma VPC ou de uma VPC emparelhada. Para obter mais informações, consulte [Ajuste de vínculos de banco de dados para uso com instâncias de bancos de dados em uma VPC](Appendix.Oracle.CommonDBATasks.DBLinks.md). 

O comando a seguir cria um link de banco de dados chamado `to_rds` que se conecta ao usuário mestre do Amazon RDS na instância de banco de dados de destino. 

```
CREATE DATABASE LINK to_rds 
  CONNECT TO <master_user_account> IDENTIFIED BY <password>
  USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<dns or ip address of remote db>)
         (PORT=<listener port>))(CONNECT_DATA=(SID=<remote SID>)))';
```

### Etapa 5: Copiar o arquivo de despejo exportado para a instância de banco de dados de destino usando DBMS\$1FILE\$1TRANSFER
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step5"></a>

Use `DBMS_FILE_TRANSFER` para copiar o arquivo de despejo da instância do banco de dados de origem para a instância de banco de dados de destino. O script a seguir copia um arquivo de despejo chamado sample.dmp da instância de origem para um link de banco de dados de destino chamado *to\$1rds* (criado na etapa anterior). 

```
BEGIN
  DBMS_FILE_TRANSFER.PUT_FILE(
    source_directory_object       => 'DATA_PUMP_DIR',
    source_file_name              => 'sample.dmp',
    destination_directory_object  => 'DATA_PUMP_DIR',
    destination_file_name         => 'sample_copied.dmp', 
    destination_database          => 'to_rds' );
END;
/
```

### Etapa 6: Importar o arquivo de dados para a instância de banco de dados de destino usando DBMS\$1DATAPUMP
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step6"></a>

Use o Oracle Data Pump para importar o esquema na instância de banco de dados. Opções adicionais, como METADATA\$1REMAP, podem ser necessárias. 

 Conecte-se à instância de banco de dados com a conta de usuário mestre do Amazon RDS para executar a importação. 

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN( 
    operation => 'IMPORT', 
    job_mode  => 'SCHEMA', 
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE( 
    handle    => v_hdnl, 
    filename  => 'sample_copied.dmp',
    directory => 'DATA_PUMP_DIR', 
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE( 
    handle    => v_hdnl, 
    filename  => 'sample_imp.log', 
    directory => 'DATA_PUMP_DIR', 
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'SCHEMA_EXPR','IN (''SCHEMA_1'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

**nota**  
Os trabalhos do Data Pump são iniciados de forma assíncrona. Para obter informações sobre o monitoramento de um trabalho do Data Pump, consulte [Monitoring Job Status (Monitorar status do trabalho)](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-E365D74E-12CD-495C-BA23-5A55F679C7E7) na documentação da Oracle. Você pode visualizar o conteúdo do log de importação usando o procedimento `rdsadmin.rds_file_util.read_text_file`. Para obter mais informações, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

Você pode verificar a importação de dados visualizando a tabela do usuário na instância de banco de dados. Por exemplo, a consulta a seguir retorna o número de tabelas para o `schema_1`. 

```
SELECT COUNT(*) FROM DBA_TABLES WHERE OWNER='SCHEMA_1'; 
```

### Etapa 7: Limpeza
<a name="Oracle.Procedural.Importing.DataPumpDBLink.Step7"></a>

Depois que os dados foram importados, você pode excluir os arquivos que não deseja manter. É possível listar os arquivos `DATA_PUMP_DIR` usando o seguinte comando.

```
SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('DATA_PUMP_DIR')) ORDER BY MTIME;
```

Para excluir arquivos no `DATA_PUMP_DIR` que não são mais necessários, use o comando a seguir. 

```
EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','<file name>');
```

Por exemplo, o seguinte comando exclui o arquivo chamado `"sample_copied.dmp"`. 

```
EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample_copied.dmp'); 
```

# Importar usando Oracle Export/Import
<a name="Oracle.Procedural.Importing.ExportImport"></a>

Pode ser útil considerar os utilitários Oracle Export/Import para migrações nas seguintes condições:
+ O volume dos seus dados é pequeno.
+ Tipos de dados como flutuante binário e duplo não são necessários.

O processo de importação cria os objetos de esquema necessários. Assim, você não precisa executar um script para criar os objetos antecipadamente. 

A maneira mais fácil de instalar o Oracle e os utilitários de exportação e importação, é instalar o Oracle Instant Client. Para baixar o software, acesse [https://www.oracle.com/database/technologies/instant-client.html](https://www.oracle.com/database/technologies/instant-client.html). Para obter a documentação, consulte [Instant Client for SQL\$1Loader, exportação e importação](https://docs.oracle.com/en/database/oracle/oracle-database/21/sutil/instant-client-sql-loader-export-import.html#GUID-FF1B6F75-09F5-4911-9317-9776FAD15965) no manual *Utilitários do banco de dados Oracle*.

**Como exportar e importar tabelas**

1. Exporte as tabelas do banco de dados de origem usando o comando `exp`.

   O comando a seguir exporta as tabelas chamadas `tab1`, `tab2` e `tab3`. O arquivo de despejo é `exp_file.dmp`.

   ```
   exp cust_dba@ORCL FILE=exp_file.dmp TABLES=(tab1,tab2,tab3) LOG=exp_file.log
   ```

   A exportação cria um arquivo de despejo binário que contém o esquema e os dados das tabelas especificadas. 

1. Importe o esquema e os dados em um banco de dados de destino usando o comando `imp`.

   O comando a seguir importa as tabelas `tab1`, `tab2` e `tab3` do arquivo de despejo `exp_file.dmp`.

   ```
   imp cust_dba@targetdb FROMUSER=cust_schema TOUSER=cust_schema \  
   TABLES=(tab1,tab2,tab3) FILE=exp_file.dmp LOG=imp_file.log
   ```

A exportação e a importação têm outras variações que podem ser mais adequadas às suas necessidades. Consulte a documentação do Oracle Database para obter detalhes completos.

# Importar usando o Oracle SQL\$1Loader
<a name="Oracle.Procedural.Importing.SQLLoader"></a>

Você pode usar o Oracle SQL\$1Loader para bancos de dados grandes que contêm um número limitado de objetos. Como o processo de exportação de um banco de dados de origem e carregamento em um banco de dados de destino é específico para o esquema, o exemplo a seguir cria os objetos de esquema de amostra, exporta de uma origem, depois carrega os dados em um banco de dados de destino. 

A maneira mais fácil de instalar o Oracle SQL\$1Loader é instalar o Oracle Instant Client. Para baixar o software, acesse [https://www.oracle.com/database/technologies/instant-client.html](https://www.oracle.com/database/technologies/instant-client.html). Para obter a documentação, consulte [Instant Client for SQL\$1Loader, exportação e importação](https://docs.oracle.com/en/database/oracle/oracle-database/21/sutil/instant-client-sql-loader-export-import.html#GUID-FF1B6F75-09F5-4911-9317-9776FAD15965) no manual *Utilitários do banco de dados Oracle*.

**Para importar dados usando o Oracle SQL\$1Loader**

1. Crie uma tabela de origem de exemplo usando a seguinte instrução SQL.

   ```
   CREATE TABLE customer_0 TABLESPACE users 
      AS (SELECT ROWNUM id, o.* 
          FROM   ALL_OBJECTS o, ALL_OBJECTS x 
          WHERE  ROWNUM <= 1000000);
   ```

1. Na instância de banco de dados de destino do RDS para Oracle, crie uma tabela de destino para carregar os dados. A cláusula `WHERE 1=2` garante que você copie a estrutura do `ALL_OBJECTS`, mas não copie nenhuma linha.

   ```
   CREATE TABLE customer_1 TABLESPACE users 
     AS (SELECT 0 AS ID, OWNER, OBJECT_NAME, CREATED
         FROM   ALL_OBJECTS
         WHERE  1=2);
   ```

1. Exporte os dados do banco de dados de origem para um arquivo de texto. O exemplo a seguir usa SQL\$1Plus. Para os seus dados, você provavelmente precisará gerar um script que faça a exportação para todos os objetos no banco de dados. 

   ```
   ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY/MM/DD HH24:MI:SS'
   
   SET LINESIZE 800 HEADING OFF FEEDBACK OFF ARRAY 5000 PAGESIZE 0
   SPOOL customer_0.out 
   SET MARKUP HTML PREFORMAT ON
   SET COLSEP ','
   
   SELECT id, owner, object_name, created 
   FROM   customer_0; 
   
   SPOOL OFF
   ```

1. Crie um arquivo de controle para descrever os dados. Talvez seja necessário escrever um script para realizar essa etapa. 

   ```
   cat << EOF > sqlldr_1.ctl 
   load data
   infile customer_0.out
   into table customer_1
   APPEND
   fields terminated by "," optionally enclosed by '"'
   (
     id           POSITION(01:10)    INTEGER EXTERNAL,
     owner        POSITION(12:41)    CHAR,
     object_name  POSITION(43:72)    CHAR,
     created      POSITION(74:92)    date "YYYY/MM/DD HH24:MI:SS"
   )
   ```

   Se necessário, copie os arquivos gerados pelo código anterior para uma área de teste, como uma instância do Amazon EC2.

1. Importe os dados usando o SQL\$1Loader com o nome de usuário e a senha apropriados para o banco de dados de destino. 

   ```
   sqlldr cust_dba@targetdb CONTROL=sqlldr_1.ctl BINDSIZE=10485760 READSIZE=10485760 ROWS=1000 
   ```

# Migrar com visualizações materializadas do Oracle
<a name="Oracle.Procedural.Importing.Materialized"></a>

Para migrar conjuntos de dados grandes de forma eficiente, use a replicação de visualizações materializadas do Oracle. Com a replicação, você pode manter as tabelas de destino sincronizadas com as tabelas de origem. Assim, você pode mudar para o Amazon RDS posteriormente, se necessário. 

Antes de poder migrar usando visualizações materializadas, cumpra os seguintes requisitos:
+ Configure o acesso do banco de dados de destino ao banco de dados de origem. No exemplo a seguir, as regras de acesso foram habilitadas no banco de dados de origem para permitir que o banco de dados de destino do RDS para Oracle se conecte à origem via SQL\$1Net. 
+ Crie um link de banco de dados entre a instância de banco de dados do RDS para Oracle e o banco de dados de origem.

**Como migrar dados usando visualizações materializadas**

1. Crie uma conta de usuário na instância de origem e na instância de destino do RDS para Oracle que podem se autenticar com a mesma senha. O exemplo a seguir cria um usuário denominado `dblink_user`.

   ```
   CREATE USER dblink_user IDENTIFIED BY my-password
     DEFAULT TABLESPACE users
     TEMPORARY TABLESPACE temp;
      
   GRANT CREATE SESSION TO dblink_user;
   
   GRANT SELECT ANY TABLE TO dblink_user;
   
   GRANT SELECT ANY DICTIONARY TO dblink_user;
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

1. Crie um link de banco de dados da instância de destino do RDS para Oracle com a instância de origem usando o usuário recém-criado.

   ```
   CREATE DATABASE LINK remote_site
     CONNECT TO dblink_user IDENTIFIED BY my-password
     USING '(description=(address=(protocol=tcp) (host=my-host) 
       (port=my-listener-port)) (connect_data=(sid=my-source-db-sid)))';
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

1. Teste o link:

   ```
   SELECT * FROM V$INSTANCE@remote_site;
   ```

1. Crie uma tabela de exemplo com uma chave primária e um log de visualização materializada na instância de origem.

   ```
   CREATE TABLE customer_0 TABLESPACE users 
     AS (SELECT ROWNUM id, o.* 
         FROM   ALL_OBJECTS o, ALL_OBJECTS x
         WHERE  ROWNUM <= 1000000);
   
   ALTER TABLE customer_0 ADD CONSTRAINT pk_customer_0 PRIMARY KEY (id) USING INDEX;
   
   CREATE MATERIALIZED VIEW LOG ON customer_0;
   ```

1. Na instância de banco de dados de destino do RDS para Oracle, crie uma visualização materializada. 

   ```
   CREATE MATERIALIZED VIEW customer_0 
     BUILD IMMEDIATE REFRESH FAST 
     AS (SELECT * 
         FROM   cust_dba.customer_0@remote_site);
   ```

1. Na instância de banco de dados de destino do RDS para Oracle, atualize a visualização materializada.

   ```
   EXEC DBMS_MVIEW.REFRESH('CUSTOMER_0', 'f');
   ```

1. Elimine a visualização materializada e inclua a cláusula `PRESERVE TABLE` para reter a tabela de contêineres de visualização materializada e seus conteúdos.

   ```
   DROP MATERIALIZED VIEW customer_0 PRESERVE TABLE;
   ```

   A tabela retida tem o mesmo nome que a visualização materializada que foi eliminada.

# Trabalhar com réplicas de leitura do Amazon RDS para Oracle
<a name="oracle-read-replicas"></a>

Para configurar a replicação entre instâncias de banco de dados Oracle, você pode criar bancos de dados de réplica. Para obter uma visão geral das réplicas de leitura do Amazon RDS, consulte [Visão geral das réplicas de leitura do Amazon RDSVisão geral](USER_ReadRepl.md#USER_ReadRepl.Overview). Para ver um resumo das diferenças entre réplicas do Oracle e outros mecanismos de banco de dados, consulte [Diferenças entre réplicas de leitura para mecanismos de banco de dados](USER_ReadRepl.Overview.Differences.md).

**Topics**
+ [

# Visão geral das réplicas do RDS para Oracle
](oracle-read-replicas.overview.md)
+ [

# Requisitos e considerações sobre réplicas do RDS para Oracle
](oracle-read-replicas.limitations.md)
+ [

# Preparar-se para criar uma réplica do Oracle
](oracle-read-replicas.Configuration.md)
+ [

# Criar uma réplica do RDS para Oracle no modo montado
](oracle-read-replicas.creating-in-mounted-mode.md)
+ [

# Modificar o modo da réplica do RDS para Oracle
](oracle-read-replicas.changing-replica-mode.md)
+ [

# Como trabalhar com backups de réplicas do RDS para Oracle
](oracle-read-replicas.backups.md)
+ [

# Executar uma alternância do Oracle Data Guard
](oracle-replication-switchover.md)
+ [

# Solução de problemas de réplicas do RDS para Oracle
](oracle-read-replicas.troubleshooting.md)
+ [

# Compactação de transporte de redo com RDS para Oracle
](oracle-read-replicas.redo-transport-compression.md)

# Visão geral das réplicas do RDS para Oracle
<a name="oracle-read-replicas.overview"></a>

Um banco de dados de *réplica do Oracle* é uma cópia física do seu banco de dados primário. Uma réplica do Oracle no modo somente leitura é chamada de *réplica de leitura*. Uma réplica do Oracle no modo montado é chamada de *réplica montada*. O Oracle Database não permite gravações em uma réplica, mas é possível promover uma réplica para torná-la gravável. A réplica de leitura promovida terá os dados replicados para o ponto quando a solicitação foi feita para promovê-la.

O vídeo a seguir apresenta uma visão geral útil da recuperação de desastres do RDS para Oracle. 

[![AWS Videos](http://img.youtube.com/vi/-XpzhIevwVg/0.jpg)](http://www.youtube.com/watch?v=-XpzhIevwVg)


Para obter mais informações, consulte os artigos do blog [Managed disaster recovery with Amazon RDS para Oracle cross-Region automated backups - Part 1](https://aws.amazon.com/blogs/database/managed-disaster-recovery-with-amazon-rds-for-oracle-cross-region-automated-backups-part-1/) (Recuperação de desastres gerenciada com backups automatizados do Amazon RDS para Oracle entre regiões, Parte 1) e [Managed disaster recovery with Amazon RDS para Oracle cross-Region automated backups - Part 2](https://aws.amazon.com/blogs/database/part-2-managed-disaster-recovery-with-amazon-rds-for-oracle-xrab/) (Recuperação de desastres gerenciada com backups automatizados do Amazon RDS para Oracle entre regiões, Parte 2).

**Topics**
+ [

## Réplicas somente leitura e montadas
](#oracle-read-replicas.overview.modes)
+ [

## Leia réplicas de CDBs
](#oracle-read-replicas.overview.data-guard)
+ [

## Retenção de logs redo arquivados
](#oracle-read-replicas.overview.log-retention)
+ [

## Interrupções durante a replicação do Oracle
](#oracle-read-replicas.overview.outages)

## Réplicas somente leitura e montadas
<a name="oracle-read-replicas.overview.modes"></a>

Ao criar ou modificar uma réplica do Oracle, você pode colocá-la em um dos seguintes modos:

Somente leitura  
Esse é o padrão. O Active Data Guard transmite e aplica alterações do banco de dados de origem a todos os bancos de dados da réplica de leitura.  
Você pode criar até cinco réplicas de leitura de uma instância de banco de dados de origem. Para obter informações gerais sobre réplicas de leitura que se aplicam a todos os mecanismos de banco de dados, consulte [Trabalhar com réplicas de leitura de instância de banco de dados](USER_ReadRepl.md). Para obter informações sobre o Oracle Data Guard, consulte [Oracle Data Guard Concepts and Administration](https://docs.oracle.com/en/database/oracle/oracle-database/19/sbydb/oracle-data-guard-concepts.html#GUID-F78703FB-BD74-4F20-9971-8B37ACC40A65) (Conceitos e administração do Oracle Data Guard) na documentação da Oracle.

Montada  
Nesse caso, a replicação usa o Oracle Data Guard, mas o banco de dados de réplica não aceita conexões de usuário. O principal uso para réplicas montadas é a recuperação de desastres entre regiões.  
Uma réplica montada não pode atender a uma workload somente leitura. A réplica montada exclui arquivos de log redo arquivados depois de aplicá-los, independentemente da política de retenção de logs arquivados.

É possível criar uma combinação de réplicas de banco de dados montadas e somente leitura para a mesma instância de banco de dados de origem. Você pode alterar uma réplica somente leitura para o modo montado ou alterar uma réplica montada para o modo somente leitura. Em ambos os casos, o banco de dados Oracle preserva a configuração de retenção de logs arquivados.

## Leia réplicas de CDBs
<a name="oracle-read-replicas.overview.data-guard"></a>

O RDS para Oracle é compatível com réplicas de leitura do Data Guard para CDBs do Oracle Database 19c e 21c nas configurações de locatário único e multilocatário. Você pode criar, gerenciar e promover réplicas de leitura em um CDB, assim como em um que não seja CDB. Também há suporte para réplicas montadas. Você obtém os seguintes benefícios:
+ Recuperação de desastres gerenciada, alta disponibilidade e acesso somente leitura às suas réplicas
+ A capacidade de criar réplicas de leitura em uma Região da AWS diferente.
+ Integração com as APIs de réplica de leitura existentes do RDS: [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html), [PromoteReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplica.html) e [SwitchoverReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html)

Para usar esse atributo, você precisa de uma licença do Active Data Guard e de uma licença do Oracle Database Enterprise Edition para as instâncias de banco de dados primárias e de réplica. Não há custos adicionais relacionados ao uso da arquitetura CDB. Você paga somente por suas instâncias de banco de dados. 

Para obter mais informações sobre as configurações de inquilino único e multilocatário da arquitetura CDB, consulte. [Visão geral dos CDBs RDS para Oracle](Oracle.Concepts.CDBs.md)

## Retenção de logs redo arquivados
<a name="oracle-read-replicas.overview.log-retention"></a>

Se uma instância de banco de dados primária não tiver réplicas de leitura entre regiões, o Amazon RDS para Oracle manterá um mínimo de duas horas de redo logs arquivados na instância de banco de dados de origem. Isso é válido independentemente da configuração para `archivelog retention hours` em `rdsadmin.rdsadmin_util.set_configuration`. 

O RDS limpa logs da instância de banco de dados de origem após duas horas ou após o tempo definido na configuração de horas de retenção do log de arquivamento, o que for maior. O RDS limpará logs da réplica de leitura depois que após o tempo da configuração de horas de retenção de logs arquivados somente se esses logs tiverem sido aplicados com êxito ao banco de dados.

Em alguns casos, uma instância de banco de dados primária pode ter uma ou mais réplicas de leitura entre regiões. Nesse caso, o Amazon RDS for Oracle mantém os logs de transações na instância do banco de dados de origem até que eles tenham sido transmitidos e aplicados a todas as réplicas de leitura entre regiões. Para obter informações sobre `rdsadmin.rdsadmin_util.set_configuration`, consulte o tópico sobre [Retenção de logs redo arquivados](Appendix.Oracle.CommonDBATasks.RetainRedoLogs.md).

## Interrupções durante a replicação do Oracle
<a name="oracle-read-replicas.overview.outages"></a>

Ao criar uma réplica de leitura, o Amazon RDS faz um snapshot do banco de dados da sua instância de banco de dados de origem e inicia a replicação. A instância de banco de dados de origem sofre uma suspensão de E/S muito breve quando a operação de snapshot do banco de dados se inicia. A suspensão de E/S geralmente dura um segundo. Você pode evitar a suspensão de E/S se a instância de banco de dados de origem for uma implantação multi-AZ. Nesse caso, o snapshot é retirado da instância de banco de dados secundária.

O snapshot de banco de dados torna-se a réplica do Oracle. O Amazon RDS define as permissões e os parâmetros necessários para o banco de dados de origem e para a réplica sem interrupção do serviço. Da mesma forma, se você excluir uma réplica, nenhuma interrupção ocorrerá.

# Requisitos e considerações sobre réplicas do RDS para Oracle
<a name="oracle-read-replicas.limitations"></a>

Antes de criar uma réplica do Oracle, familiarize-se com os seguintes requisitos e considerações.

**Topics**
+ [

## Requisitos de versão e licenciamento para réplicas do RDS para Oracle
](#oracle-read-replicas.limitations.versions-and-licenses)
+ [

## Limitações do grupo de opções de réplicas do RDS para Oracle
](#oracle-read-replicas.limitations.options)
+ [

## Considerações sobre backup e restauração de réplicas do RDS para Oracle
](#oracle-read-replicas.limitations.backups)
+ [

## Requisitos e limitações do Oracle Data Guard para as réplicas do RDS para Oracle
](#oracle-read-replicas.data-guard.requirements)
+ [

## Limitações da configuração de multilocatário em réplicas do RDS para Oracle
](#oracle-read-replicas.limitations.multitenant)
+ [

## Considerações diversas sobre réplicas do RDS para Oracle
](#oracle-read-replicas.limitations.miscellaneous)

## Requisitos de versão e licenciamento para réplicas do RDS para Oracle
<a name="oracle-read-replicas.limitations.versions-and-licenses"></a>

Antes de criar uma réplica do RDS para Oracle, considere o seguinte:
+ Se a réplica estiver no modo somente leitura, verifique se você tem uma licença do Active Data Guard. Se você colocar a réplica no modo montado, não precisará de uma licença do Active Data Guard. Somente o mecanismo de banco de dados Oracle oferece suporte a réplicas montadas.
+ As réplicas do Oracle são compatíveis apenas com o Oracle Enterprise Edition (EE).
+ As réplicas não CDB do Oracle são compatíveis somente com instâncias de banco de dados criadas por meio de instâncias não CDB que executam o Oracle Database 19c.
+ Réplicas do Oracle estão disponíveis somente para instâncias de banco de dados em execução em classes de instância de banco de dados com duas ou mais vCPUs. Uma instância de banco de dados de origem não pode usar a classe de instância db.t3.small.
+ A versão do mecanismo de banco de dados Oracle da instância de banco de dados de origem e todas as réplicas devem ser iguais. O Amazon RDS atualiza as réplicas imediatamente após a atualização da instância de banco de dados de origem, desconsiderando a janela de manutenção de uma réplica. Para atualizações de versões principais de réplicas entre regiões, o Amazon RDS faz automaticamente o seguinte:
  + Gera um grupo de opções para a versão de destino.
  + Copia todas as opções e as configurações de opção do grupo de opções original para o novo grupo de opções.
  + Associa a réplica entre regiões atualizada ao novo grupo de opções.

  Para obter mais informações sobre como atualizar a versão do mecanismo de banco de dados, consulte [Fazer upgrade do mecanismo de banco de dados RDS para Oracle](USER_UpgradeDBInstance.Oracle.md).

## Limitações do grupo de opções de réplicas do RDS para Oracle
<a name="oracle-read-replicas.limitations.options"></a>

Ao trabalhar com grupos de opções para sua réplica do RDS para Oracle, considere o seguinte:
+ Não é possível usar um grupo de opções de réplica diferente do grupo de opções da instância de banco de dados de origem quando a origem e a réplica estão na mesma região da AWS. 

  Modificações no grupo de opções de origem ou na associação do grupo de opções de origem são propagadas para as réplicas do Oracle. Essas alterações serão aplicadas às réplicas logo depois de serem aplicadas à instância de banco de dados de origem, independentemente da janela de manutenção da réplica. Para ter mais informações sobre grupos de opções, consulte [Trabalhar com grupos de opções](USER_WorkingWithOptionGroups.md).
+ Não é possível remover uma réplica entre regiões do RDS para Oracle do respectivo grupo de opções dedicado, que é criado automaticamente para a réplica. 
+ Não é possível adicionar o grupo de opções dedicado a uma réplica entre regiões do RDS para Oracle a uma instância de banco de dados diferente. 
+ Não é possível adicionar nem remover opções não replicadas de um grupo de opções dedicado para uma réplica entre regiões do RDS para Oracle, com exceção das seguintes opções:
  + `NATIVE_NETWORK_ENCRYPTION`
  + `OEM`
  + `OEM_AGENT`
  + `SSL`

  Para adicionar outras opções a uma réplica entre regiões do RDS para Oracle, adicione-as ao grupo de opções da instância de banco de dados de origem. A opção também é instalada em todas as réplicas da instância do banco de dados de origem. Para opções licenciadas, verifique se existem licenças suficientes para as réplicas.

  Quando você promove uma réplica entre regiões do RDS para Oracle, a réplica promovida se comporta da mesma maneira que outras instâncias de banco de dados do Oracle, inclusive com relação ao gerenciamento das opções. Você pode promover uma réplica, explícita ou implicitamente, excluindo a instância de banco de dados de origem.

  Para obter mais informações sobre grupos de opções, consulte [Trabalhar com grupos de opções](USER_WorkingWithOptionGroups.md).
+ Não é possível adicionar a opção `EFS_INTEGRATION` às réplicas entre regiões do RDS para Oracle.

## Considerações sobre backup e restauração de réplicas do RDS para Oracle
<a name="oracle-read-replicas.limitations.backups"></a>

Antes de criar uma réplica do RDS para Oracle, considere o seguinte:
+ Para criar snapshots de réplicas do RDS para Oracle ou ativar backups automáticos, defina o período de retenção de backup manualmente. Por padrão, os backups automáticos não estão ativados.
+ Ao restaurar um backup de réplica, você restaura para a hora do banco de dados, não para a hora de criação do backup. A hora do banco de dados se refere ao horário de transação mais recente aplicado dos dados no backup. A diferença é significativa porque uma réplica pode apresentar atraso de minutos ou horas em relação à primária. 

  Para descobrir a diferença, use o comando `describe-db-snapshots`. Compare `snapshotDatabaseTime`, que é a hora do banco de dados do backup da réplica, e o campo `OriginalSnapshotCreateTime`, que é a última transação aplicada no banco de dados primária.

## Requisitos e limitações do Oracle Data Guard para as réplicas do RDS para Oracle
<a name="oracle-read-replicas.data-guard.requirements"></a>

Antes de criar uma réplica do RDS para Oracle, observe os seguintes requisitos e limitações:
+ Se a instância de banco de dados primário usa a configuração de locatário único ou de multilocatário da arquitetura multilocatário, pense no seguinte:
  + Você deve usar o Oracle Database 19c ou posterior com a Enterprise Edition.
  + Sua instância primária de CDB deve estar no ciclo de vida `ACTIVE`.
  + Você não pode converter uma instância primária que não seja CDB em uma instância de CDB e converter as respectivas réplicas na mesma operação. Em vez disso, exclua as réplicas que não são do CDB, converta a instância de banco de dados primária em um CDB e, depois, crie réplicas.
+ Um acionador de login em uma instância primária de banco de dados deve permitir o acesso ao usuário `RDS_DATAGUARD` e a qualquer usuário cujo valor `AUTHENTICATED_IDENTITY` seja `RDS_DATAGUARD` ou `rdsdb`. Além disso, o gatilho não deve definir o esquema atual para o usuário `RDS_DATAGUARD`.
+ Para evitar o bloqueio de conexões do processo do agente do Data Guard, não ative sessões restritas. Para obter mais informações sobre sessões restritas, consulte [Habilitar e desabilitar sessões restritas](Appendix.Oracle.CommonDBATasks.RestrictedSession.md).

## Limitações da configuração de multilocatário em réplicas do RDS para Oracle
<a name="oracle-read-replicas.limitations.multitenant"></a>

Ao usar a configuração de multilocatário em uma réplica do RDS para Oracle, observe as seguintes limitações:
+ É possível criar, excluir ou modificar bancos de dados de locatários somente na instância de banco de dados primário. Essas alterações se propagam automaticamente para as réplicas.
+ Não é possível criar bancos de dados de locatários em um RDS para Oracle primário, de origem ou de réplica com um conjunto de caracteres personalizado. Se você precisar de um conjunto de caracteres personalizado, crie os bancos de dados de locatários antes de criar réplicas de leitura para a instância de banco de dados.

## Considerações diversas sobre réplicas do RDS para Oracle
<a name="oracle-read-replicas.limitations.miscellaneous"></a>

Antes de criar uma réplica do RDS para Oracle, considere o seguinte:
+ Quando você está criando uma réplica do RDS para Oracle para uma instância de banco de dados que tenha volumes de armazenamento adicionais, o RDS configura automaticamente volumes de armazenamento adicionais na réplica. No entanto, nenhuma modificação subsequente feita nos volumes de armazenamento da sua instância de banco de dados primária é aplicada automaticamente à réplica. 
+ Se você adicionar volumes de armazenamento à sua instância de banco de dados primária, o RDS não adicionará automaticamente volumes de armazenamento adicionais à réplica. Você precisa modificar sua réplica para adicionar mais volumes de armazenamento. 
+ Se você modificar a configuração dos volumes de armazenamento, como tamanho do armazenamento e IOPS em sua instância de banco de dados primária, o RDS não vai modificar automaticamente os volumes de armazenamento na réplica. Você precisa modificar sua réplica para atualizar as configurações do volume de armazenamento.
+ Ao gerenciar localizações de arquivos de dados em vários volumes, observe que as alterações feitas na sua instância primária não são sincronizadas automaticamente com as réplicas.
  + Para réplicas somente leitura: você pode usar as configurações de grupos de parâmetros para controlar os locais padrão dos arquivos ou mover manualmente os arquivos após sua criação.
  + Para réplicas montadas: alterações manuais nos locais dos arquivos de dados no banco de dados primário exigem a recriação da réplica montada para refletir essas alterações. Para evitar isso, recomendamos o uso das configurações do grupo de parâmetros para gerenciar os locais padrão dos arquivos.
+ Se a instância de banco de dados for a origem de uma ou mais réplicas entre regiões, o banco de dados de origem reterá os arquivos de log redo arquivados até que sejam aplicados em todas as réplicas entre regiões. Os logs redo arquivados podem resultar em aumento no consumo de armazenamento.
+ Para evitar interromper a automação do RDS, os gatilhos do sistema devem permitir que usuários específicos façam logon no banco de dados primário e de réplica. [Os gatilhos do sistema](https://docs.oracle.com/en/database/oracle/oracle-database/19/lnpls/plsql-triggers.html#GUID-FE23FCE8-DE36-41EF-80A9-6B4B49E80E5B) incluem disparadores de função DDL, logon e banco de dados. Recomendamos que você adicione código aos seus gatilhos para excluir os usuários listados no seguinte código de exemplo:

  ```
  -- Determine who the user is
  SELECT SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') INTO CURRENT_USER FROM DUAL;
  -- The following users should always be able to login to either the Primary or Replica
  IF CURRENT_USER IN ('master_user', 'SYS', 'SYSTEM', 'RDS_DATAGUARD', 'rdsdb') THEN
  RETURN;
  END IF;
  ```
+ O rastreamento de alterações de bloco é compatível com réplicas somente leitura, mas não com réplicas montadas. Você pode alterar uma réplica montada para uma réplica somente leitura e habilitar o rastreamento de alterações de bloco. Para obter mais informações, consulte [Habilitar e desabilitar o controle de alterações de bloco](Appendix.Oracle.CommonDBATasks.BlockChangeTracking.md).
+ Não é possível criar uma réplica de leitura do Oracle quando o banco de dados de origem gerencia as credenciais do usuário principal com o Secrets Manager.

# Preparar-se para criar uma réplica do Oracle
<a name="oracle-read-replicas.Configuration"></a>

Antes de começar a usar a réplica, execute as tarefas a seguir.

**Topics**
+ [

## Habilitar backups automáticos
](#oracle-read-replicas.configuration.autobackups)
+ [

## Habilitar o modo de registro em log forçado
](#oracle-read-replicas.configuration.force-logging)
+ [

## Alterar a configuração do registro em log
](#oracle-read-replicas.configuration.logging-config)
+ [

## Definir o parâmetro MAX\$1STRING\$1SIZE
](#oracle-read-replicas.configuration.string-size)
+ [

## Planejar recursos de computação e de armazenamento
](#oracle-read-replicas.configuration.planning-resources)

## Habilitar backups automáticos
<a name="oracle-read-replicas.configuration.autobackups"></a>

Antes que uma instância de banco de dados possa servir como uma instância de banco de dados de origem, habilite backups automáticos na instância de banco de dados de origem. Para saber como executar esse procedimento, consulte [Ativar backups automáticos](USER_WorkingWithAutomatedBackups.Enabling.md).

## Habilitar o modo de registro em log forçado
<a name="oracle-read-replicas.configuration.force-logging"></a>

Recomendamos que você habilite o modo de registro em log forçado. No modo de registro em log forçado, o banco de dados Oracle grava registros de redo mesmo quando `NOLOGGING` é usado com instruções da linguagem de definição de dados (DDL).

**Como habilitar o modo de registro em log forçado**

1. Faça login no banco de dados Oracle usando uma ferramenta cliente, como o SQL Developer.

1. Habilite o modo de registro em log forçado executando o procedimento a seguir. 

   ```
   exec rdsadmin.rdsadmin_util.force_logging(p_enable => true);
   ```

Para obter mais informações sobre esse procedimento, consulte [Definição do registro em log forçado](Appendix.Oracle.CommonDBATasks.Log.md#Appendix.Oracle.CommonDBATasks.SettingForceLogging).

## Alterar a configuração do registro em log
<a name="oracle-read-replicas.configuration.logging-config"></a>

Para *n* redo logs on-line de tamanho *m*, o RDS cria automaticamente *n* \$11 logs em espera de tamanho *m* na instância de banco de dados primária e em todas as réplicas. Sempre que você altera a configuração de registro em log na primária, as alterações se propagam automaticamente para as réplicas. 

Se você alterar a configuração de registro em log, pense nestas diretrizes:
+ Recomendamos concluir as alterações antes de transformar uma instância de banco de dados na fonte das réplicas. O RDS para Oracle também é compatível com a atualização da instância depois que ela se torna uma fonte.
+ Antes de alterar a configuração de registro em log na instância de banco de dados primária, confira se cada réplica tem armazenamento suficiente para acomodar a nova configuração. 

É possível modificar a configuração de registro em log de uma instância de banco de dados usando os procedimentos do Amazon RDS `rdsadmin.rdsadmin_util.add_logfile` e `rdsadmin.rdsadmin_util.drop_logfile`. Para obter mais informações, consulte [Adição de logs redo online](Appendix.Oracle.CommonDBATasks.Log.md#Appendix.Oracle.CommonDBATasks.RedoLogs) e [Descarte de logs redo online](Appendix.Oracle.CommonDBATasks.Log.md#Appendix.Oracle.CommonDBATasks.DroppingRedoLogs).

## Definir o parâmetro MAX\$1STRING\$1SIZE
<a name="oracle-read-replicas.configuration.string-size"></a>

Antes de criar uma réplica do Oracle, verifique se a configuração do parâmetro `MAX_STRING_SIZE` é a mesma na instância de banco de dados de origem e na réplica. Isso pode ser feito associando-os ao mesmo grupo de parâmetros. Se tiver diferentes grupos de parâmetros para a origem e a réplica, você poderá definir `MAX_STRING_SIZE` com o mesmo valor. Para obter mais informações sobre como configurar esse parâmetro, consulte [Ativar tipos de dados estendidos para uma nova instância de banco de dados](Oracle.Concepts.ExtendedDataTypes.md#Oracle.Concepts.ExtendedDataTypes.CreateDBInstance).

## Planejar recursos de computação e de armazenamento
<a name="oracle-read-replicas.configuration.planning-resources"></a>

Verifique se a instância de banco de dados de origem e suas réplicas estão dimensionadas corretamente, em termos de computação e armazenamento, para atender às suas cargas operacionais. Se uma réplica atingir a capacidade de recursos de computação, rede ou armazenamento, a réplica deixará de receber ou aplicar alterações de sua origem. O Amazon RDS for Oracle não intervém para atenuar atrasos altos de replicação entre uma instância de banco de dados de origem e suas réplicas. É possível modificar os recursos de armazenamento e de CPU de uma réplica independentemente de sua origem e de outras réplicas.

# Criar uma réplica do RDS para Oracle no modo montado
<a name="oracle-read-replicas.creating-in-mounted-mode"></a>

Por padrão, as réplicas do Oracle são somente leitura. Para criar uma réplica no modo montado, use o console, a AWS CLI ou a API do RDS.

## Console
<a name="oracle-read-replicas.creating-in-mounted-mode.console"></a>

**Como criar uma réplica montada de uma instância de banco de dados Oracle de origem**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha a instância de banco de dados Oracle que você deseja usar como origem para uma réplica montada.

1. Em **Actions (Ações)**, escolha **Create replica (Criar réplica)**. 

1. Em **Replica mode (Modo de réplica)**, escolha **Mounted (Montado)**.

1. Escolha as configurações que deseja usar. Em **DB instance identifier (Identificador da instância de banco de dados)**, insira um nome para a réplica de leitura. Ajuste outras configurações, conforme necessário.

1. Em **Regions (Regiões)**, escolha a região onde a réplica montada será iniciada. 

1. Escolha o tamanho da instância e o tipo de armazenamento. Recomendamos que você use a classe de instância de banco de dados e o tipo de armazenamento iguais aos da instância de banco de dados de origem na réplica de leitura.

1. Em **Multi-AZ deployment (Implantação Multi-AZ)**, escolha **Create a standby instance (Criar uma instância de espera)** para criar uma versão de espera de sua réplica em outra zona de disponibilidade a fim de oferecer suporte de failover para a réplica montada. Você pode criar a réplica montada como uma instância de banco de dados Multi-AZ independentemente de o banco de dados de origem ser ou não uma instância de banco de dados Multi-AZ.

1. Escolha as outras configurações que deseja usar.

1. Escolha **Create replica (Criar réplica)**.

Na página **Databases (Bancos de dados)**, a réplica montada tem a função Réplica.

## AWS CLI
<a name="oracle-read-replicas.creating-in-mounted-mode.cli"></a>

Para criar uma réplica do Oracle no modo montado, defina `--replica-mode` como `mounted` no comando [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) da AWS CLI.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --source-db-instance-identifier mydbinstance \
    --replica-mode mounted
```
Para Windows:  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier myreadreplica ^
    --source-db-instance-identifier mydbinstance ^
    --replica-mode mounted
```

Para alterar uma réplica somente leitura para um estado montado, defina `--replica-mode` como `mounted` no comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da AWS CLI. Para colocar uma réplica montada no modo somente leitura, defina `--replica-mode` como `open-read-only`. 

## API do RDS
<a name="oracle-read-replicas.creating-in-mounted-mode.api"></a>

Para criar uma réplica do Oracle no modo montado, especifique `ReplicaMode=mounted` na operação de API [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) do RDS.

# Modificar o modo da réplica do RDS para Oracle
<a name="oracle-read-replicas.changing-replica-mode"></a>

Para alterar o modo de uma réplica existente, use o console, a AWS CLI ou a API do RDS. Quando você altera para o modo montado, a réplica desconecta todas as conexões ativas. Quando você muda para o modo somente leitura, o Amazon RDS inicializa o Active Data Guard.

A operação de alteração pode levar alguns minutos. Durante a operação, o status da instância de banco de dados muda para **modifying (modificando)**. Para obter mais informações sobre alterações de status, consulte [Visualizar o status de uma instância de banco de dados do Amazon RDS](accessing-monitoring.md#Overview.DBInstance.Status).

## Console
<a name="oracle-read-replicas.changing-replica-mode.console"></a>

**Como alterar o modo de uma réplica do Oracle de montada para somente leitura**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)**.

1. Escolha o banco de dados de réplica montada.

1. Selecione **Modify**.

1. Em **Replica mode (Modo de réplica)**, escolha **Read-only (Somente leitura)**.

1. Escolha as outras configurações que deseja alterar.

1. Escolha **Continue**.

1. Em **Scheduling of modifications (Programação de modificações)**, selecione **Apply immediately (Aplicar imediatamente)**.

1. Selecione **Modify DB instance (Modificar instância de banco de dados)**.

## AWS CLI
<a name="oracle-read-replicas.changing-replica-mode.cli"></a>

Para alterar uma réplica de leitura para o modo montado, defina `--replica-mode` como `mounted` no comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da AWS CLI. Para alterar uma réplica montada para o modo somente leitura, defina `--replica-mode` como `open-read-only`.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier myreadreplica \
    --replica-mode mode
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier myreadreplica ^
    --replica-mode mode
```

## API do RDS
<a name="oracle-read-replicas.changing-replica-mode.api"></a>

Para alterar uma réplica somente leitura para o modo montado, defina `ReplicaMode=mounted` em [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html). Para alterar uma réplica montada para o modo somente leitura, defina `ReplicaMode=read-only`.

# Como trabalhar com backups de réplicas do RDS para Oracle
<a name="oracle-read-replicas.backups"></a>

Você pode criar e restaurar backups de uma réplica do RDS para Oracle. Tanto backups automáticos como snapshots manuais são compatíveis. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md). As seções a seguir descrevem as principais diferenças entre o gerenciamento de backups de uma primária e de uma réplica do RDS para Oracle.

## Ativar backups de réplicas do RDS para Oracle
<a name="oracle-read-replicas.backups.turning-on"></a>

Uma réplica do Oracle não tem o recurso de backups automatizados ativado por padrão. Ative o recurso de backups automáticos configurando o período de retenção de backup para um valor positivo diferente de zero.

### Console
<a name="USER_WorkingWithAutomatedBackups.Enabling.CON"></a>

**Para habilitar imediatamente backups automáticos**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Bancos de dados** e selecione a instância de banco de dados ou o cluster de banco de dados multi-AZ que você deseja modificar.

1. Escolha **Modificar**.

1. Em **Backup Retention Period** (Período de retenção de backup), escolha um valor positivo diferente de zero; por exemplo, três dias.

1. Escolha **Continue**.

1. Escolha **Apply immediately (Aplicar imediatamente)**.

1. Escolha **Modificar instância de banco de dados** ou **Modificar cluster** para salvar as alterações e ativar os backups automatizados.

### AWS CLI
<a name="USER_WorkingWithAutomatedBackups.Enabling.CLI"></a>

Para habilitar backups automatizados, use o comando AWS CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) ou [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html).

Inclua os seguintes parâmetros:
+ `--db-instance-identifier` (ou `--db-cluster-identifier` para um cluster de banco de dados multi-AZ)
+ `--backup-retention-period`
+ `--apply-immediately` ou `--no-apply-immediately`

No exemplo a seguir, habilitamos backups automatizados definindo o período de retenção de backup como três dias. As alterações são aplicadas imediatamente.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my_db_instance  \
    --backup-retention-period 3 \
    --apply-immediately
```
Para Windows:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my_db_instance  ^
    --backup-retention-period 3 ^
    --apply-immediately
```

### API do RDS
<a name="USER_WorkingWithAutomatedBackups.Enabling.API"></a>

Para habilitar backups automatizados, use a operação [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) ou [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) da API do RDS com os seguintes parâmetros obrigatórios:
+ `DBInstanceIdentifier` ou `DBClusterIdentifier`
+ `BackupRetentionPeriod`

## Restaurar um backup de réplica do RDS para Oracle
<a name="oracle-read-replicas.backups.restoring"></a>

Você pode restaurar um backup de réplica do Oracle da mesma forma que pode restaurar um backup da instância primária. Para obter mais informações, consulte:
+ [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md)
+ [Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS](USER_PIT.md)

A principal consideração ao restaurar um backup de réplica é determinar o momento para o qual está restaurando. A hora do banco de dados se refere ao horário de transação mais recente aplicado dos dados no backup. Ao restaurar um backup de réplica, você restaura para a hora do banco de dados, não para a hora em que o backup foi concluído. A diferença é significativa porque uma réplica do RDS para Oracle pode apresentar atraso de minutos ou horas em relação à primária. Portanto, a hora do banco de dados de um backup de réplica e, consequentemente, o momento para o qual vai restaurar podem ser muito antes do horário de criação do backup.

Para encontrar a diferença entre a hora do banco de dados e o horário de criação, use o comando `describe-db-snapshots`. Compare `SnapshotDatabaseTime`, que é a hora do banco de dados do backup da réplica, e o campo `OriginalSnapshotCreateTime`, que é a última transação aplicada no banco de dados primária. O exemplo a seguir mostra a diferença entre as duas horas:

```
aws rds describe-db-snapshots \
    --db-instance-identifier my-oracle-replica
    --db-snapshot-identifier my-replica-snapshot

{
    "DBSnapshots": [
        {
            "DBSnapshotIdentifier": "my-replica-snapshot",
            "DBInstanceIdentifier": "my-oracle-replica", 
            "SnapshotDatabaseTime": "2022-07-26T17:49:44Z",
            ...
            "OriginalSnapshotCreateTime": "2021-07-26T19:49:44Z"
        }
    ]
}
```

# Executar uma alternância do Oracle Data Guard
<a name="oracle-replication-switchover"></a>

Uma *alternância* é uma inversão de funções entre um banco de dados primário e um banco de dados em espera. Durante uma alternância, o banco de dados primário original faz a transição para uma função em espera, enquanto o banco de dados auxiliar original faz a transição para a função principal.

Em um ambiente Oracle Data Guard, um banco de dados primário oferece suporte a um ou mais bancos de dados em espera. Você pode executar uma transição de função gerenciada e baseada em alternância de um banco de dados primário para um banco de dados em espera. Uma *alternância* é uma inversão de funções entre um banco de dados primário e um banco de dados em espera. Durante uma alternância, o banco de dados primário original faz a transição para uma função em espera, enquanto o banco de dados auxiliar original faz a transição para a função principal.

**Topics**
+ [

## Visão geral da alternância do Oracle Data Guard
](#oracle-replication-switchover.overview)
+ [

# Requisitos para a transição do Oracle Data Guard
](oracle-switchover.preparing.md)
+ [

# Iniciar a alternância do Oracle Data Guard
](oracle-switchover.initiating.md)
+ [

# Monitorar a alternância do Oracle Data Guard
](oracle-switchover.monitoring.md)

## Visão geral da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview"></a>

O Amazon RDS oferece suporte a uma transição de função totalmente gerenciada e baseada em alternância para réplicas do Oracle Database. Você pode iniciar uma alternância somente para um banco de dados em espera montado ou aberto somente para leitura. 

As réplicas podem residir em Regiões da AWS separadas ou em diferentes zonas de disponibilidade (AZs) de uma única região. Todas as Regiões da AWS são aceitas. 

![\[Fazer a transição de uma instância em espera para torná-la a instância de banco de dados primária\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/read-replica-switchover.png)


A transição é diferente da promoção de réplicas de leitura. Em uma transição, as instâncias de banco de dados de origem e réplica mudam de função. Em uma promoção, uma réplica de leitura se torna uma instância de banco de dados de origem, mas a instância de banco de dados de origem não se torna uma réplica. Para obter mais informações, consulte [Promoção de uma réplica de leitura a uma instância de banco de dados autônoma](USER_ReadRepl.Promote.md).

**Topics**
+ [

### Benefícios da alternância do Oracle Data Guard
](#oracle-replication-switchover.overview.benefits)
+ [

### Versões compatíveis do Oracle Database
](#oracle-replication-switchover.overview.engine-support)
+ [

### Custo da alternância do Oracle Data Guard
](#oracle-replication-switchover.overview.cost)
+ [

### Como funciona a alternância do Oracle Data Guard
](#oracle-replication-switchover.overview.how-it-works)

### Benefícios da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.benefits"></a>

Assim como no caso das réplicas de leitura do RDS para Oracle, uma alternância gerenciada depende do Oracle Data Guard. A operação foi criada para não ter nenhuma perda de dados. O Amazon RDS automatiza os seguintes aspectos da alternância:
+ Inverte as funções do banco de dados primária e do banco de dados em espera especificado, colocando o novo banco de dados em espera no mesmo estado (montado ou somente para leitura) do em espera original
+ Garante a consistência de dados
+ Mantém sua configuração de replicação após a transição
+ Oferece suporte a reversões repetidas, permitindo que seu novo banco de dados em espera retorne à sua função primária original

### Versões compatíveis do Oracle Database
<a name="oracle-replication-switchover.overview.engine-support"></a>

O Oracle Database 19c e versões posteriores comportam a transição do Oracle Data Guard.

### Custo da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.cost"></a>

O recurso de alternância do Oracle Data Guard não está sujeito a custos adicionais. O Oracle Database Enterprise Edition inclui suporte a bancos de dados em espera no modo montado. Para abrir bancos de dados em espera no modo somente leitura, você precisa da opção Oracle Active Data Guard.

### Como funciona a alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works"></a>

A alternância do Oracle Data Guard é uma operação totalmente gerenciada. Você pode iniciar a alternância para um banco de dados em espera chamando o comando da CLI `switchover-read-replica`. Em seguida, o Amazon RDS modifica as funções primárias e em espera em sua configuração de replicação.

A *em espera original* e a *primário original* são as funções que existem antes da alternância. A *nova em espera* e a *novo primário* são as funções que existem após a alternância. Uma *réplica do espectador* é um banco de dados de réplica que serve como banco de dados em espera no ambiente Oracle Data Guard, mas não está alternando de funções.

**Topics**
+ [

#### Etapas da alternância do Oracle Data Guard
](#oracle-replication-switchover.overview.how-it-works.during-switchover)
+ [

#### Após a alternância do Oracle Data Guard
](#oracle-replication-switchover.overview.how-it-works.after-switchover)

#### Etapas da alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works.during-switchover"></a>

Para realizar a alternância, o Amazon RDS deve seguir as seguintes etapas:

1. Bloqueie novas transações no banco de dados primário original. Durante a alternância, o Amazon RDS interrompe a replicação de todos os bancos de dados em sua configuração do Oracle Data Guard. Durante a alternância, o banco de dados primário original não pode processar solicitações de gravação.

1. Envie as transações não aplicadas para o banco de dados em espera original e aplique-as.

1. Reinicie o novo banco de dados em espera no modo somente leitura ou montado. O modo depende do estado aberto do banco de dados em espera original antes da alternância.

1. Abra o novo banco de dados primário no modo de leitura/gravação.

#### Após a alternância do Oracle Data Guard
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover"></a>

O Amazon RDS alterna as funções do banco de dados primário e do banco de dados em espera. Você é responsável por reconectar sua aplicação e realizar qualquer outra configuração desejada.

**Topics**
+ [

##### Critérios de sucesso
](#oracle-replication-switchover.overview.how-it-works.after-switchover.success)
+ [

##### Conexão com o novo banco de dados primário
](#oracle-replication-switchover.overview.how-it-works.after-switchover.connection)
+ [

##### Configuração do novo banco de dados primário
](#oracle-replication-switchover.overview.how-it-works.after-switchover.success.configuration)

##### Critérios de sucesso
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.success"></a>

A alternância do Oracle Data Guard é bem-sucedida quando o banco de dados em espera original faz o seguinte:
+ Transições para sua função como novo banco de dados primário
+ Conclui sua reconfiguração

Para limitar o tempo de inatividade, seu novo banco de dados primário se torna ativo o mais rápido possível. Como o Amazon RDS configura réplicas de espectador de forma assíncrona, essas réplicas podem se tornar ativas após o banco de dados primário original.

##### Conexão com o novo banco de dados primário
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.connection"></a>

O Amazon RDS não propagará suas conexões de banco de dados atuais para o novo banco de dados primário após a alternância. Após a conclusão da alternância do Oracle Data Guard, reconecte sua aplicação ao novo banco de dados primário.

##### Configuração do novo banco de dados primário
<a name="oracle-replication-switchover.overview.how-it-works.after-switchover.success.configuration"></a>

Para realizar uma alternância para o novo banco de dados primário, o Amazon RDS altera o modo do banco de dados em espera original a ser aberto. A mudança na função é a única alteração no banco de dados. O Amazon RDS não configura recursos como a replicação Multi-AZ.

Se você realizar uma alternância para uma réplica entre regiões com opções diferentes, o novo banco de dados primário manterá suas próprias opções. O Amazon RDS não migrará as opções no banco de dados primário original. Se o banco de dados primário original tiver opções como SSL, NNE, OEM e OEM\$1AGENT, o Amazon RDS não as propagará para o novo banco de dados primário.

# Requisitos para a transição do Oracle Data Guard
<a name="oracle-switchover.preparing"></a>

Antes de iniciar a alternância do Oracle Data Guard, verifique se o seu ambiente de replicação atende aos seguintes requisitos:
+ O banco de dados em espera original é montado ou aberto somente para leitura.
+ Os backups automáticos são habilitados no banco de dados em espera original.
+ O banco de dados primário original e o banco de dados em espera original estão no estado `available`.
+ O banco de dados primário original e o banco de dados em espera original não têm ações de manutenção pendentes em nenhum destes estados: `required`, `next window` ou `in progress`. As ações nesses estados bloqueiam a transição. Para saber como verificar o status de atualizações de manutenção pendentes, consulte [Visualizar atualizações de manutenção pendentes](USER_UpgradeDBInstance.Maintenance.md#USER_UpgradeDBInstance.Maintenance.Viewing).

  As ações de manutenção pendentes no estado `available` não bloqueiam a transição. O RDS para Oracle frequentemente lança atualizações do sistema operacional (SO) no estado `available`. Essas atualizações pendentes do sistema operacional não bloquearão uma transição, a menos que você as agende para a próxima janela de manutenção, o que as coloca no estado `next window`.
**nota**  
Se você quiser adiar uma ação de manutenção programada para poder executar uma transição, escolha **Ações** e, depois, **Adiar atualização** no console do RDS. Você também pode evitar que uma transição seja bloqueada aplicando uma ação de manutenção pendente ou movendo a janela de manutenção para um intervalo antes da transição. Consulte mais informações no artigo do re:Post [How to remove RDS pending maintenance items](https://repost.aws/questions/QUV3dBjmVVRnmVV1pAlzjx1w/how-to-remove-rds-pending-maintenance-item).
+ O banco de dados em espera original está no estado de replicação.
+ Você não está tentando iniciar uma alternância quando o banco de dados primário ou o banco de dados em espera estão atualmente em um ciclo de vida de alternância. Se um banco de dados de réplica estiver sendo reconfigurado após uma alternância, o Amazon RDS impede que você inicie outra alternância.
**nota**  
Uma *réplica do espectador* é uma réplica na configuração do Oracle Data Guard que não é o alvo da alternância. As réplicas do espectador podem estar em qualquer estado durante a alternância.
+ O banco de dados em espera original tem uma configuração que é a mais próxima desejada do banco de dados primário original. Vamos supor que um cenário em que os bancos de dados primários originais e em espera originais tenham opções diferentes. Após a conclusão da alternância, o Amazon RDS não reconfigura automaticamente o novo banco de dados primário para ter as mesmas opções do banco de dados primário original.
+ Você configura a implantação multi-AZ desejada antes de iniciar uma transição. O Amazon RDS não gerencia o multi-AZ como parte da transição. A implantação Multi-AZ permanece no estado em que se encontra.

  Suponha que db\$1maz seja o banco de dados principal em uma implantação multi-AZ e db\$1saz seja uma réplica Single-AZ. Você inicia uma transição de db\$1maz para db\$1saz. Posteriormente, db\$1maz é um banco de dados de réplica multi-AZ e db\$1saz é um banco de dados principal Single-AZ. O novo banco de dados principal já pode ser desprotegido por uma implantação multi-AZ.
+ Em preparação para uma transição entre regiões, o banco de dados principal não usa o mesmo grupo de opções de uma instância de banco de dados fora da configuração de replicação. Para que uma transição entre regiões seja bem-sucedida, o banco de dados principal atual e suas réplicas de leitura devem ser as únicas instâncias de banco de dados a usar o grupo de opções do banco de dados principal atual. Caso contrário, o Amazon RDS impede a transição.

# Iniciar a alternância do Oracle Data Guard
<a name="oracle-switchover.initiating"></a>

Você pode alternar uma réplica de leitura do RDS para Oracle para a função primária e a antiga instância de banco de dados primária para uma função de réplica.

## Console
<a name="USER_ReadRepl.Promote.Console"></a>

**Como alternar uma réplica de leitura da Oracle para a função de banco de dados primária**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No console do Amazon RDS, escolha **Databases** (Bancos de dados).

   O painel **Databases** (Bancos de dados) é exibido. Todas as réplicas de leitura exibem **Replica** (Réplica) na coluna **Role** (Função).

1. Escolha a réplica de leitura que você deseja alternar para a função primária.

1. Para **Actions** (Ações), escolha **Switch over replica** (Alternar réplica).

1. Escolha **I acknowledge** (Eu aceito). Depois, escolha **Switch over replica** (Alternar réplica).

1. Na página **Databases** (Bancos de dados), monitore o progresso da transição.  
![\[Monitore o andamento da transição do Oracle Data Guard.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-switchover-progress.png)

   Quando a transição é concluída, a função do destino da alternância muda de **Replica** (Réplica) para **Primary** (Principal).  
![\[Os bancos de dados de origem e réplica alteram as funções.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-switchover-complete.png)

## AWS CLI
<a name="USER_ReadRepl.Promote.CLI"></a>

Para mudar uma réplica do Oracle para a função de banco de dados primária, use o comando [https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/switchover-read-replica.html) do AWS CLI. Os exemplos a seguir tornam a réplica do Oracle chamada *replica-to-be-made-primary* no novo banco de dados primário.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds switchover-read-replica \
    --db-instance-identifier replica-to-be-made-primary
```
Para Windows:  

```
aws rds switchover-read-replica ^
    --db-instance-identifier replica-to-be-made-primary
```

## API do RDS
<a name="USER_ReadRepl.Promote.API"></a>

Para alternar uma réplica do Oracle para a função de banco de dados primária, chame a operação da API [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_SwitchoverReadReplica.html) do Amazon RDS com o parâmetro necessário `DBInstanceIdentifier`. Esse parâmetro especifica o nome da réplica do Oracle que você deseja assumir como função de banco de dados primária.

# Monitorar a alternância do Oracle Data Guard
<a name="oracle-switchover.monitoring"></a>

Para verificar o status das suas instâncias usando o comando AWS da `describe-db-instances` CLI. O comando a seguir verifica o status da instância de banco de dados *orcl2*. Esse banco de dados era um banco de dados em espera antes da alternância, mas é o novo banco de dados primário após a alternância.

```
aws rds describe-db-instances \
    --db-instance-identifier orcl2
```

Para verificar se a alternância foi concluída com êxito, consulte `V$DATABASE.OPEN_MODE`. Verifique se o valor do novo banco de dados primário é `READ WRITE`.

```
SELECT OPEN_MODE FROM V$DATABASE;
```

Para procurar eventos relacionados à alternância, use o comando `describe-events` da AWS.CLI. O exemplo a seguir procura eventos na instância *orcl2*.

```
aws rds describe-events \
    --source-identifier orcl2 \
    --source-type db-instance
```

# Solução de problemas de réplicas do RDS para Oracle
<a name="oracle-read-replicas.troubleshooting"></a>

Esta seção descreve possíveis problemas e soluções de replicação.

**Topics**
+ [

## Monitorar atraso da replicação Oracle
](#oracle-read-replicas.troubleshooting.lag)
+ [

## Solução de problemas de replicação após a adição ou a modificação de acionadores
](#oracle-read-replicas.troubleshooting.triggers)

## Monitorar atraso da replicação Oracle
<a name="oracle-read-replicas.troubleshooting.lag"></a>

Para monitorar o atraso de replicação no Amazon CloudWatch, visualize a métrica `ReplicaLag` do Amazon RDS. Para obter informações sobre o tempo de atraso de replicação, consulte [Monitoramento da replicação de leitura](USER_ReadRepl.Monitoring.md) e [Métricas do Amazon CloudWatch para o Amazon RDS](rds-metrics.md).

No caso de uma réplica de leitura, se o atraso for muito longo, consulte as seguintes visualizações:
+ `V$ARCHIVED_LOG` – mostra quais confirmações foram aplicadas à réplica de leitura.
+ `V$DATAGUARD_STATS` – mostra uma análise detalhada dos componentes que compõem a métrica `ReplicaLag`.
+ `V$DATAGUARD_STATUS` – mostra a saída de log dos processos de replicação internos do Oracle.

No caso de uma réplica montada, se o tempo de atraso for muito longo, não será possível consultar as visualizações do `V$`. Em vez disso, faça o seguinte:
+ Confira a métrica `ReplicaLag` no CloudWatch.
+ Confira o arquivo de log de alertas para a réplica no console. Procure por erros nas mensagens de recuperação. As mensagens incluem o número da sequência de log, que você pode comparar com o número de sequência principal. Para obter mais informações, consulte [Arquivos de log do banco de dados do Amazon RDS para Oracle](USER_LogAccess.Concepts.Oracle.md).

## Solução de problemas de replicação após a adição ou a modificação de acionadores
<a name="oracle-read-replicas.troubleshooting.triggers"></a>

Se você adicionar ou modificar quaisquer triggers e a replicação falhar logo após, o problema pode estar nos triggers. Certifique-se de que o trigger exclua as seguintes contas de usuário, que são exigidas pelo RDS para replicação:
+ Contas de usuário com privilégios de administrador
+ `SYS`
+ `SYSTEM`
+ `RDS_DATAGUARD`
+ `rdsdb`

Para obter mais informações, consulte [Considerações diversas sobre réplicas do RDS para Oracle](oracle-read-replicas.limitations.md#oracle-read-replicas.limitations.miscellaneous).

# Compactação de transporte de redo com RDS para Oracle
<a name="oracle-read-replicas.redo-transport-compression"></a>

Use a compactação de transporte de redo do RDS para Oracle a fim de melhorar a performance da replicação entre sua instância de banco de dados primária e as réplicas em espera. Isso é particularmente útil em ambientes com largura de banda de rede limitada ou conexões de alta latência.

## Receber uma licença para compactação de transporte de redo
<a name="oracle-read-replicas.redo-transport-compression.license"></a>

A compactação de transporte de redo faz parte da opção [Oracle Advanced Compression](//www.oracle.com/database/advanced-compression/). Para usar a compactação de transporte de redo, você precisa de uma licença válida para a opção Oracle Advanced Compression. Para acessar informações sobre licenciamento, entre em contato com o representante da Oracle.

## Configurar a compressão de transporte de redo
<a name="oracle-read-replicas.redo-transport-compression.config"></a>

Para configurar a compactação de transporte de redo, você pode usar o parâmetro `rds.replica.redo_compression`. Esse parâmetro está disponível para as versões 19c e 21c do Oracle.

O parâmetro `rds.replica.redo_compression` aceita os seguintes valores:
+ `DISABLE`: valor padrão que desabilita a compactação de transporte de redo.
+ `ENABLE`: valor que habilita a compactação de transporte de redo por meio do algoritmo padrão [ZLIB](https://zlib.net/).
+ `ZLIB`: valor que habilita explicitamente a compactação de transporte de redo usando o algoritmo ZLIB, que fornece boas taxas de compactação.
+ `LZO`: valor que habilita explicitamente a compactação de transporte de redo usando o algoritmo [LZO](https://www.oberhumer.com/opensource/lzo/), que otimiza a velocidade de compactação, principalmente durante a descompactação.

## Considerações sobre performance da compactação de transporte de redo
<a name="oracle-read-replicas.redo-transport-compression.performance"></a>

As operações de compactação e descompactação consomem recursos da CPU nas instâncias primária e em espera. Se você usa a compactação de transporte de redo, pense no uso dos recursos da instância e nas condições da rede.

## Tópicos relacionados à compactação de transporte de redo
<a name="oracle-read-replicas.redo-transport-compression.related"></a>

Para acessar mais informações sobre a configuração de compactação de transporte de redo, consulte os seguintes recursos:
+ [Grupos de parâmetros de banco de dados para instâncias de banco de dados do Amazon RDS](USER_WorkingWithDBInstanceParamGroups.md)
+ Notas de versão de [RedoCompression](https://docs.oracle.com/en/database/oracle/oracle-database/19/dgbkr/oracle-data-guard-broker-properties.html#GUID-5E6DDFD0-6196-48EB-94AF-21A1AFBB7DE1) no Oracle Database 19c.

# Adição de opções a instâncias de banco de dados Oracle
<a name="Appendix.Oracle.Options"></a>

No Amazon RDS, uma opção é um recurso adicional. A seguir, você pode encontrar uma descrição das opções que você pode adicionar às instâncias do Amazon RDS que executam o mecanismo de banco de dados Oracle.

**Topics**
+ [

# Visão geral das opções do Oracle DB
](Appendix.Oracle.Options.overview.md)
+ [

# Integração do Amazon S3
](oracle-s3-integration.md)
+ [

# Oracle Application Express (APEX)
](Appendix.Oracle.Options.APEX.md)
+ [

# Integração do Amazon EFS
](oracle-efs-integration.md)
+ [

# Oracle Java Virtual Machine
](oracle-options-java.md)
+ [

# Oracle Enterprise Manager
](Oracle.Options.OEM.md)
+ [

# Oracle Label Security
](Oracle.Options.OLS.md)
+ [

# Oracle Locator
](Oracle.Options.Locator.md)
+ [

# Oracle Native Network Encryption
](Appendix.Oracle.Options.NetworkEncryption.md)
+ [

# Oracle OLAP
](Oracle.Options.OLAP.md)
+ [

# Oracle Secure Sockets Layer
](Appendix.Oracle.Options.SSL.md)
+ [

# Oracle Spatial
](Oracle.Options.Spatial.md)
+ [

# Oracle SQLT
](Oracle.Options.SQLT.md)
+ [

# Oracle Statspack
](Appendix.Oracle.Options.Statspack.md)
+ [

# Fuso horário da Oracle
](Appendix.Oracle.Options.Timezone.md)
+ [

# Atualização automática do arquivo de fuso horário do Oracle
](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)
+ [

# Oracle Transparent Data Encryption
](Appendix.Oracle.Options.AdvSecurity.md)
+ [

# Oracle UTL\$1MAIL
](Oracle.Options.UTLMAIL.md)
+ [

# Oracle XML DB
](Appendix.Oracle.Options.XMLDB.md)

# Visão geral das opções do Oracle DB
<a name="Appendix.Oracle.Options.overview"></a>

Para habilitar opções para seu banco de dados Oracle, adicione-as a um grupo de opções e, em seguida, associe o grupo de opções à sua instância de banco de dados. Para ter mais informações, consulte [Trabalhar com grupos de opções](USER_WorkingWithOptionGroups.md).

**Topics**
+ [

## Resumo das opções do Oracle Database
](#Appendix.Oracle.Options.summary)
+ [

## Opções compatíveis com diferentes edições
](#Appendix.Oracle.Options.editions)
+ [

## Requisitos de memória para opções específicas
](#Appendix.Oracle.Options.memory)

## Resumo das opções do Oracle Database
<a name="Appendix.Oracle.Options.summary"></a>

Você pode adicionar as seguintes opções de instância de banco de dados Oracle.


****  

| Opção | ID da opção | 
| --- | --- | 
|  [Integração do Amazon S3](oracle-s3-integration.md)  |  `S3_INTEGRATION`  | 
|  [Oracle Application Express (APEX)](Appendix.Oracle.Options.APEX.md)  |  `APEX` `APEX-DEV`  | 
|  [Oracle Enterprise Manager](Oracle.Options.OEM.md)  |  `OEM` `OEM_AGENT`  | 
|  [Oracle Java Virtual Machine](oracle-options-java.md)  |  `JVM`  | 
|  [Oracle Label Security](Oracle.Options.OLS.md)  |  `OLS`  | 
|  [Oracle Locator](Oracle.Options.Locator.md)  |  `LOCATOR`  | 
|  [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md)  |  `NATIVE_NETWORK_ENCRYPTION`  | 
|  [Oracle OLAP](Oracle.Options.OLAP.md)  |  `OLAP`  | 
|  [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)  |  `SSL`  | 
|  [Oracle Spatial](Oracle.Options.Spatial.md)  |  `SPATIAL`  | 
|  [Oracle SQLT](Oracle.Options.SQLT.md)  |  `SQLT`  | 
|  [Oracle Statspack](Appendix.Oracle.Options.Statspack.md)  |  `STATSPACK`  | 
|  [Fuso horário da Oracle](Appendix.Oracle.Options.Timezone.md)  |  `Timezone`  | 
|  [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)  |  `TIMEZONE_FILE_AUTOUPGRADE`  | 
|  [Oracle Transparent Data Encryption](Appendix.Oracle.Options.AdvSecurity.md)  |  `TDE`  | 
|  [Oracle UTL\$1MAIL](Oracle.Options.UTLMAIL.md)  |  `UTL_MAIL`  | 
|  [Oracle XML DB](Appendix.Oracle.Options.XMLDB.md)  |  `XMLDB`  | 

## Opções compatíveis com diferentes edições
<a name="Appendix.Oracle.Options.editions"></a>

O RDS for Oracle impede que você adicione opções a uma edição se elas não forem compatíveis. Para descobrir quais opções do RDS são aceitas em diferentes edições do Oracle Database, use o comando `aws rds describe-option-group-options`. O exemplo a seguir lista as opções compatíveis com o Oracle Database 19c Enterprise Edition.

```
aws rds describe-option-group-options \
    --engine-name oracle-ee \
    --major-engine-version 19
```

Para obter mais informações, consulte [describe-option-group-groups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-option-group-options.html) na *Referência de comandos da AWS CLI*.

## Requisitos de memória para opções específicas
<a name="Appendix.Oracle.Options.memory"></a>

Algumas opções exigem memória adicional para serem executadas na sua instância de banco de dados. Por exemplo, o Oracle Enterprise Manager Database Control usa cerca de 300 MB de RAM. Se você habilitar essa opção para uma instância de banco de dados pequena, poderá encontrar problemas de performance devido a restrições de memória. Você pode ajustar os parâmetros Oracle para que o banco de dados necessite de menos RAM. Como alternativa, você pode expandir a instância de banco de dados. 

# Integração do Amazon S3
<a name="oracle-s3-integration"></a>

É possível transferir arquivos entre uma instância de banco de dados do RDS para Oracle e um bucket do Amazon S3. É possível usar a integração do Amazon S3 com recursos do banco de dados do Oracle, como o Oracle Data Pump. Por exemplo, é possível baixar arquivos do Data Pump do Amazon S3 para a instância de banco de dados do RDS para Oracle. Para ter mais informações, consulte[Importar dados para o Oracle no Amazon RDS](Oracle.Procedural.Importing.md)

**nota**  
A instância de banco de dados e o bucket do Amazon S3 devem estar na mesma Região da AWS.

**Topics**
+ [

# Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon S3
](oracle-s3-integration.preparing.md)
+ [

# Adicionar a opção de integração do Amazon S3
](oracle-s3-integration.preparing.option-group.md)
+ [

# Transferir arquivos entre o Amazon RDS para Oracle e um bucket do Amazon S3
](oracle-s3-integration.using.md)
+ [

## Solução de problemas de integração do Amazon S3
](#oracle-s3-integration.troubleshooting)
+ [

# Remover a opção de integração do Amazon S3
](oracle-s3-integration.removing.md)

# Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon S3
<a name="oracle-s3-integration.preparing"></a>

Para que o RDS para Oracle se integre com o Amazon S3, a instância de banco de dados deve ter acesso a um bucket do Amazon S3. A Amazon VPC usada pela instância de banco de dados não precisa conceder acesso aos endpoints do Amazon S3.

O RDS para Oracle é compatível com a transferência de arquivos entre uma instância de banco de dados em uma conta e um bucket do Amazon S3 em uma conta diferente. Quando etapas adicionais forem necessárias, elas serão indicadas nas seções a seguir.

**Topics**
+ [

## Etapa 1: Criar uma política do IAM para ser usada pelo perfil do Amazon RDS
](#oracle-s3-integration.preparing.policy)
+ [

## Etapa 2: (opcional) Criar uma política do IAM para o bucket do Amazon S3
](#oracle-s3-integration.preparing.policy-bucket)
+ [

## Etapa 3: Criar um perfil do IAM para a instância de banco de dados e anexar a política
](#oracle-s3-integration.preparing.role)
+ [

## Etapa 4: Associar um perfil do IAM à sua instância de banco de dados do RDS para Oracle
](#oracle-s3-integration.preparing.instance)

## Etapa 1: Criar uma política do IAM para ser usada pelo perfil do Amazon RDS
<a name="oracle-s3-integration.preparing.policy"></a>

Nessa etapa, crie uma política do AWS Identity and Access Management (IAM) com as permissões necessárias para transferir arquivos entre o bucket do Amazon S3 e a instância de banco de dados do RDS. Esta etapa pressupõe que você já tenha criado um bucket do S3.

Antes de criar a política, observe as seguintes informações:
+ Nome do recurso da Amazon (ARN) do bucket.
+ O ARN da chave do AWS KMS, se o bucket usar criptografia SSE-KMS ou SSE-S3
**nota**  
Uma instância de banco de dados do RDS para Oracle não pode acessar buckets do Amazon S3 criptografados com SSE-C.

Para ter mais informações, consulte [Como proteger dados usando criptografia do lado do servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) no *Guia do usuário do Amazon Simple Storage Service*.

### Console
<a name="oracle-s3-integration.preparing.policy.console"></a>

**Como criar uma política do IAM para permitir acesso do Amazon RDS a um bucket do Amazon S3**

1. Abra o [Console de Gerenciamento do IAM](https://console.aws.amazon.com/iam/home?#home).

1. Em **Access management (Gerenciamento de acesso)**, escolha **Policies (Políticas)**.

1. Escolha **Create Policy**.

1. Na guia **Editor visual**, selecione **Escolher um serviço** e, em seguida, escolha **S3**.

1. Em **Actions (Ações)**, escolha **Expand all (Expandir tudo)**e, em seguida, escolha as permissões de bucket e as permissões de objeto necessárias para transferir arquivos de um Amazon S3 bucket para Amazon RDS. Por exemplo, faça o seguinte:
   + Expanda **List (Lista)**e, em seguida, selecione **ListBucket**.
   + Expanda **Read (Ler) **e, em seguida, selecione **GetObject**.
   + Expanda **Gravação** e selecione **PutObject**, **DeleteObject**, **AbortMultipartUpload** e **ListMultipartUploadParts**. As permissões de upload fracionado são necessárias ao carregar arquivos grandes (100 MB ou mais) no Amazon S3.
   + Amplie **Permissions management** (Gerenciamento de permissões) e selecione **PutObjectAcl**. Essa permissão será necessária se você planejar o carregamento de arquivos em um bucket de propriedade de uma conta diferente, e essa conta precisar ter controle total do conteúdo do bucket.

   *Permissões de objetos* são permissões para operações de objetos no Amazon S3. Você deve concedê-las para objetos em um bucket, não para o próprio bucket. Para ter mais informações, consulte [Permissões para operações de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects).

1. Selecione **Recursos** e, depois, faça o seguinte:

   1. Selecione **Específico**.

   1. Para **bucket**, selecione **Adicionar ARN**. Insira o ARN de seu bucket. O nome do bucket é preenchido automaticamente. Em seguida, escolha **Adicionar**.

   1. Se o recurso do **objeto** for exibido, selecione **Adicionar ARN** para adicionar recursos manualmente ou escolha **Qualquer**.
**nota**  
É possível definir o **nome de recurso da Amazon (ARN)** como um valor de ARN mais específico para permitir que o Amazon RDS acesse apenas arquivos ou pastas específicos em um bucket do Amazon S3. Para ter mais informações sobre como definir uma política de acesso para o Amazon S3, consulte [Gerenciar permissões de acesso aos recursos do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html).

1. (Opcional) Escolha **Adicionar permissões adicionais** para adicionar recursos à política. Por exemplo, faça o seguinte:

   1. Se o bucket estiver criptografado com uma chave KMS personalizada, selecione **KMS** para o serviço. 

   1. Em **Ações manuais**, selecione o seguinte:
      + **Encrypt**
      + **Criptografar novamente de** e **Criptografar novamente para**
      + **Decrypt**
      + **DescribeKey**
      + **GenerateDataKey**

   1. Em **Recursos**, selecione **Específico**.

   1. Para **chave**, selecione **Adicionar ARN**. Insira o ARN de sua chave personalizada como o recurso e, depois, selecione **Adicionar**.

      Para ter mais informações, consulte [Como proteger os dados usando criptografia do lado do servidor com chaves do KMS armazenadas no AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) do *Guia do usuário do Amazon Simple Storage Service*.

   1. Se você Amazon RDS quiser acessar outros bucket, adicione os ARNs para esses buckets. Opcionalmente, você também pode conceder acesso a todos os buckets e objetos no Amazon S3.

1. Escolha **Next: Tags (Próximo: tags)** e **Next: Review (Próximo: revisar)**.

1. Em **Name (Nome)**, insira um nome para a sua política do IAM, por exemplo `rds-s3-integration-policy`. Você usará esse nome ao criar um perfil do IAM a ser associado à sua instância de banco de dados. Você também pode adicionar um valor opcional para **Description (Descrição)**.

1. Escolha **Create policy** (Criar política).

### AWS CLI
<a name="oracle-s3-integration.preparing.policy.CLI"></a>

Crie uma política do AWS Identity and Access Management (IAM) que conceda ao Amazon RDS acesso a um bucket do Amazon S3. Depois de criar a política, anote o ARN da política. Você precisa do ARN para uma etapa subsequente.

Inclua as ações apropriadas na política com base no tipo de acesso necessário:
+ `GetObject` – necessário para transferir arquivos de um bucket do Amazon S3 para o Amazon RDS.
+ `ListBucket`: obrigatória para transferir arquivos de um bucket do Amazon S3 para o Amazon RDS.
+ `PutObject`: obrigatória para transferir arquivos do Amazon RDS para um bucket do Amazon S3.
+ `AbortMultipartUpload`: obrigatória para uploads fracionados ao transferir arquivos grandes (100 MB ou mais) do Amazon RDS para um bucket do Amazon S3.
+ `ListMultipartUploadParts`: obrigatória para uploads fracionados ao transferir arquivos grandes (100 MB ou mais) do Amazon RDS para um bucket do Amazon S3.

O comando da AWS CLI a seguir cria uma política do IAM denominada `rds-s3-integration-policy` com essas opções. Ele concede acesso a um bucket denominado `amzn-s3-demo-bucket`.

**Example**  
Para Linux, macOS ou Unix:  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
O exemplo a seguir inclui permissões para chaves KMS personalizadas.  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```
Para Windows:  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
O exemplo a seguir inclui permissões para chaves KMS personalizadas.  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```

## Etapa 2: (opcional) Criar uma política do IAM para o bucket do Amazon S3
<a name="oracle-s3-integration.preparing.policy-bucket"></a>

Esta etapa é necessária somente nas seguintes condições:
+ Você planeja carregar arquivos para um bucket do Amazon S3 de uma conta (conta A) e acessá-los em uma conta diferente (conta B).
+ A conta B é a proprietária do bucket.
+ A conta B precisa ter controle total dos objetos carregados no bucket.

Se as condições anteriores não se aplicarem a você, avance para [Etapa 3: Criar um perfil do IAM para a instância de banco de dados e anexar a política](#oracle-s3-integration.preparing.role).

Para criar a política de bucket, verifique se você tem o seguinte:
+ O ID da conta A
+ O nome do usuário da conta A
+ O valor do ARN do bucket do Amazon S3 na conta B

### Console
<a name="oracle-s3-integration.preparing.policy-bucket.console"></a>

**Para criar ou editar uma política de bucket**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Na lista **Buckets**, escolha o nome do bucket para o qual você deseja criar uma política de bucket ou cuja política de bucket você deseja editar.

1. Escolha **Permissions (Permissões)**.

1. Em **Bucket policy** (Política de bucket), escolha **Edit** (Editar). Isso abre a página Edit bucket policy (Editar política de bucket).

1. Na página **Editar política de buckets**, explore **Exemplos de políticas** no *Guia do usuário do Amazon S3*, escolha **Gerador de políticas** para gerar uma política automaticamente ou edite o JSON na seção **Politica**. 

   Se você escolher **Policy generator** (Gerador de políticas), o AWS Policy Generator será aberto em uma nova janela:

   1. Na página **AWS Policy Generator**, em **Select Type of Policy** (Selecionar tipo de política), **S3 Bucket Policy** (Política de bucket do S3).

   1. Adicione uma instrução inserindo as informações nos campos fornecidos e escolha **Add Statement** (Adicionar instrução). Repita para todas as instruções que deseja adicionar. Para ter mais informações sobre esses campos, consulte a [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*. 
**nota**  
Por conveniência, a página **Edit bucket policy** (Editar política do bucket) exibe o **nome do recurso da Amazon (ARN) do bucket** atual acima do campo de texto **Policy** (Política). Você pode copiar este ARN para usá-lo nas instruções da página do **AWS Policy Generator**. 

   1. Depois de terminar de adicionar as instruções, escolha **Generate Policy** (Gerar política).

   1. Copie o texto da política gerada, escolha **Close** (Fechar) e retorne à página **Edit bucket policy** (Editar política de bucket) no console do Amazon S3.

1. Na caixa **Policy** (Política), edite a política existente ou cole a política de bucket do gerador de políticas. Solucione avisos de segurança, erros, avisos gerais e sugestões antes de salvar a política.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExamplePermissions",
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::123456789012:user/account-A-user"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-destination-bucket",
           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
         ]
       }
     ]
   }
   ```

------

1. Escolha **Save changes** (Salvar alterações), o que o levará à página Bucket Permissions (Permissões do bucket).

## Etapa 3: Criar um perfil do IAM para a instância de banco de dados e anexar a política
<a name="oracle-s3-integration.preparing.role"></a>

Esta etapa pressupõe que você tenha criado a política do IAM no [Etapa 1: Criar uma política do IAM para ser usada pelo perfil do Amazon RDS](#oracle-s3-integration.preparing.policy). Nesta etapa, você cria um perfil para a instância de banco de dados do RDS para Oracle e anexa a política ao perfil.

### Console
<a name="oracle-s3-integration.preparing.role.console"></a>

**Como criar um perfil do IAM para permitir acesso do Amazon RDS a um bucket do Amazon S3**

1. Abra o [Console de Gerenciamento do IAM](https://console.aws.amazon.com/iam/home?#home).

1. No painel de navegação, escolha **Roles**.

1. Escolha **Criar Perfil**.

1. Selecione **Serviço da AWS**.

1. Em **Casos de uso de outros serviços da AWS:**, selecione **RDS** e, depois, **RDS: adicionar perfil ao banco de dados**. Escolha **Próximo**.

1. Em **Pesquisar**, em **Políticas de permissões**, insira o nome da política do IAM que você criou em [Etapa 1: Criar uma política do IAM para ser usada pelo perfil do Amazon RDS](#oracle-s3-integration.preparing.policy) e selecione a política quando ela aparecer na lista. Escolha **Próximo**.

1. Em **Nome do perfil**, insira um nome para seu perfil do IAM, por exemplo, `rds-s3-integration-role`. Você também pode adicionar um valor opcional para **Description** (Descrição).

1. Selecione **Criar perfil**.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

**Como criar um perfil e anexar uma política a ele**

1. Crie um perfil do IAM que o Amazon RDS possa assumir em seu nome para acessar seus buckets do Amazon S3.

   Recomendamos usar as chaves de contexto de condição global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) em relações baseadas em recursos para limitar as permissões do serviço a um recurso específico. Essa é a maneira mais eficiente de se proteger contra o [problema "confused deputy"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

   Você pode usar as duas chaves de contexto de condição global e fazer com que o valor `aws:SourceArn` contenha o ID da conta. Nesses casos, verifique se o valor `aws:SourceAccount` e a conta no `aws:SourceArn` usa o mesmo ID de conta quando eles são usados na mesma instrução.
   + Use `aws:SourceArn` se quiser acesso entre serviços para um único recurso.
   + Use `aws:SourceAccount` se você quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

   Na relação de confiança, certifique-se de usar a chave de contexto de condição global `aws:SourceArn` com o nome do recurso da Amazon (ARN) completo dos recursos que acessam a função.

   O seguinte comando da AWS CLI cria a função chamada `rds-s3-integration-role` para essa finalidade.  
**Example**  

   Para Linux, macOS ou Unix:

   ```
   aws iam create-role \
      --role-name rds-s3-integration-role \
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Para Windows:

   ```
   aws iam create-role ^
      --role-name rds-s3-integration-role ^
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Para ter mais informações, consulte [Criar uma função para delegar permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.

1. Depois que a função for criada, observe seu ARN. Você precisa do ARN para uma etapa subsequente.

1. Anexe a política criada à função criada.

   O seguinte comando da AWS CLI anexa a política à função denominada `rds-s3-integration-role`.  
**Example**  

   Para Linux, macOS ou Unix:

   ```
   aws iam attach-role-policy \
      --policy-arn your-policy-arn \
      --role-name rds-s3-integration-role
   ```

   Para Windows:

   ```
   aws iam attach-role-policy ^
      --policy-arn your-policy-arn ^
      --role-name rds-s3-integration-role
   ```

   Substitua `your-policy-arn` pelo ARN da política que você anotou em uma etapa anterior.

## Etapa 4: Associar um perfil do IAM à sua instância de banco de dados do RDS para Oracle
<a name="oracle-s3-integration.preparing.instance"></a>

A última etapa na configuração de permissões para a integração com o Amazon S3 é associar seu perfil do IAM à sua instância de banco de dados. Observe os seguintes requisitos:
+ Você precisa ter acesso a um perfil do IAM com a política de permissões do Amazon S3 necessária anexada a ele. 
+ Só é possível associar um perfil do IAM à instância de banco de dados do RDS para Oracle por vez.
+ Sua instância de banco de dados deve estar no estado **Disponível**.

### Console
<a name="oracle-s3-integration.preparing.instance.console"></a>

**Como associar um perfil do IAM à instância de banco de dados do RDS para Oracle**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Escolha **Databases (Bancos de dados)** no painel de navegação.

1. Selecione o nome da instância de banco de dados Oracle para exibir os detalhes.

1. Na guia **Connectivity & security** (Conectividade e segurança), role para baixo até a seção **Manage IAM roles** (Gerenciar funções do IAM) na parte inferior da página.

1. Em **Adicionar perfis do IAM a essa instância**, selecione o perfil que você criou em [Etapa 3: Criar um perfil do IAM para a instância de banco de dados e anexar a política](#oracle-s3-integration.preparing.role).

1. Em **Feature (Recurso)**, escolha **S3\$1INTEGRATION**.  
![\[Adicionar função S3_INTEGRATION\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. Escolha **Add role (adicionar função)**.

### AWS CLI
<a name="oracle-s3-integration.preparing.instance.CLI"></a>

O seguinte comando da AWS CLI adiciona a função a uma instância de banco de dados Oracle denominada `mydbinstance`.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name S3_INTEGRATION \
   --role-arn your-role-arn
```
Para Windows:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name S3_INTEGRATION ^
   --role-arn your-role-arn
```

Substitua `your-role-arn` pelo ARN da função que você anotou em uma etapa anterior. `S3_INTEGRATION` deve ser especificado para a opção `--feature-name`.

# Adicionar a opção de integração do Amazon S3
<a name="oracle-s3-integration.preparing.option-group"></a>

Para integrar o Amazon RDS para Oracle ao Amazon S3, sua instância de banco de dados deve estar associada a um grupo de opções que inclua a opção `S3_INTEGRATION`.

## Console
<a name="oracle-s3-integration.preparing.option-group.console"></a>

**Para configurar um grupo de opções para a integração com o Amazon S3**

1. Crie um novo grupo de opções ou identifique um grupo de opções existente ao qual você pode adicionar a opção `S3_INTEGRATION`.

   Para obter informações sobre como criar um grupo de opções, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Adicione a opção `S3_INTEGRATION` ao grupo de opções.

   Para obter informações sobre como adicionar uma opção a um grupo de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Crie uma instância de banco de dados do RDS para Oracle e associe a ela o grupo de opções ou modifique uma instância de banco de dados do RDS para Oracle para associar o grupo de opções a ela.

   Para obter informações sobre como criar uma instância de banco de dados, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

   Para mais informações sobre a modificação de uma instância de banco de dados , consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

## AWS CLI
<a name="oracle-s3-integration.preparing.option-group.cli"></a>

**Para configurar um grupo de opções para a integração com o Amazon S3**

1. Crie um novo grupo de opções ou identifique um grupo de opções existente ao qual você pode adicionar a opção `S3_INTEGRATION`.

   Para obter informações sobre como criar um grupo de opções, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Adicione a opção `S3_INTEGRATION` ao grupo de opções.

   Por exemplo, o seguinte comando da AWS CLI adiciona a opção `S3_INTEGRATION` a um grupo de opções denominado **myoptiongroup**.  
**Example**  

   Para Linux, macOS ou Unix:

   ```
   aws rds add-option-to-option-group \
      --option-group-name myoptiongroup \
      --options OptionName=S3_INTEGRATION,OptionVersion=1.0
   ```

   Para Windows:

   ```
   aws rds add-option-to-option-group ^
      --option-group-name myoptiongroup ^
      --options OptionName=S3_INTEGRATION,OptionVersion=1.0
   ```

1. Crie uma instância de banco de dados do RDS para Oracle e associe a ela o grupo de opções ou modifique uma instância de banco de dados do RDS para Oracle para associar o grupo de opções a ela.

   Para obter informações sobre como criar uma instância de banco de dados, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

   Para ter informações sobre como modificar uma instância de banco de dados do RDS para Oracle, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

# Transferir arquivos entre o Amazon RDS para Oracle e um bucket do Amazon S3
<a name="oracle-s3-integration.using"></a>

É possível usar um pacote `rdsadmin_s3_tasks` do Amazon RDS para transferir arquivos entre uma instância de banco de dados do RDS para Oracle e um bucket do Amazon S3. É possível compactar arquivos com o GZIP ao carregá-los e descompactá-los ao baixar.

**Topics**
+ [

## Requisitos e limitações das transferências de arquivos
](#oracle-s3-integration.using.reqs)
+ [

## Carregar arquivos de uma instância de banco de dados do RDS para Oracle para um bucket do Amazon S3
](#oracle-s3-integration.using.upload)
+ [

## Baixar arquivos de um bucket do Amazon S3 para uma instância de banco de dados Oracle
](#oracle-s3-integration.using.download)
+ [

## Monitorar o status de uma transferência de arquivo
](#oracle-s3-integration.using.task-status)

## Requisitos e limitações das transferências de arquivos
<a name="oracle-s3-integration.using.reqs"></a>

Antes de transferir arquivos entre a instância de banco de dados e um bucket do Amazon S3, observe o seguinte:
+ O pacote `rdsadmin_s3_tasks` transfere arquivos localizados em um único diretório. Não é possível incluir subdiretórios em uma transferência.
+ O tamanho máximo do objeto em um bucket do Amazon S3 é 5 TB. 
+ Tarefas criadas por `rdsadmin_s3_tasks` são executadas de forma assíncrona.
+ É possível fazer upload de arquivos do diretório Data Pump, como `DATA_PUMP_DIR`, ou de qualquer diretório criado pelo usuário. Não é possível fazer upload de arquivos de um diretório usado pelos processos em segundo plano da Oracle, como os diretórios `adump`, `bdump` ou `trace`.
+ O limite de download é de 2 mil arquivos por chamada de procedimento para `download_from_s3`. Se você precisar baixar mais de 2.000 arquivos do Amazon S3, divida o download em ações separadas, com no máximo 2.000 arquivos por chamado do procedimento. 
+ Se já existir um arquivo na pasta de download e você tentar baixar um arquivo com o mesmo nome, `download_from_s3` vai ignorar o download. Para remover um arquivo do diretório de downloads, use o procedimento PL/SQL [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF).

## Carregar arquivos de uma instância de banco de dados do RDS para Oracle para um bucket do Amazon S3
<a name="oracle-s3-integration.using.upload"></a>

Para carregar arquivos da instância de banco de dados para um bucket do Amazon S3, use o procedimento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3`. Por exemplo, você pode carregar arquivos de backup do Oracle Recovery Manager (RMAN) ou arquivos do Oracle Data Pump. Para ter mais informações sobre como trabalhar com objetos, consulte o [Guia do usuário do Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html). Para ter mais informações sobre como executar backups do RMAN, consulte [Realização de tarefas comuns do RMAN para instâncias de banco de dados Oracle](Appendix.Oracle.CommonDBATasks.RMAN.md).

O procedimento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_bucket_name`  |  VARCHAR2  |  –  |  obrigatório  |  O nome do bucket do Amazon S3 no qual fazer o upload de arquivos.   | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  obrigatório  |  O nome do objeto de diretório Oracle do qual carregar arquivos. O diretório pode ser qualquer objeto de diretório criado pelo usuário ou o diretório Data Pump, como `DATA_PUMP_DIR`. Não é possível fazer upload de arquivos de um diretório usado pelos processos em segundo plano, como `adump`, `bdump` e `trace`.  Você só pode fazer o upload de arquivos do diretório especificado. Não é possível fazer upload de arquivos em subdiretórios no diretório especificado.   | 
|  `p_s3_prefix`  |  VARCHAR2  |  –  |  obrigatório  |  Um prefixo de nome de arquivo do Amazon S3 no qual os arquivos são carregados. Um prefixo vazio faz upload de todos os arquivos para o nível superior no bucket do Amazon S3 especificado e não adiciona um prefixo aos nomes de arquivos.  Por exemplo, se o prefixo for `folder_1/oradb`, os arquivos serão enviados em `folder_1`. Nesse caso, o prefixo `oradb` é adicionado a cada arquivo.   | 
|  `p_prefix`  |  VARCHAR2  |  –  |  obrigatório  |  Um prefixo de nome de arquivo ao qual os nomes de arquivo devem corresponder para serem transferidos por upload. Um prefixo vazio faz upload de todos os arquivos no diretório especificado.   | 
|  `p_compression_level`  |  NUMBER  |  `0`   |  optional  |  O nível de compactação do GZIP. O intervalo de valores válidos varia de `0` a `9`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/oracle-s3-integration.using.html)  | 
|  `p_bucket_owner_full_control`  |  VARCHAR2  |  –  |  opcional  |  A configuração de controle de acesso do bucket. Os únicos valores válidos são nulo ou `FULL_CONTROL`. Essa configuração será necessária somente se você carregar arquivos de uma conta (conta A) em um bucket de propriedade de uma conta diferente (conta B), e a conta B precisar ter controle total dos arquivos.  | 

O valor de retorno do procedimento `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` é um ID de tarefa.

O exemplo a seguir faz upload de todos os arquivos do diretório `DATA_PUMP_DIR` no bucket do Amazon S3 chamado *amzn-s3-demo-bucket*. Os arquivos não são compactados.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket',
      p_prefix         =>  '', 
      p_s3_prefix      =>  '', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir faz upload todos os arquivos com o prefixo `db` no diretório `DATA_PUMP_DIR` para o bucket do Amazon S3 denominado `amzn-s3-demo-bucket`. O Amazon RDS aplica o nível mais alto de compactação GZIP aos arquivos.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name       =>  'amzn-s3-demo-bucket', 
      p_prefix            =>  'db', 
      p_s3_prefix         =>  '', 
      p_directory_name    =>  'DATA_PUMP_DIR',
      p_compression_level =>  9) 
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir carrega todos os arquivos do diretório `DATA_PUMP_DIR` no bucket do Amazon S3 chamado `amzn-s3-demo-bucket`. Os arquivos são carregados em uma pasta `dbfiles`. Neste exemplo, o nível de compactação GZIP é *1*, que é o nível de compactação mais rápido.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name       =>  'amzn-s3-demo-bucket', 
      p_prefix            =>  '', 
      p_s3_prefix         =>  'dbfiles/', 
      p_directory_name    =>  'DATA_PUMP_DIR',
      p_compression_level =>  1) 
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir faz upload todos os arquivos no diretório `DATA_PUMP_DIR` para o bucket do Amazon S3 denominado `amzn-s3-demo-bucket`. Os arquivos são carregados em uma pasta `dbfiles` e `ora` é adicionado ao início de cada nome de arquivo. Nenhuma compactação é aplicada.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket', 
      p_prefix         =>  '', 
      p_s3_prefix      =>  'dbfiles/ora', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir pressupõe que o comando é executado na conta A, mas a conta B requer o controle total do conteúdo do bucket. O comando `rdsadmin_s3_tasks.upload_to_s3` transfere todos os arquivos no diretório `DATA_PUMP_DIR` para o bucket chamado`s3bucketOwnedByAccountB`. O controle de acesso está definido como `FULL_CONTROL` para que a conta B possa acessar os arquivos no bucket. O nível de compactação GZIP é *6*, o que equilibra a velocidade e o tamanho do arquivo.

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name               =>  's3bucketOwnedByAccountB', 
      p_prefix                    =>  '', 
      p_s3_prefix                 =>  '', 
      p_directory_name            =>  'DATA_PUMP_DIR',
      p_bucket_owner_full_control =>  'FULL_CONTROL',
      p_compression_level         =>  6) 
   AS TASK_ID FROM DUAL;
```

Em cada exemplo, a instrução `SELECT` retorna o ID da tarefa em um tipo de dados `VARCHAR2`.

Você pode visualizar o resultado exibindo o arquivo de saída da tarefa.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Substitua *`task-id`* pelo ID da tarefa retornado pelo procedimento.

**nota**  
As tarefas são executadas de forma assíncrona.

## Baixar arquivos de um bucket do Amazon S3 para uma instância de banco de dados Oracle
<a name="oracle-s3-integration.using.download"></a>

Para baixar arquivos de um bucket do Amazon S3 para uma instância do RDS para Oracle, use o procedimento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` do Amazon RDS. 

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


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_bucket_name`  |  VARCHAR2  |  –  |  Obrigatório  |  O nome do bucket do Amazon S3 do qual baixar arquivos.   | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  Obrigatório  |  O nome do objeto de diretório Oracle no qual baixar arquivos. O diretório pode ser qualquer objeto de diretório criado pelo usuário ou o diretório Data Pump, como `DATA_PUMP_DIR`.   | 
|  `p_error_on_zero_downloads`  |  VARCHAR2  | FALSE |  Opcional  |  Um sinalizador que determina se a tarefa gera um erro quando nenhum objeto no bucket do Amazon S3 corresponde ao prefixo. Se esse parâmetro não estiver definido ou estiver definido como FALSE (padrão), a tarefa imprimirá uma mensagem de que nenhum objeto foi encontrado, mas não vai gerar uma exceção nem uma falha. Se esse parâmetro for TRUE, a tarefa vai gerar uma exceção e ocorrerá uma falha.  Exemplos de especificações de prefixo que podem falhar nos testes de correspondência são espaços em prefixos, como em `' import/test9.log'`, e incompatibilidade de maiúsculas e minúsculas, como em `test9.log` e `test9.LOG`.  | 
|  `p_s3_prefix`  |  VARCHAR2  |  –  |  Obrigatório  |  Um prefixo de nome de arquivo ao qual os nomes de arquivo devem corresponder para serem baixados. Um prefixo vazio baixa todos os arquivos de nível superior no bucket do Amazon S3 especificado, mas não os arquivos nas pastas do bucket.  O procedimento baixa objetos Amazon S3 somente da pasta de primeiro nível que corresponde ao prefixo. Estruturas de diretório aninhadas que correspondem ao prefixo especificado não são baixados. Por exemplo, suponha que um bucket do Amazon S3 tenha a estrutura de pastas `folder_1/folder_2/folder_3`. Especifique o prefixo `'folder_1/folder_2/'`. Nesse caso, somente os arquivos em `folder_2` são baixados, e não os arquivos em `folder_1` ou `folder_3`. Em vez disso, se você especificar o prefixo `'folder_1/folder_2'`, todos os arquivos em `folder_1` que correspondem ao prefixo `'folder_2'` são baixados, e nenhum arquivo em `folder_2` é baixado.  | 
|  `p_decompression_format`  |  VARCHAR2  |  –  |  Opcional  |  O formato da descompactação. Os valores válidos são `NONE` para sem descompactação e `GZIP` para descompactação.  | 

O valor de retorno do procedimento `rdsadmin.rdsadmin_s3_tasks.download_from_s3` é um ID de tarefa.

O exemplo a seguir baixa todos os arquivos no bucket do Amazon S3 denominado `amzn-s3-demo-bucket` para o diretório `DATA_PUMP_DIR`. Os arquivos não são compactados, portanto, nenhuma descompactação é aplicada.

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket',
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir baixa todos os arquivos com o prefixo `db` no bucket do Amazon S3 denominado `amzn-s3-demo-bucket` para o diretório `DATA_PUMP_DIR`. Os arquivos são compactados com GZIP, portanto, nenhuma descompactação é aplicada. O parâmetro `p_error_on_zero_downloads` ativa a verificação de erros de prefixo, portanto, se o prefixo não corresponder a nenhum arquivo no bucket, a tarefa vai gerar uma exceção e ocorrerá uma falha.

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name               =>  'amzn-s3-demo-bucket', 
      p_s3_prefix                 =>  'db', 
      p_directory_name            =>  'DATA_PUMP_DIR',
      p_decompression_format      =>  'GZIP',
      p_error_on_zero_downloads   =>  'TRUE') 
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir baixa todos os arquivos da pasta `myfolder/` no bucket do Amazon S3 denominado `amzn-s3-demo-bucket` para o diretório `DATA_PUMP_DIR`. Use o parâmetro `p_s3_prefix` para especificar a pasta Amazon S3. Os arquivos carregados são compactados com o GZIP, mas não são descompactados durante o download. 

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name          =>  'amzn-s3-demo-bucket', 
      p_s3_prefix            =>  'myfolder/', 
      p_directory_name       =>  'DATA_PUMP_DIR',
      p_decompression_format =>  'NONE')
   AS TASK_ID FROM DUAL;
```

O exemplo a seguir baixa o arquivo `mydumpfile.dmp` no bucket do Simple Storage Service (Amazon S3) denominado `amzn-s3-demo-bucket` para o diretório `DATA_PUMP_DIR`. Nenhuma descompactação é aplicada.

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket', 
      p_s3_prefix      =>  'mydumpfile.dmp', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

Em cada exemplo, a instrução `SELECT` retorna o ID da tarefa em um tipo de dados `VARCHAR2`.

Você pode visualizar o resultado exibindo o arquivo de saída da tarefa.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Substitua *`task-id`* pelo ID da tarefa retornado pelo procedimento.

**nota**  
As tarefas são executadas de forma assíncrona.  
Você pode usar o procedimento `UTL_FILE.FREMOVE` do Oracle para remover arquivos de um diretório. Para ter mais informações, consulte [Procedimento FREMOVE](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924) na documentação da Oracle.

## Monitorar o status de uma transferência de arquivo
<a name="oracle-s3-integration.using.task-status"></a>

Tarefas de transferência de arquivo de publicar eventos do Amazon RDS quando eles começam e quando são concluídos. A mensagem do evento contém o ID da tarefa para a transferência de arquivos. Para obter informações sobre como visualizar eventos, consulte [Visualizar eventos do Amazon RDS](USER_ListEvents.md).

Você pode visualizar o status de uma tarefa em andamento em um arquivo bdump. Os arquivos bdump estão localizados no diretório `/rdsdbdata/log/trace`. Cada nome de arquivo bdump está no seguinte formato.

```
dbtask-task-id.log
```

Substitua `task-id` pelo ID da tarefa que você deseja monitorar.

**nota**  
As tarefas são executadas de forma assíncrona.

Você pode usar o procedimento armazenado `rdsadmin.rds_file_util.read_text_file` para ver o conteúdo dos arquivos bdump. Por exemplo, a consulta a seguir retorna o conteúdo do arquivo bdump `dbtask-1234567890123-1234.log`.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1234567890123-1234.log'));
```

O exemplo a seguir mostra o arquivo de log de uma falha na transferência.

```
TASK_ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1234567890123-1234


TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2023-04-17 18:21:33.993 UTC [INFO ] File #1: Uploading the file /rdsdbdata/datapump/A123B4CDEF567890G1234567890H1234/sample.dmp to Amazon S3 with bucket name amzn-s3-demo-bucket and key sample.dmp.
2023-04-17 18:21:34.188 UTC [ERROR] RDS doesn't have permission to write to Amazon S3 bucket name amzn-s3-demo-bucket and key sample.dmp.
2023-04-17 18:21:34.189 UTC [INFO ] The task failed.
```

## Solução de problemas de integração do Amazon S3
<a name="oracle-s3-integration.troubleshooting"></a>

Para obter dicas de solução de problemas, consulte o artigo do AWS re:Post [Como solucionar problemas ao integrar o Amazon RDS para Oracle ao Amazon S3?](https://repost.aws/en/knowledge-center/rds-oracle-s3-integration).

# Remover a opção de integração do Amazon S3
<a name="oracle-s3-integration.removing"></a>

Você pode remover a opção de integração do Amazon S3 de uma instância de banco de dados. 

Para remover a opção de integração do Amazon S3 de uma instância de banco de dados, faça o seguinte: 
+ Para remover a opção de integração do Amazon S3 de várias instâncias de bancos de dados, remova a opção `S3_INTEGRATION` do grupo de opções ao qual as instâncias de banco de dados pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para ter mais informações, consulte[Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)

   
+ Para remover a opção de integração do Amazon S3 de uma única instância de banco de dados, modifique a instância e especifique um grupo de opções diferente que não inclua a opção `S3_INTEGRATION`. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte[Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md)

# Oracle Application Express (APEX)
<a name="Appendix.Oracle.Options.APEX"></a>

O Amazon RDS é compatível com o Oracle Application Express (APEX) com o uso das opções `APEX` e `APEX-DEV`. É possível implantar o Oracle APEX como um ambiente de tempo de execução ou como um ambiente de desenvolvimento completo para aplicações baseadas na web. Com o Oracle APEX, você pode criar aplicações inteiramente no navegador da web. Para ter mais informações, consulte [Oracle Application Express](https://apex.oracle.com/) na documentação da Oracle.

**Topics**
+ [

## Componentes do Oracle APEX
](#Appendix.Oracle.Options.APEX.components)
+ [

# Requisitos e limitações
](Appendix.Oracle.Options.APEX.Requirements.md)
+ [

# Configurar o Oracle APEX e o Oracle Rest Data Services (ORDS)
](Appendix.Oracle.Options.APEX.settingUp.md)
+ [

# Configurar o Oracle Rest Data Services (ORDS)
](Appendix.Oracle.Options.APEX.ORDSConf.md)
+ [

# Atualizar e remover o Oracle APEX
](Appendix.Oracle.Options.APEX.UpgradeandRemove.md)

## Componentes do Oracle APEX
<a name="Appendix.Oracle.Options.APEX.components"></a>

O Oracle APEX consiste nos seguintes componentes principais:
+ Um *repositório* que armazena metadados para aplicações e componentes do APEX. O repositório consiste em tabelas, índices e outros objetos instalados na sua instância de banco de dados do Amazon RDS.
+ Um *ouvinte* que gerencia as comunicações HTTP com clientes Oracle APEX. O receptor reside em um host separado como uma instância do Amazon EC2, um servidor on-premises na sua empresa ou no seu computador desktop. O ouvinte aceita as conexões de entrada que os navegadores da web enviam à instância de banco de dados do Amazon RDS para fins de processamento. Em seguida, ele envia os resultados do repositório de volta para os navegadores. 

  O RDS for Oracle é compatível com os seguintes tipos de receptores:
  + Para o Oracle APEX versão 5.0 e posterior, use o Oracle REST Data Services (ORDS) versão 19.1 e posterior. Recomendamos que você use a versão mais recente compatível do Oracle APEX e do ORDS. Essa documentação descreve versões mais antigas apenas para compatibilidade com versões anteriores.
  + Para o Oracle APEX versão 4.1.1, você pode usar o Oracle APEX Listener versão 1.1.4.
  + Você pode usar o Oracle HTTP Server e listeners `mod_plsql`.
**nota**  
O Amazon RDS não é compatível com o servidor HTTP do banco de dados Oracle XML com o gateway PL/SQL incorporado como um listener do Oracle APEX. Em geral, a Oracle não recomenda o uso do gateway PL/SQL embutido para aplicativos executados na internet.

  Para ter mais informações sobre esses tipos de listener, consulte [About Choosing a Web Listener](https://docs.oracle.com/database/apex-5.1/HTMIG/choosing-web-listener.htm#HTMIG29321) (Sobre escolher um listener da Web) na documentação do Oracle.

Ao adicionar as opções `APEX` e `APEX-DEV` à instância de banco de dados do RDS para Oracle, o Amazon RDS instala apenas o repositório do Oracle APEX. Instale seu receptor em um host separado.

# Requisitos e limitações
<a name="Appendix.Oracle.Options.APEX.Requirements"></a>

O tópico a seguir lista os requisitos e limitações para o Oracle APEX e o ORDS.

## Requisitos de versão do Oracle APEX
<a name="Appendix.Oracle.Options.APEX.versions"></a>

A opção `APEX` usa armazenamento na classe de instância de banco de dados para sua instância de banco de dados. A seguir estão as versões compatíveis e os requisitos aproximados de armazenamento para o Oracle APEX:


****  

| Versão do Oracle APEX | Requisitos de armazenamento | Versões compatíveis do Oracle Database | Observações | 
| --- | --- | --- | --- | 
|  Oracle APEX versão 24.2.v1  |  114 MiB  |  Todos  |  Esta versão inclui o patch 37885097: PACOTE DO PSE PARA APEX 24.2 (PSES SOBRE 24.2.0), PATCH\$1VERSION 4.  | 
|  Oracle APEX versão 24.1.v1  |  112 MiB  |  Todos  |  Esta versão inclui o patch 36695709: PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0), PATCH\$1VERSION 3. Se você precisar instalar exatamente a mesma versão de imagens do APEX em sua instância do EC2, baixe o Patch 37544819: 24.1.3 PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0).  | 
|  Oracle APEX versão 23.2.v1  |  110 MiB  |  Todos  |  Esta versão inclui o patch 35895964: PACOTE DE PSEs PARA APEX 23.2 (PSEs ACIMA DE 23.2.0), PATCH\$1VERSION 6. Se você precisar instalar exatamente a mesma versão de imagens do APEX em sua instância do EC2, baixe o Patch 37593125: 23.2.6 PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0).  | 
|  Oracle APEX versão 23.1.v1  |  106 MiB  |  Todos  |  Esta versão inclui o patch 35283657: PSE BUNDLE FOR APEX 23.1 (PSES ACIMA DE 23.1.0), PATCH\$1VERSION 2.  | 
|  Oracle APEX versão 22.2.v1  |  106 MiB  |  Todos  |  Esta versão inclui o patch 34628174: PACOTE DO PSE PARA APEX 22.2 (PSES SOBRE 22.2.0), PATCH\$1VERSION 4.  | 
|  Oracle APEX versão 22.1.v1  |  124 MiB  |  Todos  |  Esta versão inclui o patch 34020981: PACOTE DO PSE PARA APEX 22.1 (PSES SOBRE 22.1.0), PATCH\$1VERSION 6.  | 
|  Oracle APEX versão 21.2.v1  |  125 MiB  |  Todos  |  Esta versão inclui o patch 33420059: PACOTE DO PSE PARA APEX 21.2 (PSES SOBRE 21.2.0), PATCH\$1VERSION 8.  | 
|  Oracle APEX versão 21.1.v1  |  125 MiB  |  Todos  |  Esta versão inclui o patch 32598392: PACOTE PSE PARA APEX 21.1, PATCH\$1VERSÃO 3.  | 
|  Oracle APEX versão 20.2.v1  |  148 MiB  |  Todas, exceto Oracle Database 21c  |  Esta versão inclui o patch 32006852: PACOTE PSE PARA APEX 20.2, PATCH\$1VERSÃO 2020.11.12. Você pode ver o número e a data do patch executando a seguinte consulta: <pre>SELECT PATCH_VERSION, PATCH_NUMBER <br />FROM   APEX_PATCHES;</pre>  | 
|  Oracle APEX versão 20.1.v1  |  173 MiB  |  Todas, exceto Oracle Database 21c  |  Esta versão inclui o patch 30990551: PACOTE PSE PARA APEX 20.1, PATCH\$1VERSÃO 2020.07.15.  | 
|  Oracle APEX versão 19.2.v1  |  149 MiB  |  Todas, exceto Oracle Database 21c  |  | 
|  Oracle APEX versão 19.1.v1  |  148 MiB  |  Todas, exceto Oracle Database 21c  |  | 

Com relação a arquivos .zip do Oracle APEX que podem ser baixados, consulte [Oracle APEX Prior Release Archives](https://www.oracle.com/tools/downloads/apex-all-archives-downloads.html) no site da Oracle.

## Pré-requisitos para Oracle APEX e ORDS
<a name="Appendix.Oracle.Options.APEX.PreReqs"></a>

Observe os seguintes pré-requisitos para usar o Oracle APEX e o ORDS:
+ O sistema precisa usar o Ambiente de Execução Java (JRE).
+ Uma instalação de cliente Oracle deve incluir o seguinte:
  + SQL\$1Plus ou SQL Developer para tarefas de administração
  + Oracle Net Services, para configurar conexões com a instância de banco de dados do RDS para Oracle

## Limitações do Oracle APEX
<a name="Appendix.Oracle.Options.APEX.limitations"></a>

Você não pode modificar a conta de usuário `APEX_version`, que é gerenciada pelo Amazon RDS. Portanto, você não pode aplicar perfis de banco de dados nem impor regras de senha a esse usuário. Os perfis e as configurações de senha para `APEX_version` são predefinidos pela Oracle e pela AWS e projetados para satisfazer os requisitos de segurança do Amazon RDS.

# Configurar o Oracle APEX e o Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.settingUp"></a>

O tópico a seguir lista as etapas necessárias para configurar o Oracle APEX e o ORDS.

**Topics**
+ [

## Adicionar as opções APEX e APEX-DEV à sua instância de banco de dados
](#Appendix.Oracle.Options.APEX.Add)
+ [

## Desbloquear a conta de usuário público em sua instância de banco de dados
](#Appendix.Oracle.Options.APEX.PublicUser)
+ [

## Configuração de serviços RESTful para o Oracle APEX
](#Appendix.Oracle.Options.APEX.ConfigureRESTful)
+ [

## Preparar-se para instalar o ORDS em um host separado
](#Appendix.Oracle.Options.APEX.ORDS.ords-setup)
+ [

## Configurar o Oracle APEX Listener
](#Appendix.Oracle.Options.APEX.Listener)

## Adicionar as opções APEX e APEX-DEV à sua instância de banco de dados
<a name="Appendix.Oracle.Options.APEX.Add"></a>

Para adicionar as opções `APEX` e `APEX-DEV` à instância de banco de dados do RDS para Oracle, faça o seguinte: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione as opções `APEX` e `APEX-DEV` ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Quando você adiciona as opções `APEX` e `APEX-DEV`, ocorre uma breve interrupção enquanto a instância de banco de dados é reiniciada automaticamente. 

**nota**  
`APEX_MAIL` está disponível quando a opção `APEX` está instalada. O privilégio de execução referente ao pacote `APEX_MAIL` é concedido a `PUBLIC`. Portanto, você não precisa da conta administrativa do APEX para usá-lo.

**Como adicionar as opções APEX e APEX-DEV à instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Para **Engine (Mecanismo)**, escolha a edição do Oracle que deseja usar. As opções `APEX` e `APEX-DEV` podem usadas em todas as edições. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para ter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione opções ao grupo de opções. Se você quiser implantar somente o ambiente de tempo de execução do Oracle APEX, adicione apenas a opção `APEX`. Para implantar o ambiente de desenvolvimento completo, adicione as opções `APEX` e `APEX-DEV`.

   Em **Versão**, escolha a versão do Oracle APEX que você deseja usar.
**Importante**  
Se você adicionar as opções `APEX` e `APEX-DEV` a um grupo de opções existente que já esteja anexado a uma ou mais instâncias de banco de dados, ocorrerá uma breve interrupção. Durante essa interrupção, todas as instâncias de banco de dados são automaticamente reiniciadas. 

   Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Quando você adiciona as opções `APEX` e `APEX-DEV` a uma instância de banco de dados existente, ocorre uma breve interrupção enquanto a instância de banco de dados é reiniciada automaticamente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Desbloquear a conta de usuário público em sua instância de banco de dados
<a name="Appendix.Oracle.Options.APEX.PublicUser"></a>

Depois que as opções `APEX` e `APEX-DEV` da instância de banco de dados forem instaladas, faça o seguinte:

1. Altere a senha para a conta `APEX_PUBLIC_USER`.

1. Desbloqueie a conta.

Você pode fazer isso usando o utilitário de linha de comando Oracle SQL\$1Plus. Conecte-se à sua instância de banco de dados como usuário principal e emita os comandos a seguir. Substitua `new_password` por uma senha da sua escolha. 

```
1. ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;
2. ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
```

## Configuração de serviços RESTful para o Oracle APEX
<a name="Appendix.Oracle.Options.APEX.ConfigureRESTful"></a>

Para configurar serviços RESTful no Oracle APEX (não necessário para o Oracle APEX 4.1.1.V1), use o SQL\$1Plus para se conectar à instância de banco de dados como usuário principal. Depois que você fizer isso, execute o procedimento armazenado `rdsadmin.rdsadmin_run_apex_rest_config`. Ao executar o procedimento armazenado, você fornece senhas para os seguintes usuários:
+ `APEX_LISTENER`
+ `APEX_REST_PUBLIC_USER`

O procedimento armazenado executa o script `apex_rest_config.sql` que cria novas contas de banco de dados para esses usuários.

**nota**  
A configuração não é obrigatória para o Oracle APEX versão 4.1.1.v1. Apenas para esta versão Oracle APEX, você não precisa executar o procedimento armazenado.

O comando a seguir executa o procedimento armazenado.

```
1. EXEC rdsadmin.rdsadmin_run_apex_rest_config('apex_listener_password', 'apex_rest_public_user_password');
```

## Preparar-se para instalar o ORDS em um host separado
<a name="Appendix.Oracle.Options.APEX.ORDS.ords-setup"></a>

Instale o ORDS em um host separado, como uma instância do Amazon EC2 em um servidor on-premises na sua empresa ou no seu computador desktop. Nos exemplos desta seção, suponha que o host execute Linux e tenha o nome `myapexhost.example.com`.

Antes de instalar o ORDS, é necessário criar um usuário de SO não privilegiado e, depois, baixar e descompactar o arquivo de instalação do Oracle APEX.

**Como se preparar para a instalação do ORDS**

1. Faça login em `myapexhost.example.com` como `root`. 

1. Crie um usuário de SO sem privilégios para ser o proprietário da instalação do listener. O comando a seguir cria um novo usuário chamado *apexuser*. 

   ```
   useradd -d /home/apexuser apexuser
   ```

   O comando a seguir atribui uma senha ao novo usuário. 

   ```
   passwd apexuser;
   ```

1. Faça login em `myapexhost.example.com` como `apexuser` e baixe o arquivo de instalação do Oracle APEX no Oracle no diretório `/home/apexuser`: 
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Oracle application Express prior release archives](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. Descompacte o arquivo no diretório `/home/apexuser`.

   ```
   unzip apex_version.zip
   ```

   Depois que você descompactar o arquivo, haverá um diretório `apex` no diretório `/home/apexuser`.

1. Enquanto você ainda está conectado no `myapexhost.example.com` como `apexuser`, baixe o arquivo do Oracle REST Data Services no diretório `/home/apexuser`: [http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html).

## Configurar o Oracle APEX Listener
<a name="Appendix.Oracle.Options.APEX.Listener"></a>

**nota**  
O Oracle APEX Listener está defasado. 

O Amazon RDS para Oracle continua a oferecer suporte ao Oracle APEX versão 4.1.1 e ao Oracle APEX Listener versão 1.1.4. Recomendamos que você use as versões com suporte mais recentes do Oracle APEX e do ORDS.

Instale o Oracle APEX Listener em um host separado, como uma instância do Amazon EC2, um servidor local na sua empresa ou seu computador desktop. Supomos que o nome do host é `myapexhost.example.com` e o seu host está sendo executado em Linux.

### Preparar-se para instalar o Oracle APEX Listener
<a name="Appendix.Oracle.Options.APEX.Listener.preparing"></a>

Antes de instalar o Oracle APEX Listener, é necessário criar um usuário de SO não privilegiado e, depois, baixar e descompactar o arquivo de instalação do Oracle APEX.

**Como se preparar para a instalação do Oracle APEX Listener**

1. Faça login em `myapexhost.example.com` como `root`. 

1. Crie um usuário de SO sem privilégios para ser o proprietário da instalação do listener. O comando a seguir cria um novo usuário chamado *apexuser*. 

   ```
   useradd -d /home/apexuser apexuser
   ```

   O comando a seguir atribui uma senha ao novo usuário. 

   ```
   passwd apexuser;
   ```

1. Faça login em `myapexhost.example.com` como `apexuser` e baixe o arquivo de instalação do Oracle APEX no Oracle no diretório `/home/apexuser`: 
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Oracle application Express prior release archives](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. Descompacte o arquivo no diretório `/home/apexuser`.

   ```
   unzip apex_<version>.zip                
   ```

   Depois que você descompactar o arquivo, haverá um diretório `apex` no diretório `/home/apexuser`.

1. Enquanto ainda estiver conectado ao `myapexhost.example.com` como `apexuser`, baixe o arquivo do Oracle APEX Listener no diretório `/home/apexuser`.

#### Instalar e configurar o Oracle APEX Listener
<a name="Appendix.Oracle.Options.APEX.Listener.installing"></a>

Antes de usar o Oracle APEX, é necessário baixar o arquivo `apex.war`, usar o Java para instalar o Oracle APEX Listener e iniciar o Listener.

**Como instalar e configurar o Oracle APEX Listener**

1. Crie um diretório baseado no Oracle APEX Listener e abra o arquivo do listener.

   Execute o seguinte código:

   ```
   mkdir /home/apexuser/apexlistener
   cd /home/apexuser/apexlistener 
   unzip ../apex_listener.version.zip
   ```

1. Execute o código a seguir.

   ```
   java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
   ```

1. Insira as seguintes informações para os prompts do programa: 
   + O nome de usuário do administrador do APEX Listener. O padrão é *adminlistener*. 
   + A senha para o administrador do APEX Listener. 
   + O nome de usuário do gerente do APEX Listener. O padrão é *managerlistener*. 
   + A senha para o administrador do APEX Listener. 

   O programa imprime um URL necessário para concluir a configuração, conforme mostrado a seguir:

   ```
   INFO: Please complete configuration at: http://localhost:8080/apex/listenerConfigure
   Database is not yet configured
   ```

1. Deixe o Oracle APEX Listener em execução para que você possa usar o Oracle Application Express. Quando você concluir o procedimento de configuração, poderá executar o ouvinte em segundo plano. 

1. No navegador, acesse o URL fornecido pelo programa Oracle APEX Listener. A janela de administração do Oracle Application Express Listener é exibida. Insira as seguintes informações: 
   + **Nome de usuário** – `APEX_PUBLIC_USER`
   + **Senha** – a senha de *APEX\$1PUBLIC\$1USER*. Essa é a senha que você especificou anteriormente quando configurou o repositório do Oracle APEX. Para obter mais informações, consulte [Desbloquear a conta de usuário público em sua instância de banco de dados](#Appendix.Oracle.Options.APEX.PublicUser). 
   + **Tipo de conexão** – básica 
   + **Nome de host** – o endpoint da instância de banco de dados do Amazon RDS, como `mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com`. 
   + **Porta** – 1521
   + **SID** – o nome do banco de dados na sua instância de banco de dados do Amazon RDS, como `mydb`. 

1. Escolha **Apply (Aplicar)**. A janela de administração do Oracle APEX é exibida. 

1. Defina uma senha para o usuário `admin` do Oracle APEX. Para fazer isso, use o SQL\$1Plus para conectar à sua instância de banco de dados como o usuário principal e execute os comandos a seguir.

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Substitua `master` pelo seu nome de usuário principal. Quando o script `apxchpwd.sql` solicitar, insira uma nova senha `admin`. 

1. Volte para a janela de administração do Oracle APEX no navegador e escolha **Administração**. Em seguida, escolha **Application Express Internal Administration (Administração interna do Application Express)**. Quando forem solicitadas as credenciais, insira as seguintes informações: 
   + **Nome de usuário** – `admin` 
   + **Senha** – a senha configurada com o script `apxchpwd.sql` 

   Escolha **Login (Fazer login)** e, em seguida, defina uma nova senha para o usuário `admin`. 

Agora o listener está pronto para ser usado.

# Configurar o Oracle Rest Data Services (ORDS)
<a name="Appendix.Oracle.Options.APEX.ORDSConf"></a>

O tópico a seguir lista as opções de configuração para o ORDS 21 e 22:

**Topics**
+ [

## Instalar e configurar o ORDS 21 e anterior
](#Appendix.Oracle.Options.APEX.ORDS)
+ [

## Instalar e configurar o ORDS 22 e posterior
](#Appendix.Oracle.Options.APEX.ORDS22)

## Instalar e configurar o ORDS 21 e anterior
<a name="Appendix.Oracle.Options.APEX.ORDS"></a>

Agora você está pronto para instalar e configurar o Oracle Rest Data Services (ORDS) para uso com o Oracle APEX. Em relação ao Oracle APEX versão 5.0 e posterior, use o ORDS versões 19.1 a 21. Para saber como instalar o ORDS 22 e posterior, consulte [Instalar e configurar o ORDS 22 e posterior](#Appendix.Oracle.Options.APEX.ORDS22).

Instale o listener em um host separado como uma instância do Amazon EC2 em um servidor no local na sua empresa ou no seu computador desktop. Para os exemplos desta seção, vamos supor que o nome do host seja `myapexhost.example.com` e que o host esteja executando o Linux.

**Como instalar e configurar o ORDS 21 e anterior para usar com o Oracle APEX**

1. Acesse [Oracle REST Data Services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html) e examine o Readme. Verifique se você tem a versão necessária do Java instalada.

1. Crie um diretório para a instalação do ORDS.

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. Baixe o arquivo `ords.version.number.zip` de [Serviços de dados Oracle REST](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html).

1. Descompacte o arquivo no diretório `/home/apexuser/ORDS`.

1. Se você estiver instalando ORDS em um banco de dados multilocativo, adicione a seguinte linha ao arquivo `/home/apexuser/ORDS/params/ords_params.properties`:

   ```
   pdb.disable.lockdown=false
   ```

1. Conceda ao usuário mestre os privilégios necessários para instalar o ORDS.

   Depois que as opções para o Oracle APEX forem instaladas, conceda ao usuário principal os privilégios necessários para instalar o esquema do ORDS. É possível fazer isso conectando-se ao banco de dados e executando os comandos a seguir. Substitua `MASTER_USER` pelo nome do seu usuário mestre em letras maiúsculas.
**Importante**  
Ao inserir o nome de usuário, use letras maiúsculas, a menos que você tenha criado o usuário com um identificador que diferencia letras maiúsculas de minúsculas. Por exemplo, se você executar `CREATE USER myuser` ou `CREATE USER MYUSER`, o dicionário de dados armazenará `MYUSER`. No entanto, se você usar aspas duplas em `CREATE USER "MyUser"`, o dicionário de dados armazenará `MyUser`. Para ter mais informações, consulte [Concessão de privilégios SELECT ou EXECUTE a objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md).

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   ```
**nota**  
Esses comandos se aplicam ao ORDS versão 19.1 e posterior.

1. Instale o esquema do ORDS usando o arquivo ords.war baixado.

   ```
   java -jar ords.war install advanced
   ```

   O prompt do programa solicitará as informações a seguir. Os valores padrão estão entre colchetes. Para ter mais informações, consulte o tópico de [Introdução ao Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730), na documentação da Oracle.
   + Insira o local para armazenar dados de configuração:

     Insira */home/apexuser/ORDS*. Este é o local dos arquivos de configuração do ORDS.
   + Especifique o tipo de conexão do banco de dados a ser usado. Digite o número para [1] Basic [2] TNS [3] URL personalizado [1]:

     Escolha o tipo de conexão desejada.
   + Insira o nome do servidor de banco de dados [localhost]: *DB\$1instance\$1endpoint*

     Escolha o padrão ou insira o valor correto.
   + Insira a porta do listener do banco de dados [1521]: *db\$1instance\$1port*

     Escolha o padrão ou insira o valor correto.
   + Digite 1 para especificar o nome de serviço do banco de dados ou 2 para especificar o SID do banco de dados [1]:

     Escolha `2` para especificar o SID do banco de dados. 
   + SID do banco de dados [xe]

     Escolha o padrão ou insira o valor correto.
   + Digite 1 se desejar verificar/instalar o esquema do Oracle REST Data Services ou 2 para pular esta etapa [1]:

     Selecione `1`. Esta etapa cria o usuário proxy do Oracle REST Data Services chamado ORDS\$1PUBLIC\$1USER.
   + Digite a senha do banco de dados para ORDS\$1PUBLIC\$1USER:

     Digite a senha e confirme-a.
   + Requer login com privilégios de administrador para verificar o esquema do Oracle REST Data Services.

     Insira o nome do usuário administrador: *master\$1user*

     Insira a senha do banco de dados para *master\$1user*: *master\$1user\$1password*

     Confirme a senha: *master\$1user\$1password*
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.
   + Insira o espaço de tabela padrão para ORDS\$1METADATA [SYSAUX].

     Insira o espaço de tabela temporário para ORDS\$1METADATA [TEMP].

     Insira o espaço de tabela padrão para ORDS\$1PUBLIC\$1USER [USERS].

     Insira o espaço de tabela temporário para ORDS\$1PUBLIC\$1USER [TEMP].
   + Insira 1 se quiser usar o gateway PL/SQL ou 2 para ignorar essa etapa. Se você está usando o Oracle Application Express ou migrando do mod\$1plsql, deve inserir 1 [1].

     Escolha o padrão.
   + Insira o nome de usuário de banco de dados do gateway PL/SQL [APEX\$1PUBLIC\$1USER]

     Escolha o padrão.
   + Digite a senha do banco de dados para APEX\$1PUBLIC\$1USER:

     Digite a senha e confirme-a.
   + Digite 1 para especificar senhas para usuários de banco de dados de serviços RESTful do Application Express (APEX\$1LISTENER, APEX\$1REST\$1PUBLIC\$1USER) ou 2 para pular esta etapa [1]:

     Escolha `2` para APEX 4.1.1.V1; escolha `1` para todas as outras versões de APEX.
   + [Não necessário para o APEX 4.1.1.v1] Senha de banco de dados para APEX\$1LISTENER

     Digite a senha (se necessário) e confirme-a.
   + [Não necessário para o APEX 4.1.1.v1] Senha de banco de dados para APEX\$1REST\$1PUBLIC\$1USER

     Digite a senha (se necessário) e confirme-a.
   + Digite um número para selecionar um recurso a ser ativado:

     Digite `1` para habilitar todos os recursos: SQL Developer Web, SQL habilitado para REST e API de banco de dados.
   + Digite 1 se desejar iniciar no modo independente ou 2 para sair [1]:

     Digite `1`.
   + Insira o local dos recursos estáticos do APEX:

     Se você descompactou os arquivos de instalação do APEX em `/home/apexuser`, insira `/home/apexuser/apex/images`. Caso contrário, digite `unzip_path/apex/images`, onde *unzip\$1path* é o diretório onde você descompactou o arquivo.
   + Digite 1 se estiver usando HTTP ou 2 se estiver usando HTTPS [1]:

     Se você digitar `1`, especifique a porta HTTP. Se você digitar `2`, especifique a porta HTTPS e o nome do host SSL. A opção HTTPS solicita que você especifique como fornecerá o certificado:
     + Digite `1` para usar o certificado autoassinado.
     + Digite `2` para fornecer seu próprio certificado. Se você inserir `2`, especifique o caminho para o certificado SSL e o caminho para a chave privada do certificado SSL.

1. Defina uma senha para o usuário `admin` do APEX. Para fazer isso, use o SQL\$1Plus para conectar à sua instância de banco de dados como o usuário principal e execute os comandos a seguir.

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Substitua `master` pelo seu nome de usuário principal. Quando o script `apxchpwd.sql` solicitar, insira uma nova senha `admin`. 

1. Inicie o listener do ORDS. Execute o código a seguir.

   ```
   java -jar ords.war
   ```

   Na primeira vez que iniciar o ORDS, você será solicitado a fornecer a localização dos recursos estáticos do APEX. Essa pasta de imagens está localizada no diretório `/apex/images` do diretório de instalação do APEX. 

1. Volte para a janela de administração do Oracle APEX no navegador e escolha **Administração**. Em seguida, escolha **Application Express Internal Administration (Administração interna do Application Express)**. Quando forem solicitadas as credenciais, insira as seguintes informações: 
   + **Nome de usuário** – `admin` 
   + **Senha** – a senha configurada com o script `apxchpwd.sql` 

   Escolha **Login (Fazer login)** e, em seguida, defina uma nova senha para o usuário `admin`. 

Agora o listener está pronto para ser usado.

## Instalar e configurar o ORDS 22 e posterior
<a name="Appendix.Oracle.Options.APEX.ORDS22"></a>

Agora você está pronto para instalar e configurar o Oracle Rest Data Services (ORDS) para uso com o Oracle APEX. Para os exemplos desta seção, vamos supor que o nome do host separado seja `myapexhost.example.com` e que o host esteja executando o Linux. As instruções do ORDS 22 são diferentes das instruções das versões anteriores.

**Como instalar e configurar o ORDS 22 e posterior para usar com o Oracle APEX**

1. Acesse [Oracle REST Data Services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html) e examine o Readme da versão do ORDS que você planeja baixar. Verifique se você tem a versão necessária do Java instalada.

1. Crie um diretório para a instalação do ORDS.

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. Baixe o arquivo `ords.version.number.zip` ou `ords-latest.zip` em [Oracle REST Data Services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html).

1. Descompacte o arquivo no diretório `/home/apexuser/ORDS`.

1. Conceda ao usuário mestre os privilégios necessários para instalar o ORDS.

   Depois que a opção `APEX` for instalada, conceda ao usuário principal os privilégios necessários para instalar o esquema do ORDS. É possível fazer isso fazendo login no banco de dados e executando os comandos a seguir. Substitua `MASTER_USER` pelo nome do seu usuário mestre em letras maiúsculas.
**Importante**  
Ao inserir o nome de usuário, use letras maiúsculas, a menos que você tenha criado o usuário com um identificador que diferencia letras maiúsculas de minúsculas. Por exemplo, se você executar `CREATE USER myuser` ou `CREATE USER MYUSER`, o dicionário de dados armazenará `MYUSER`. No entanto, se você usar aspas duplas em `CREATE USER "MyUser"`, o dicionário de dados armazenará `MyUser`. Para obter mais informações, consulte [Concessão de privilégios SELECT ou EXECUTE a objetos SYS](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md).

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER', 'SELECT', true);
   ```
**nota**  
Os comandos anteriores se aplicam ao ORDS 22 e posterior.

1. Instale o esquema do ORDS usando o script `ords` baixado. Especifique os diretórios para conter arquivos de configuração e arquivos de log. A Oracle Corporation recomenda não colocar esses diretórios dentro do diretório que contém o software do produto ORDS.

   ```
   mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs
   
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs
   ```

   Em relação a instâncias de banco de dados que executam a arquitetura de banco de dados de contêiner (CDB), use o ORDS 23.e ou posterior e transmita o argumento `--pdb-skip-disable-lockdown` ao instalar o ORDS.

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown
   ```

   O prompt do programa solicitará as informações a seguir. Os valores padrão estão entre colchetes. Para ter mais informações, consulte o tópico de [Introdução ao Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730), na documentação da Oracle.
   + `Choose the type of installation:`

     Escolha **2** instalar esquemas do ORDS no banco de dados e criar um grupo de conexões de banco de dados nos arquivos de configuração do ORDS local.
   + `Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:`

     Escolha o tipo de conexão desejada. Este exemplo pressupõe que você escolha **1**.
   + `Enter the name of the database server [localhost]:` ***DB\$1instance\$1endpoint***

     Escolha o padrão ou insira o valor correto.
   + `Enter the database listener port [1521]:` ***DB\$1instance\$1port***

     Escolha o padrão **1521** ou insira o valor correto.
   + `Enter the database service name [orcl]:`

     Insira o nome do banco de dados usado pela instância de banco de dados do RDS para Oracle.
   + `Provide database user name with administrator privileges`

      Digite o nome do usuário mestre da instância de banco de dados do RDS para Oracle.
   + `Enter the database password for [username]:`

     Digite a senha do usuário mestre da instância de banco de dados do RDS para Oracle.
   + `Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]:`
   + `Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP].`
   + `Enter a number to select additional feature(s) to enable [1]:`
   + `Enter a number to configure and start ORDS in standalone mode [1]: `

      Escolha **2** para ignorar a inicialização do ORDS imediatamente no modo autônomo.
   + `Enter a number to select the protocol [1] HTTP`
   + `Enter the HTTP port [8080]:`
   + `Enter the APEX static resources location:`

     Insira o caminho para os arquivos de instalação do Oracle APEX (`/home/apexuser/apex/images`).

1. Defina uma senha para o usuário `admin` do Oracle APEX. Para fazer isso, use o SQL\$1Plus para conectar à sua instância de banco de dados como o usuário principal e execute os comandos a seguir.

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   Substitua `master` pelo seu nome de usuário principal. Quando o script `apxchpwd.sql` solicitar, insira uma nova senha `admin`. 

1. Execute o ORDS no modo autônomo usando o script `ords` com o comando `serve`. Em relação a implantações de produção, pense em usar servidores de aplicações Java EE compatíveis, como Apache Tomcat ou Oracle WebLogic Server. Para ter mais informações, consulte [Deploying and Monitoring Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/23.1/ordig/deploying-and-monitoring-oracle-rest-data-services.html#GUID-6791F5DF-AC67-4885-BFFA-B80964C17EC9), na documentação do Oracle Database.

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config serve \
     --port 8193 \
     --apex-images /home/apexuser/apex/images
   ```

   Se o ORDS estiver em execução e não conseguir acessar a instalação do Oracle APEX, você poderá ver o erro a seguir, principalmente em instâncias que não sejam de CDB. 

   ```
   The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.
   ```

   Para corrigir esse erro, altere a função de validação de solicitação usada pelo ORDS executando o script `ords` com o comando `config`. Por padrão, o ORDS usa o procedimento `ords_util.authorize_plsql_gateway`, que só é compatível com instâncias do CDB. Em relação a instâncias que não sejam de CDB, é possível alterar esse procedimento para o pacote `wwv_flow_epg_include_modules.authorize`. Consulte a documentação do Oracle Database e do Oracle Support para conhecer as práticas recomendadas sobre como configurar a função de validação de solicitações adequada para seu caso de uso.

1. Volte para a janela de administração do Oracle APEX no navegador e escolha **Administração**. Em seguida, escolha **Application Express Internal Administration (Administração interna do Application Express)**. Quando forem solicitadas as credenciais, insira as seguintes informações: 
   + **Nome de usuário** – `admin` 
   + **Senha** – a senha configurada com o script `apxchpwd.sql` 

   Escolha **Login (Fazer login)** e, em seguida, defina uma nova senha para o usuário `admin`. 

Agora o listener está pronto para ser usado.

# Atualizar e remover o Oracle APEX
<a name="Appendix.Oracle.Options.APEX.UpgradeandRemove"></a>

Para atualizar ou remover o Oracle APEX, siga as instruções neste tópico:

**Topics**
+ [

## Atualizar a versão do Oracle APEX
](#Appendix.Oracle.Options.APEX.Upgrade)
+ [

## Remover as opções APEX e APEX-DEV
](#Appendix.Oracle.Options.APEX.Remove)

## Atualizar a versão do Oracle APEX
<a name="Appendix.Oracle.Options.APEX.Upgrade"></a>

**Importante**  
Faça backup da instância de banco de dados antes de atualizar o Oracle APEX. Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md) e [Testar uma atualização do Oracle DB](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md). 

Para atualizar o Oracle APEX com sua instância de banco de dados, faça o seguinte: 
+ Crie um novo grupo de opções para a versão atualizada da instância de banco de dados. 
+ Adicione as versões atualizadas do `APEX` e `APEX-DEV` ao novo grupo de opções. Inclua todas as outras opções usadas pela instância de banco de dados. Para ter mais informações, consulte [Considerações de grupos de opções](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 
+ Quando você atualizar a instância de banco de dados, especifique o novo grupo de opções para a instância de banco de dados atualizada. 

Depois que você atualizar a versão do Oracle APEX, o esquema do Oracle APEX da versão anterior ainda poderá estar no banco de dados. Se não precisar mais dele, após a atualização você poderá ignorar o esquema do Oracle APEX anterior de seu banco de dados. 

Se você atualizar a versão do Oracle APEX e os serviços RESTful não tiverem sido configurados na versão anterior do Oracle APEX, recomendamos que configure os serviços RESTful. Para obter mais informações, consulte [Configuração de serviços RESTful para o Oracle APEX](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.ConfigureRESTful).

Em alguns casos, quando estiver pensando em fazer uma atualização de versão principal da instância de banco de dados, é possível que descubra que está usando uma versão do Oracle APEX que não é compatível com a versão do banco de dados de destino. Nesses casos, você pode atualizar sua versão do Oracle APEX antes de atualizar a instância de banco de dados. Atualizar o Oracle APEX primeiro pode reduzir o tempo necessário para atualizar a instância de banco de dados. 

**nota**  
Depois de atualizar o Oracle APEX, instale e configure um receptor para ser usado com a versão atualizada. Para instruções, consulte [Configurar o Oracle APEX Listener](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.Listener).

## Remover as opções APEX e APEX-DEV
<a name="Appendix.Oracle.Options.APEX.Remove"></a>

Você pode remover as opções `APEX` e `APEX-DEV` de uma instância de banco de dados. Para remover as opções de uma instância de banco de dados, faça o seguinte: 
+ Para remover as opções `APEX` e `APEX-DEV` de várias instâncias de bancos de dados, remova as opções do grupo de opções ao qual elas pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Quando você remove as opções de um grupo de opções existente anexado a várias instâncias de banco de dados, ocorre uma breve interrupção enquanto todas as instâncias do banco de dados são reiniciadas. 

  Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Para remover as opções `APEX` e `APEX-DEV` de uma única instância de banco de dados, modifique a instância e especifique um grupo de opções diferente que não inclua essas opções. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Quando você remove as opções, ocorre uma breve interrupção enquanto a instância de banco de dados é reiniciada automaticamente. 

  Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

Quando você remove as opções `APEX` e `APEX-DEV` de uma instância de banco de dados, o esquema do APEX é removido do banco de dados. 

# Integração do Amazon EFS
<a name="oracle-efs-integration"></a>

O Amazon Elastic File System (Amazon EFS) fornece armazenamento de arquivos sem servidor e totalmente elástico para que você possa compartilhar dados de arquivos sem provisionar ou gerenciar a capacidade e a performance do armazenamento. Com o Amazon EFS, você pode criar um sistema de arquivos e montá-lo em sua VPC por meio do protocolo NFS versões 4.0 e 4.1 (NFSv4). Depois, você pode usar o sistema de arquivos do EFS como qualquer outro sistema de arquivos compatível com POSIX. Para obter informações gerais, consulte [O que é o Amazon Elastic File System?](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) e o blog da AWS [Integrar o Amazon RDS para Oracle com o Amazon EFS](https://aws.amazon.com//blogs/database/integrate-amazon-rds-for-oracle-with-amazon-efs/).

**Topics**
+ [

## Visão geral da integração com o Amazon EFS
](#oracle-efs-integration.overview)
+ [

# Configurar permissões de rede para a integração do RDS para Oracle com o Amazon EFS
](oracle-efs-integration.network.md)
+ [

# Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon EFS
](oracle-efs-integration.iam.md)
+ [

# Adicionar a opção EFS\$1INTEGRATION
](oracle-efs-integration.adding.md)
+ [

# Configurar permissões do sistema de arquivos Amazon EFS
](oracle-efs-integration.file-system.md)
+ [

# Transferir arquivos entre o RDS para Oracle e um sistema de arquivos Amazon EFS
](oracle-efs-integration.transferring.md)
+ [

# Remover a opção EFS\$1INTEGRATION
](oracle-efs-integration.removing.md)
+ [

# Solução de problemas de integração do Amazon EFS
](oracle-efs-integration.troubleshooting.md)

## Visão geral da integração com o Amazon EFS
<a name="oracle-efs-integration.overview"></a>

Com o Amazon EFS, é possível transferir arquivos entre uma instância de banco de dados do RDS para Oracle e um sistema de arquivos do EFS. Por exemplo, você pode usar o EFS para oferecer suporte aos seguintes casos de uso:
+ Compartilhar um sistema de arquivos entre aplicações e vários servidores de banco de dados.
+ Criar um diretório compartilhado para arquivos relacionados à migração, incluindo arquivos de dados de espaços de tabela transportáveis. Para obter mais informações, consulte [Migrar usando espaços de tabela transportáveis da Oracle](oracle-migrating-tts.md).
+ Armazenar e compartilhar arquivos de log de restauração arquivados sem alocar espaço de armazenamento adicional no servidor.
+ Usar utilitários do Oracle Database, como o `UTL_FILE`, para ler e gravar arquivos.

### Vantagens da integração com o Amazon EFS
<a name="oracle-efs-integration.overview.advantages"></a>

Ao escolher um sistema de arquivos do EFS em vez de soluções alternativas de transferência de dados, você recebe os seguintes benefícios:
+ É possível transferir arquivos do Oracle Data Pump entre o Amazon EFS e uma instância de banco de dados do RDS para Oracle. Você não precisa copiar esses arquivos localmente porque o Data Pump importa diretamente do sistema de arquivos EFS. Para obter mais informações, consulte [Importar dados para o Oracle no Amazon RDS](Oracle.Procedural.Importing.md).
+ A migração de dados é mais rápida do que ao usar um link de banco de dados.
+ Você evita alocar espaço de armazenamento em sua instância de banco de dados do RDS para Oracle a fim de manter os arquivos.
+ Um sistema de arquivos do EFS pode ajustar automaticamente a escala do armazenamento sem exigir que você o provisione.
+ A integração com o Amazon EFS não tem taxas mínimas nem custos de configuração. Você paga somente pelo que usar.
+ A integração do Amazon EFS comporta duas formas de criptografia: a criptografia de dados em trânsito e a criptografia em repouso. A criptografia de dados em trânsito é habilitada por padrão usando o TLS versão 1.2. É possível ativar a criptografia de dados em repouso ao criar um sistema de arquivos do Amazon EFS. Para obter mais informações, consulte [Encrypting data at rest](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html) (Criptografia de dados em repouso) no *Guia do usuário do Amazon Elastic File System*.

### Requisitos para a integração com o Amazon EFS
<a name="oracle-efs-integration.overview.requirements"></a>

Certifique-se de cumprir os seguintes requisitos:
+ Seu banco de dados deve executar o banco de dados versão 19.0.0.0.ru-2022-07.rur-2022-07.r1 ou posterior.
+ A instância de banco de dados e o sistema de arquivos do EFS devem estar na mesma Região da AWS, VPC e Conta da AWS. O RDS para Oracle não permite o acesso entre contas e regiões do EFS.
+ A VPC deve ter a **Resolução DNS** e os **Nomes de host DNS** habilitados. Para ter mais informações, consulte [Atributos de DNS para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support) no *Guia do usuário da Amazon Virtual Private Cloud*.
+ Se você usar um nome de DNS no comando `mount`, a VPC deverá estar configurada para usar o servidor DNS fornecido pela Amazon. Os servidores DNS personalizados não são compatíveis.
+ Você deve usar soluções que não são do RDS para fazer backup do sistema de arquivos do EFS. O RDS para Oracle não é compatível com backups automatizados nem snapshots manuais de banco de dados de um sistema de arquivos EFS. Para ter mais informações, consulte [Backing up your Amazon EFS file systems](https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html) (Fazer backup de seus sistemas de arquivos Amazon EFS).

# Configurar permissões de rede para a integração do RDS para Oracle com o Amazon EFS
<a name="oracle-efs-integration.network"></a>

Para que o RDS para Oracle se integre ao Amazon EFS, sua instância de banco de dados deve ter acesso de rede a um sistema de arquivos EFS. Para ter mais informações, consulte [Controlling network access to Amazon EFS file systems for NFS clients](https://docs.aws.amazon.com/efs/latest/ug/NFS-access-control-efs.html) (Controlar o acesso à rede aos sistemas de arquivos Amazon EFS para clientes do NFS) no *Guia do usuário do Amazon Elastic File System*.

**Topics**
+ [

## Controlar acesso à rede com grupos de segurança
](#oracle-efs-integration.network.inst-access)
+ [

## Controlar o acesso à rede com políticas de sistema de arquivos
](#oracle-efs-integration.network.file-system-policy)

## Controlar acesso à rede com grupos de segurança
<a name="oracle-efs-integration.network.inst-access"></a>

Você pode controlar o acesso de sua instância de banco de dados aos sistemas de arquivos EFS usando mecanismos de segurança da camada de rede, como grupos de segurança da VPC. Para permitir o acesso a um sistema de arquivos EFS para sua instância de banco de dados, seu sistema de arquivos EFS deve atender aos seguintes requisitos:
+ Existe um destino de montagem do EFS em cada zona de disponibilidade usada por uma instância de banco de dados do RDS para Oracle.

  Um *destino de montagem do EFS* fornece um endereço IP para um endpoint do NFSv4 no qual é possível montar um sistema de arquivos do EFS. Monte o sistema de arquivos usando o respectivo nome DNS, que é resolvido para o endereço IP do destino de montagem do EFS usado pela zona de disponibilidade da sua instância de banco de dados. 

  Você pode configurar instâncias de banco de dados em diferentes AZs para usar o mesmo sistema de arquivos EFS. Para multi-AZ, você precisa de um ponto de montagem para cada AZ em sua implantação. Talvez você precise mover uma instância de banco de dados para uma AZ diferente. Por esses motivos, recomendamos que você crie um ponto de montagem EFS em cada AZ em sua VPC. Por padrão, quando você cria um sistema de arquivos EFS usando o console, o RDS cria destinos de montagem para todas as AZs.
+ Um grupo de segurança é anexado ao destino de montagem.
+ O grupo de segurança tem uma regra de entrada para permitir a sub-rede de rede ou o grupo de segurança da instância de banco de dados do RDS para Oracle em TCP/2049 (tipo NFS).

Para ter mais informações, consulte [Creating Amazon EFS file systems](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#configure-efs-network-access) (Criar sistemas de arquivos Amazon EFS) e [Creating and managing EFS mount targets and security groups](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html) (Criar e gerenciar destinos de montagem e grupos de segurança do EFS) no *Guia do usuário do Amazon Elastic File System*.

## Controlar o acesso à rede com políticas de sistema de arquivos
<a name="oracle-efs-integration.network.file-system-policy"></a>

A integração do Amazon EFS com o RDS para Oracle funciona com a política padrão (vazia) do sistema de arquivos EFS. A política padrão não usa o IAM para se autenticar. Em vez disso, ele concede acesso total a qualquer cliente anônimo que possa se conectar ao sistema de arquivos usando um destino de montagem. A política padrão estará em vigor sempre que uma política de sistema de arquivos configurada pelo usuário não estiver em vigor, inclusive na criação do sistema de arquivos. Para ter mais informações, consulte [Default EFS file system policy](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy) (Política padrão do sistema de arquivos EFS) no *Guia do usuário do Amazon Elastic File System*.

Para fortalecer o acesso ao seu sistema de arquivos EFS para todos os clientes, inclusive o RDS para Oracle, você pode configurar as permissões do IAM. Nessa abordagem, você cria uma política do sistema de arquivos. Para ter mais informações, consulte [Creating file system policies](https://docs.aws.amazon.com/efs/latest/ug/create-file-system-policy.html) (Criar políticas do sistema de arquivos) no *Guia do usuário do Amazon Elastic File System*.

# Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon EFS
<a name="oracle-efs-integration.iam"></a>

Por padrão, o recurso de integração do Amazon EFS não usa um perfil do IAM: a configuração da opção `USE_IAM_ROLE` é `FALSE`. Para integrar o RDS para Oracle ao Amazon EFS e um perfil do IAM, a instância de banco de dados deve ter permissões do IAM para acessar um sistema de arquivos Amazon EFS.

**Topics**
+ [

## Etapa 1: Criar um perfil do IAM para a instância de banco de dados e anexar a política
](#oracle-efs-integration.iam.role)
+ [

## Etapa 2: Criar uma política para seu sistema de arquivos Amazon EFS
](#oracle-efs-integration.iam.policy)
+ [

## Etapa 3: Associar um perfil do IAM à sua instância de banco de dados do RDS para Oracle
](#oracle-efs-integration.iam.instance)

## Etapa 1: Criar um perfil do IAM para a instância de banco de dados e anexar a política
<a name="oracle-efs-integration.iam.role"></a>

Nesta etapa, você criará uma função para a instância de banco de dados do RDS para Oracle para permitir que o Amazon RDS acesse o sistema de arquivos EFS.

### Console
<a name="oracle-efs-integration.iam.role.console"></a>

**Como criar um perfil do IAM a fim de permitir que o Amazon RDS acesse um sistema de arquivos EFS**

1. Abra o [Console de Gerenciamento do IAM](https://console.aws.amazon.com/iam/home?#home).

1. No painel de navegação, escolha **Roles**.

1. Selecione **Create role**.

1. Para **Serviço da AWS**, escolha **RDS**.

1. Em **Select your use case (Selecionar o caso de uso)**, escolha **RDS – Add Role to Database (Adicionar função ao banco de dados)**.

1. Escolha **Próximo**.

1. Não adicione nenhuma política de permissões. Escolha **Próximo**.

1. Defina **Role name (Nome da função)** como um nome para a sua função do IAM, por exemplo, `rds-efs-integration-role`. Você também pode adicionar um valor opcional para **Description** (Descrição).

1. Selecione **Criar perfil**.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

Para limitar as permissões do serviço a um recurso específico, recomendamos usar as chaves de contexto de condição global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) e [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) em relações de confiança baseadas em recursos. Essa é a maneira mais eficiente de se proteger contra o [problema "confused deputy"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Você pode usar as duas chaves de contexto de condição global e fazer com que o valor `aws:SourceArn` contenha o ID da conta. Nesses casos, verifique se o valor `aws:SourceAccount` e a conta no `aws:SourceArn` usa o mesmo ID de conta quando eles são usados na mesma instrução.
+ Use `aws:SourceArn` se quiser acesso entre serviços para um único recurso.
+ Use `aws:SourceAccount` se você quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

Na relação de confiança, certifique-se de usar a chave de contexto de condição global `aws:SourceArn` com o nome do recurso da Amazon (ARN) completo dos recursos que acessam a função.

O seguinte comando da AWS CLI cria a função chamada `rds-efs-integration-role` para essa finalidade.

**Example**  
Para Linux, macOS ou Unix:  

```
aws iam create-role \
   --role-name rds-efs-integration-role \
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": my_account_ID,
                 "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
             }
         }
       }
     ]
   }'
```
Para Windows:  

```
aws iam create-role ^
   --role-name rds-efs-integration-role ^
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": my_account_ID,
                 "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
             }
         }
       }
     ]
   }'
```

Para ter mais informações, consulte [Criar uma função para delegar permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.

## Etapa 2: Criar uma política para seu sistema de arquivos Amazon EFS
<a name="oracle-efs-integration.iam.policy"></a>

Nesta etapa, crie uma política para seu sistema de arquivos EFS.

**Como criar ou editar uma política de sistema de arquivos EFS**

1. Abra o [Console de Gerenciamento do EFS](https://console.aws.amazon.com/efs/home?#home).

1. Escolha **File Systems (Sistemas de arquivos)**.

1. Na página **File systems** (Sistemas de arquivos), selecione o sistema para o qual deseja editar ou criar uma política de sistema de arquivos. A página de detalhes desse sistema de arquivos é exibida.

1. Selecione a guia **File system policy** (Política do sistema de arquivos).

   Se a política estiver em branco, a política padrão do sistema de arquivos EFS estará em uso. Para ter mais informações, consulte [Default EFS file system policy](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy ) (Política padrão do sistema de arquivos EFS) no *Guia do usuário do Amazon Elastic File System*.

1. Escolha **Editar**. A página **File system policy (Política de sistema de arquivos)** é exibida.

1. No **Policy editor** (Editor de políticas), insira uma política como a seguinte e selecione **Save** (Salvar).

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "ExamplePolicy01",
       "Statement": [
           {
               "Sid": "ExampleStatement01",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/rds-efs-integration-role"
               },
               "Action": [
                   "elasticfilesystem:ClientMount",
                   "elasticfilesystem:ClientWrite",
                   "elasticfilesystem:ClientRootAccess"
               ],
               "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/fs-1234567890abcdef0"
           }
       ]
   }
   ```

------

## Etapa 3: Associar um perfil do IAM à sua instância de banco de dados do RDS para Oracle
<a name="oracle-efs-integration.iam.instance"></a>

Nesta etapa, associe um perfil do IAM à instância de banco de dados. Esteja ciente dos seguintes requisitos:
+ Você precisa ter acesso a um perfil do IAM com a política de permissões do Amazon EFS necessária anexada a ele. 
+ Só é possível associar um perfil do IAM à instância de banco de dados do RDS para Oracle por vez.
+ O status de sua instância deve ser **Available** (Disponível).

Para ter mais informações, consulte [Identity and access management for Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/auth-and-access-control.html) (Identity and access management para Amazon EFS) no *Guia do usuário do Amazon Elastic File System*.

### Console
<a name="oracle-efs-integration.iam.instance.console"></a>

**Como associar um perfil do IAM à instância de banco de dados do RDS para Oracle**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Escolha **Databases (Bancos de dados)**.

1. Se a instância do banco de dados não estiver disponível, escolha **Actions (Ações)** e, em seguida, **Start (Iniciar)**. Quando o status da instância for exibido **Started (Iniciado)**, vá para a próxima etapa.

1. Escolha o nome da instância de banco de dados Oracle para exibir os detalhes.

1. Na guia **Connectivity & security** (Conectividade e segurança), role para baixo até a seção **Manage IAM roles** (Gerenciar funções do IAM) na parte inferior da página.

1. Escolha a função a ser adicionada na seção **Add IAM roles to this instance** (Adicionar funções do IAM a essa instância).

1. Em **Feature** (Recurso), selecione **EFS\$1INTEGRATION**.

1. Escolha **Add role (adicionar função)**.

### AWS CLI
<a name="oracle-efs-integration.iam.instance.CLI"></a>

O seguinte comando da AWS CLI adiciona a função a uma instância de banco de dados Oracle denominada `mydbinstance`.

**Example**  
Para Linux, macOS ou Unix:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name EFS_INTEGRATION \
   --role-arn your-role-arn
```
Para Windows:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name EFS_INTEGRATION ^
   --role-arn your-role-arn
```

Substitua `your-role-arn` pelo ARN da função que você anotou em uma etapa anterior. `EFS_INTEGRATION` deve ser especificado para a opção `--feature-name`.

# Adicionar a opção EFS\$1INTEGRATION
<a name="oracle-efs-integration.adding"></a>

Para usar o Amazon RDS para Oracle com Amazon EFS, sua instância de banco de dados deve estar associada a um grupo de opções que inclua a opção `EFS_INTEGRATION`. 

Várias instâncias de banco de dados Oracle que pertencem ao mesmo grupo de opções compartilham o mesmo sistema de arquivos EFS. Instâncias de banco de dados diferentes podem acessar os mesmos dados, mas o acesso pode ser dividido com o uso de diferentes diretórios Oracle. Para ter mais informações, consulte [Transferir arquivos entre o RDS para Oracle e um sistema de arquivos Amazon EFS](oracle-efs-integration.transferring.md).

## Console
<a name="oracle-efs-integration.adding.console"></a>

**Como configurar um grupo de opções para a integração do Amazon EFS**

1. Crie um novo grupo de opções ou identifique um grupo de opções existente ao qual você pode adicionar a opção `EFS_INTEGRATION`.

   Para obter informações sobre como criar um grupo de opções, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Adicione a opção `EFS_INTEGRATION` ao grupo de opções. Você precisa especificar o ID do sistema de arquivos `EFS_ID` e definir o sinalizador `USE_IAM_ROLE`.

   Para ter mais informações, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Associe o grupo de opções à instância de banco de dados de uma das seguintes formas:
   + Crie uma instância de banco de dados Oracle e associe o grupo de opções a ela. Para obter informações sobre como criar uma instância de banco de dados, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
   + Modifique uma instância de banco de dados do Oracle para associar o grupo de opções a ela. Para obter informações sobre como modificar uma instância de banco de dados Oracle, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

## AWS CLI
<a name="oracle-efs-integration.adding.cli"></a>

**Como configurar um grupo de opções para a integração do EFS**

1. Crie um novo grupo de opções ou identifique um grupo de opções existente ao qual você pode adicionar a opção `EFS_INTEGRATION`.

   Para obter informações sobre como criar um grupo de opções, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Adicione a opção `EFS_INTEGRATION` ao grupo de opções.

   Por exemplo, o seguinte comando da AWS CLI adiciona a opção `EFS_INTEGRATION` a um grupo de opções denominado **myoptiongroup**.  
**Example**  

   Para Linux, macOS ou Unix:

   ```
   aws rds add-option-to-option-group \
      --option-group-name myoptiongroup \
      --options "OptionName=EFS_INTEGRATION,OptionSettings=\ 
      [{Name=EFS_ID,Value=fs-1234567890abcdef0},{Name=USE_IAM_ROLE,Value=TRUE}]"
   ```

   Para Windows:

   ```
   aws rds add-option-to-option-group ^
      --option-group-name myoptiongroup ^
      --options "OptionName=EFS_INTEGRATION,OptionSettings=^
      [{Name=EFS_ID,Value=fs-1234567890abcdef0},{Name=USE_IAM_ROLE,Value=TRUE}]"
   ```

1. Associe o grupo de opções à instância de banco de dados de uma das seguintes formas:
   + Crie uma instância de banco de dados Oracle e associe o grupo de opções a ela. Para obter informações sobre como criar uma instância de banco de dados, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
   + Modifique uma instância de banco de dados do Oracle para associar o grupo de opções a ela. Para obter informações sobre como modificar uma instância de banco de dados Oracle, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

# Configurar permissões do sistema de arquivos Amazon EFS
<a name="oracle-efs-integration.file-system"></a>

Por padrão, somente o usuário raiz (UID `0`) tem permissões de leitura, gravação e execução para um sistema de arquivos EFS recém-criado. Para os outros usuários modificarem o sistema de arquivos, o usuário raiz deve conceder explicitamente acesso a eles. O usuário da instância de banco de dados do RDS para Oracle está na categoria `others`. Para ter mais informações, consulte [Working with users, groups, and permissions at the Network File System (NFS) Level](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html) (Trabalhar com usuários, grupos e permissões no nível do Network File System (NFS)) no *Guia do usuário do Amazon Elastic File System*.

Para permitir que a instância de banco de dados do RDS para Oracle leia e grave arquivos em um sistema de arquivos EFS, faça o seguinte:
+ Monte um sistema de arquivos EFS localmente em sua instância do Amazon EC2 ou on-premises.
+ Configure as permissões de granulação fina.

Por exemplo, para conceder a `other` usuários permissões para gravar na raiz do sistema de arquivos EFS, execute `chmod 777` nesse diretório. Para ter mais informações, consulte [Example Amazon EFS file system use cases and permissions](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html#accessing-fs-nfs-permissions-ex-scenarios) (Exemplos de casos de uso e permissões do sistema de arquivos Amazon EFS) no *Guia do usuário do Amazon Elastic File System*. 

# Transferir arquivos entre o RDS para Oracle e um sistema de arquivos Amazon EFS
<a name="oracle-efs-integration.transferring"></a>

Para transferir arquivos entre uma instância do RDS para Oracle e um sistema de arquivos do Amazon EFS, crie pelo menos um diretório Oracle e configure as permissões do sistema de arquivos EFS para controlar o acesso à instância de banco de dados.

**Topics**
+ [

## Criar um diretório Oracle
](#oracle-efs-integration.transferring.od)
+ [

## Transferir dados de e para um sistema de arquivos EFS: exemplos
](#oracle-efs-integration.transferring.upload)

## Criar um diretório Oracle
<a name="oracle-efs-integration.transferring.od"></a>

Para criar um diretório da Oracle, use o procedimento `rdsadmin.rdsadmin_util.create_directory_efs`. O procedimento tem os seguintes parâmetros.


****  

| Nome do parâmetro | Tipo de dados | Padrão | Obrigatório | Descrição | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  Sim  |  O nome do diretório da Oracle.   | 
|  `p_path_on_efs`  |  VARCHAR2  |  –  |  Sim  |  O caminho no sistema de arquivos EFS. O prefixo do nome do caminho usa o `/rdsefs-fsid/` padrão, em que *fsid* é um espaço reservado para o ID do sistema de arquivos EFS. Por exemplo, se seu sistema de arquivos EFS for denominado `fs-1234567890abcdef0` e você criar um subdiretório nesse sistema de arquivos chamado `mydir`, você poderá especificar o seguinte valor: <pre>/rdsefs-fs-1234567890abcdef0/mydir</pre>  | 

Suponha que você crie um subdiretório denominado `/datapump1` no sistema de arquivos EFS `fs-1234567890abcdef0`. O exemplo a seguir cria um diretório Oracle `DATA_PUMP_DIR_EFS` que aponta para o diretório `/datapump1` no sistema de arquivos EFS. O valor do caminho do sistema de arquivos para o parâmetro `p_path_on_efs` é prefixado com a string `/rdsefs-`.

```
BEGIN
  rdsadmin.rdsadmin_util.create_directory_efs(
    p_directory_name => 'DATA_PUMP_DIR_EFS', 
    p_path_on_efs    => '/rdsefs-fs-1234567890abcdef0/datapump1');
END;
/
```

## Transferir dados de e para um sistema de arquivos EFS: exemplos
<a name="oracle-efs-integration.transferring.upload"></a>

O exemplo a seguir usa o Oracle Data Pump para exportar a tabela denominada `MY_TABLE` para o arquivo `datapump.dmp`. Esse arquivo reside em um sistema de arquivos EFS.

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'TABLE', job_name=>null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-exp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

O exemplo a seguir usa o Oracle Data Pump para importar a tabela denominada `MY_TABLE` do arquivo `datapump.dmp`. Esse arquivo reside em um sistema de arquivos EFS.

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(
    operation => 'IMPORT',
    job_mode  => 'TABLE',
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-imp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

Para obter mais informações, consulte [Importar dados para o Oracle no Amazon RDS](Oracle.Procedural.Importing.md).

# Remover a opção EFS\$1INTEGRATION
<a name="oracle-efs-integration.removing"></a>

As etapas para remover a opção `EFS_INTEGRATION` dependem de você estar removendo a opção de várias instâncias de banco de dados ou de uma única instância.


| Número de instâncias de banco de dado | Ação | Informações relacionadas | 
| --- | --- | --- | 
| Vários | Remova a opção EFS\$1INTEGRATION do grupo de opções ao qual as instâncias de banco de dados pertencem. Essa alteração afeta todas as instâncias que usam o grupo de opções. | [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption) | 
| Único | Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção EFS\$1INTEGRATION. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. | [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md) | 

Depois de remover a opção `EFS_INTEGRATION`, se desejar, você poderá excluir o sistema de arquivos do EFS que estava conectado às instâncias de banco de dados.

# Solução de problemas de integração do Amazon EFS
<a name="oracle-efs-integration.troubleshooting"></a>

A instância de banco de dados do RDS para Oracle monitora a conectividade com um sistema de arquivos Amazon EFS. Quando o monitoramento detecta um problema, ele pode tentar corrigi-lo e publicar um evento no console do RDS. Para ter mais informações, consulte [Visualizar eventos do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html).

Utilize as informações desta seção para ajudar a diagnosticar e corrigir problemas comuns ao trabalhar com a integração do Amazon EFS.


| Notificação | Descrição | Ação | 
| --- | --- | --- | 
|  `The EFS for RDS Oracle instance instance_name isn't available on the primary host. NFS port 2049 of your EFS isn't reachable.`  |  A instância de banco de dados não pode se comunicar com o sistema de arquivos EFS.  |  Verifique o seguinte: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `The EFS isn't reachable.`  |  Ocorreu um erro durante a instalação da opção `EFS_INTEGRATION`.  |  Verifique o seguinte: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `The associated role with your DB instance wasn't found.`  |  Ocorreu um erro durante a instalação da opção `EFS_INTEGRATION`.  |  Associe um perfil do IAM à instância de banco de dados do RDS para Oracle.  | 
|  `The associated role with your DB instance wasn't found.`  |  Ocorreu um erro durante a instalação da opção `EFS_INTEGRATION`. O RDS para Oracle foi restaurado a partir de um snapshot de banco de dados com a configuração da opção `USE_IAM_ROLE` de `TRUE`.  |  Associe um perfil do IAM à instância de banco de dados do RDS para Oracle.  | 
|  `The associated role with your DB instance wasn't found.`  |  Ocorreu um erro durante a instalação da opção `EFS_INTEGRATION`. O RDS para Oracle foi criado por meio de um modelo completo do CloudFormation com a configuração da opção `USE_IAM_ROLE` de `TRUE`.  |  Como solução alternativa, realize as seguintes etapas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `PLS-00302: component 'CREATE_DIRECTORY_EFS' must be declared`  |  Esse erro pode ocorrer quando você está usando uma versão do RDS para Oracle não compatível com o Amazon EFS.  |  Você deve estar usando a instância de banco de dados do RDS para Oracle versão 19.0.0.0.ru-2022-07.rur-2022-07.r1 ou posteriores.  | 
|  `Read access of your EFS is denied. Check your file system policy.`  |  Sua instância de banco de dados não pode ler o sistema de arquivos EFS.  |  Seu sistema de arquivos EFS deve permitir acesso de leitura por meio do perfil do IAM ou no nível do sistema de arquivos EFS.   | 
|  N/D  |  Sua instância de banco de dados não pode gravar no sistema de arquivos EFS.  |  Siga as seguintes etapas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 

# Oracle Java Virtual Machine
<a name="oracle-options-java"></a>

O Amazon RDS oferece suporte ao Oracle Java Virtual Machine (JVM) por meio da opção `JVM`. O Oracle Java oferece um esquema SQL e funções que facilitam os recursos do Oracle Java em um banco de dados Oracle. Para obter mais informações, consulte [Introdução ao Java no banco de dados Oracle](https://docs.oracle.com/database/121/JJDEV/chone.htm) na documentação da Oracle. É possível usar o Oracle JVM com todas as versões do Oracle Database 21c (21.0.0) e do Oracle Database 19c (19.0.0).

## Considerações sobre o Oracle JVM
<a name="oracle-options-java.considerations"></a>

A implementação do Java no Amazon RDS tem um conjunto limitado de permissões. O usuário mestre recebe a função `RDS_JAVA_ADMIN`, que concede um subconjunto dos privilégios concedidos pela função `JAVA_ADMIN`. Para listar os privilégios concedidos à função `RDS_JAVA_ADMIN`, execute a seguinte consulta na sua instância de banco de dados:

```
SELECT * FROM dba_java_policy 
   WHERE grantee IN ('RDS_JAVA_ADMIN', 'PUBLIC') 
   AND enabled = 'ENABLED' 
   ORDER BY type_name, name, grantee;
```

## Pré-requisitos para o Oracle JVM
<a name="oracle-options-java.prerequisites"></a>

Veja a seguir os pré-requisitos para usar o Oracle Java:
+ A instância de banco de dados deve pertencer a uma classe grande o suficiente. O Oracle Java não é compatível com as classes de instância de banco de dados db.t3.small. Para obter mais informações, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md).
+ A instância de banco de dados deve ter **Auto Minor Version Upgrade (Atualização automática de versão secundária)** habilitada. Essa opção permite que a instância de banco de dados receba atualizações de versões secundárias do mecanismo automaticamente quando estiverem disponíveis. O Amazon RDS usa essa opção para atualizar a instância de banco de dados para a Oracle Patch Set Update (PSU) ou Release Update (RU) mais recente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Práticas recomendadas do Oracle JVM
<a name="oracle-options-java.best-practices"></a>

Estas são as práticas recomendadas para usar o Oracle Java: 
+ Para obter segurança máxima, use a opção `JVM` com Secure Sockets Layer (SSL). Para obter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 
+ Configure a instância de banco de dados para restringir o acesso à rede. Para obter mais informações, consulte [Cenários para acessar uma instância de banco de dados em uma VPC](USER_VPC.Scenarios.md) e [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 
+ Atualize a configuração de seus endpoints HTTPS para oferecer suporte ao TLSv1.2 se você atender às seguintes condições:
  + Você usa o Oracle Java Virtual Machine (JVM) para conectar um endpoint HTTPS por meio de protocolos TLSv1 ou TLSv1.1.
  + Seu endpoint não é compatível com o protocolo TLSv1.2.
  + Você não aplicou a atualização da versão de abril de 2021 ao Oracle DB.

  Ao atualizar a configuração do endpoint, você garante que a conectividade da JVM com o endpoint HTTPS continuará funcionando. Para obter mais informações sobre alterações TLS no Oracle JRE e no JDK, consulte [Oracle JRE e JDK Cryptographic Roadmap](https://java.com/en/jre-jdk-cryptoroadmap.html).

## Adicionar a opção Oracle JVM
<a name="oracle-options-java.add"></a>

Este é o processo geral para adicionar a opção `JVM` a uma instância de banco de dados: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Há uma breve interrupção enquanto a opção `JVM` é adicionada. Depois de adicionar a opção , você não precisará reiniciar sua instância de banco de dados. Assim que o grupo de opções estiver ativo, o Oracle Java estará disponível. 

**nota**  
Durante essa interrupção, as funções de verificação de senha são desativadas brevemente. Você também pode esperar ver eventos relacionados às funções de verificação de senha durante a interrupção. As funções de verificação de senha são ativadas novamente antes que a instância de banco de dados Oracle esteja disponível.

**Para adicionar a opção JVM a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 
   + Em **Engine (Mecanismo)**, selecione o mecanismo de banco de dados usado pela instância de banco de dados (**oracle-ee**, **oracle-se**, **oracle-se1** ou **oracle-se2**). 
   + Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **JVM** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, aplique o grupo de opções ao executar a instância. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
   + Para uma instância de banco de dados existente, aplique o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

1. Conceda as permissões necessárias aos usuários.

   Por padrão, o usuário mestre do Amazon RDS tem as permissões para usar a opção `JVM`. Se outros usuários precisarem dessas permissões, conecte-se à instância de banco de dados como o usuário mestre em um cliente SQL e conceda as permissões aos usuários.

   O exemplo a seguir concede as permissões para usar a opção `JVM` ao usuário `test_proc`.

   ```
   create user test_proc identified by password;
   CALL dbms_java.grant_permission('TEST_PROC', 'oracle.aurora.security.JServerPermission', 'LoadClassInPackage.*', '');
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

   Depois que o usuário receber as permissões, a seguinte consulta deverá retornar a saída.

   ```
   select * from dba_java_policy where grantee='TEST_PROC';
   ```
**nota**  
O nome do usuário do Oracle diferencia maiúsculas de minúsculas e, normalmente, usa somente caracteres maiúsculos.

## Remover a opção Oracle JVM
<a name="oracle-options-java.remove"></a>

Você pode remover a opção `JVM` de uma instância de banco de dados. Há uma breve interrupção enquanto a opção é removida. Depois de remover a opção `JVM`, você não precisará reiniciar a instância de banco de dados. 

**Atenção**  
 Remover a opção `JVM` poderá resultar em perda de dados se a instância de banco de dados estiver usando tipos de dados que foram habilitados como parte da opção. Faça backup dos dados antes de continuar. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md). 

Para remover a opção `JVM` de uma instância de banco de dados, faça o seguinte: 
+ Remova a opção `JVM` do grupo de opções ao qual ela pertence. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção `JVM`. Essa alteração afeta uma única instância de banco de dados. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Enterprise Manager
<a name="Oracle.Options.OEM"></a>

O Amazon RDS oferece suporte para o Oracle Enterprise Manager (OEM). OEM é a linha de produtos da Oracle para o gerenciamento integrado de tecnologia da informação empresarial. 

O Amazon RDS é compatível com o OEM em CDBs ou não CDBs do Oracle Database 19c. A tabela a seguir descreve as opções de OEM compatíveis.


****  

| Opção | ID da opção | Versões do OEM compatíveis | 
| --- | --- | --- | 
|  [OEM Database Express](Appendix.Oracle.Options.OEM_DBControl.md)  |  `OEM`  |  OEM Database Express 19c  | 
|  [OEM Management Agent](Oracle.Options.OEMAgent.md)  |  `OEM_AGENT`  |  OEM Cloud Control para 13c  | 

**nota**  
É possível usar o OEM Database ou o OEM Management Agent, mas não ambos.

# Oracle Enterprise Manager Database Express
<a name="Appendix.Oracle.Options.OEM_DBControl"></a>

O Amazon RDS comporta o Oracle Enterprise Manager Database Express (EM Express) com o uso da opção OEM. O Amazon RDS é compatível com o EM Express para Oracle Database 19c usando a arquitetura CDB ou não.

O EM Express é uma ferramenta de gerenciamento de banco de dados baseada na web incluída em seu banco de dados e só está disponível quando está aberta. Ele comporta as principais funções de gerenciamento de performance e de administração básica de banco de dados. Para ter mais informações, consulte [Introduction to Oracle Enterprise Manager Database Express](https://docs.oracle.com/en/database/oracle/oracle-database/19/admqs/getting-started-with-database-administration.html#GUID-BA75AD46-D22E-4914-A31E-C395CD6A2BBA), na documentação do Oracle Database.

**nota**  
O EM Express não é compatível com a classe de instância de banco de dados db.t3.small. Para ter mais informações sobre classes de instância de banco de dados, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md).

## Configurações da opção OEM
<a name="Appendix.Oracle.Options.OEM_DBControl.Options"></a>

O Amazon RDS oferece suporte para as seguintes configurações da opção OEM. 


****  

| Configuração da opção | Valores válidos | Descrição | 
| --- | --- | --- | 
| **Porta** | Um valor inteiro |  A porta na instância de banco de dados do RDS para Oracle que escuta o EM Express. O padrão é 5500.  | 
| **Security Groups (Grupos de segurança** | — |  Um grupo de segurança tem acesso à **Port (Porta)**.   | 

## Etapa 1: Adicionar a opção OEM
<a name="Appendix.Oracle.Options.OEM_DBControl.Add"></a>

O processo geral para adicionar as opções do OEM a uma instância de banco de dados é o seguinte: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Quando você adiciona a opção OEM, uma breve interrupção ocorre enquanto a instância de banco de dados é reiniciada automaticamente. 

**Para adicionar a opção OEM a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Em **Engine (Mecanismo)**, escolha a edição Oracle para sua instância de banco de dados. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção OEM ao grupo de opções e defina as configurações da opção. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). Para ter mais informações sobre cada configuração, consulte [Configurações da opção OEM](#Appendix.Oracle.Options.OEM_DBControl.Options). 
**nota**  
Se você adicionar a opção OEM a um grupo de opções existente que já está anexado a uma ou mais instâncias de banco de dados, uma breve interrupção ocorrerá enquanto todas as instâncias de banco de dados forem reiniciadas automaticamente. 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente:
   + Para uma nova instância de banco de dados, aplique o grupo de opções ao executar a instância. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, aplique o grupo de opções modificando a instância e anexando o novo grupo de opções. Quando você adiciona a opção OEM, uma breve interrupção ocorre enquanto a instância de banco de dados é reiniciada automaticamente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

**nota**  
Também é possível usar a AWS CLI para adicionar a opção OEM. Para ver exemplos, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

## Etapa 2: (Somente CDB) Desbloquear a conta de usuário DBSNMP
<a name="Appendix.Oracle.Options.OEM_DBControl.DBSNMP"></a>

Se sua instância de banco de dados usa a arquitetura CDB, você deve fazer login no EM Express como `DBSNMP`, em um CDB, `DBSNMP` é um usuário comum. Por padrão, essa conta está bloqueada. Se sua instância de banco de dados não usa a arquitetura CDB, ignore essa etapa.

**Como desbloquear a conta de usuário DBSNMP em uma instância de CDB**

1. No SQL\$1Plus ou em outra aplicação Oracle SQL, faça login como usuário principal em sua instância de banco de dados.

1. Execute o seguinte procedimento armazenado para desbloquear a conta `DBSNMP`:

   ```
   1. EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');
   ```

   Se você receber um erro informando que o procedimento não existe, reinicie sua instância do CDB para instalá-la automaticamente. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).

## Etapa 3: Acessar o EM Express por meio do navegador
<a name="Appendix.Oracle.Options.OEM_DBControl.Using"></a>

Ao acessar o EM Express pelo navegador da web, é exibida uma janela de login que solicita um nome de usuário e uma senha.

**Para acessar o EM Express por meio do navegador**

1. Identifique o endpoint e a porta do EM Express para sua instância de banco de dados do Amazon RDS. Para obter informações sobre como localizar o endpoint de sua instância de banco de dados do Amazon RDS, consulte [Encontrar o endpoint da instância de banco de dados do RDS para Oracle](USER_Endpoint.md).

1. Insira um URL na barra de localização do navegador usando o formato a seguir. 

   ```
   https://endpoint.rds.amazonaws.com:port/em
   ```

   Por exemplo, se o endpoint da sua instância de banco de dados do Amazon RDS for `mydb.a1bcde234fgh.us-east-1.rds.amazonaws.com`, e a porta do EM Express for `1158`, use o URL a seguir para acessar o EM Express.

   ```
   1. https://mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com:1158/em
   ```

1. Quando os detalhes de login forem solicitados, realize uma das seguintes ações, dependendo da arquitetura do banco de dados:  
**O banco de dados não é CDB.**  
Digite o nome de usuário mestre e a senha mestre da sua instância de banco de dados.  
**O banco de dados é CDB.**  
Digite `DBSNMP` para o usuário e a senha do `DBSNMP`. Deixe o campo `Container` vazio.

## Modificar configurações do banco de dados OEM
<a name="Appendix.Oracle.Options.OEM_DBControl.ModifySettings"></a>

Depois de habilitar o banco de dados OEM, você pode modificar a configuração Security Groups para essa opção. 

Você não pode modificar o número da porta OEM depois de ter associado o grupo de opções uma instância de banco de dados. Para alterar o número da porta OEM para uma instância de banco de dados, faça o seguinte: 

1. Crie um novo grupo de opções.

1. Adicione a opção OEM com o novo número de porta ao novo grupo de opções. 

1. Remova o grupo de opções existente da instância de banco de dados.

1. Adicione o novo grupo de opções à instância de banco de dados.

Para mais informações sobre como modificar as configurações da opção, consulte [Modificar uma configuração de opção](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption). Para ter mais informações sobre cada configuração, consulte [Configurações da opção OEM](#Appendix.Oracle.Options.OEM_DBControl.Options). 

## Executar tarefas do OEM Database Express
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks"></a>

É possível usar os procedimentos do Amazon RDS para executar determinadas tarefas do OEM Database Express. Executando esses procedimentos, você pode executar as tarefas listadas a seguir.

**nota**  
As tarefas do OEM Database Express são executadas de forma assíncrona.

**Topics**
+ [

### Mudar o front-end do site do OEM Database Express para Adobe Flash
](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash)
+ [

### Mudar o front-end do site do OEM Database Express para Oracle JET
](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET)

### Mudar o front-end do site do OEM Database Express para Adobe Flash
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash"></a>

**nota**  
Essa tarefa está disponível somente para não CDBs do Oracle Database 19c.

A partir do Oracle Database 19c, a Oracle descontinuou a interface de usuário anterior do OEM Database Express, que é baseada no Adobe Flash. Em vez disso, o OEM Database Express agora usa uma interface criada com o Oracle JET. Se você tiver dificuldades com a nova interface, é possível mudar para a interface defasada baseada em Flash. As dificuldades que você pode ter com a nova interface incluem ficar preso em uma tela `Loading` após fazer o login no OEM Database Express. Você também pode sentir falta de alguns recursos que estavam presentes na versão baseada em Flash do OEM Database Express.

Para mudar o front-end do site do OEM Database Express para o Adobe Flash, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash`. Este procedimento é equivalente ao comando SQL `execemx emx`.

As práticas recomendadas não recomendam o uso do Adobe Flash. Embora você possa reverter para o OEM Database Express baseado em Flash, recomendamos o uso de sites do OEM Database Express baseados em JET, se possível. Se você reverter para o uso do Adobe Flash e quiser mudar novamente para o Oracle JET, use o procedimento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet`. Após uma atualização do banco de dados Oracle, uma versão mais recente do Oracle JET pode resolver problemas relacionados ao JET no OEM Database Express. Para obter mais informações sobre como mudar para o Oracle JET, consulte [Mudar o front-end do site do OEM Database Express para Oracle JET](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET).

**nota**  
Executar essa tarefa na instância de banco de dados de origem para uma réplica de leitura também faz com que a réplica de leitura mude os front-ends do site do OEM Database Express para o Adobe Flash.

A chamada do procedimento a seguir cria uma tarefa para mudar o site do OEM Database Express para Adobe Flash e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash() as TASK_ID from DUAL;
```

Você pode visualizar o resultado exibindo o arquivo de saída da tarefa.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Substitua *`task-id`* pelo ID da tarefa retornado pelo procedimento. Para obter mais informações sobre o procedimento `rdsadmin.rds_file_util.read_text_file` do Amazon RDS, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) 

Também é possível visualizar o conteúdo do arquivo de saída da tarefa no Console de gerenciamento da AWS ao pesquisar o `task-id` nas entradas do log na seção **Logs & events (Logs e eventos)**.

### Mudar o front-end do site do OEM Database Express para Oracle JET
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET"></a>

**nota**  
Essa tarefa está disponível somente para não CDBs do Oracle Database 19c.

Para mudar o front-end do site do OEM Database Express para o Oracle JET, execute o Amazon RDS procedimento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet`. Este procedimento é equivalente ao comando SQL `execemx omx`.

Por padrão, os sites do OEM Database Express para instâncias de banco de dados Oracle que executam a versão 19c ou posterior usam o Oracle JET. Caso tenha usado o procedimento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash` para mudar o front-end do site do OEM Database Express para o Adobe Flash, você pode revertê-lo para o Oracle JET. Para fazer isso, use o procedimento `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet`. Para obter mais informações sobre como mudar para o Adobe Flash, consulte [Mudar o front-end do site do OEM Database Express para Adobe Flash](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash).

**nota**  
Executar esta tarefa a partir da instância de banco de dados de origem para uma réplica de leitura também faz com que a réplica de leitura mude seus front-ends do site do OEM Database Express para o Oracle JET.

A chamada do procedimento a seguir cria uma tarefa para mudar o site do OEM Database Express para Oracle JET e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet() as TASK_ID from DUAL;
```

Você pode visualizar o resultado exibindo o arquivo de saída da tarefa.

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

Substitua *`task-id`* pelo ID da tarefa retornado pelo procedimento. Para obter mais informações sobre o procedimento `rdsadmin.rds_file_util.read_text_file` do Amazon RDS, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles) 

Também é possível visualizar o conteúdo do arquivo de saída da tarefa no Console de gerenciamento da AWS ao pesquisar o `task-id` nas entradas do log na seção **Logs & events (Logs e eventos)**.

## Remover a opção de banco de dados OEM
<a name="Appendix.Oracle.Options.OEM_DBControl.Remove"></a>

Você pode remover a opção OEM de uma instância de banco de dados. Quando você remove a opção OEM, ocorre uma breve interrupção enquanto a instância de banco de dados é reiniciada automaticamente. Assim, depois de remover a opção OEM, você não precisará reiniciar sua instância de banco de dados.

Para remover a opção OEM de uma instância de banco de dados, siga um destes procedimentos:
+ Remova a opção OEM do grupo de opções ao qual ela pertence. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção OEM. Essa alteração afeta uma única instância de banco de dados. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Management Agent para Enterprise Manager Cloud Control
<a name="Oracle.Options.OEMAgent"></a>

O Management Agent Oracle Enterprise Manager (OEM) é um componente de software que monitora destinos em execução em hosts e que comunica essas informações ao Oracle Management Service (OMS) na camada intermediária. O Amazon RDS suporta o Management Agent pelo uso da opção `OEM_AGENT`. 

Para obter mais informações, consulte [Visão geral do Oracle Enterprise Manager Cloud Control 12c](http://docs.oracle.com/cd/E24628_01/doc.121/e25353/overview.htm) e [Visão geral do Oracle Enterprise Manager Cloud Control 13c](http://docs.oracle.com/cd/E63000_01/EMCON/overview.htm#EMCON109) na documentação da Oracle.

**Topics**
+ [

## Requisitos para o Management Agent
](#Oracle.Options.OEMAgent.PreReqs)
+ [

## Pré-requisitos de comunicação do host OMS
](#Oracle.Options.OEMAgent.PreReqs.host)
+ [

## Limitações para o Management Agent
](#Oracle.Options.OEMAgent.limitations)
+ [

## Configurações de opção do Management Agent
](#Oracle.Options.OEMAgent.Options)
+ [

## Habilitar a opção Management Agent para uma instância de banco de dados
](#Oracle.Options.OEMAgent.Enable)
+ [

## Remover a opção Management Agent
](#Oracle.Options.OEMAgent.Remove)
+ [

## Como executar tarefas de banco de dados com o Management Agent
](#Oracle.Options.OEMAgent.DBTasks)

## Requisitos para o Management Agent
<a name="Oracle.Options.OEMAgent.PreReqs"></a>

Veja a seguir os requisitos gerais para usar o Management Agent: 
+ A instância de banco de dados deve executar o Oracle Database 19c (19.0.0.0). É possível usar a arquitetura CDB ou não CDB.
+ É necessário usar um Oracle Management Service (OMS) configurado para estabelecer conexão com a instância de banco de dados. Observe os seguintes requisitos de OMS:
  + As versões 13.5.0.0.v2 e 13.5.0.0.v3 do Management Agent requerem o OMS versão 13.5.0.23 ou 24.1.
  + A versão 13.5.0.0.v1 do Management Agent requer o OMS versão 13.5.0.0 ou 24.1.
  + As versões 13.4.0.9.v1 e 13.4.0.9.v2 do Management Agent requerem a versão 13.4.0.9 ou posterior do OMS e o patch 32198287.
+ Na maioria dos casos, você precisa configurar sua VPC para permitir conexões do OMS com a sua instância de banco de dados. Se não tiver familiaridade com a Amazon Virtual Private Cloud (Amazon VPC), recomendamos que você conclua as etapas em [Tutorial: Criar uma VPC para usar com uma instância de banco de dados (somente IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md) antes de continuar. 
+ É possível usar o Management Agent com o Oracle Enterprise Manager Cloud Control para 12c e 13c. Certifique-se de que você tenha espaço de armazenamento suficiente para sua versão do OEM:
  + Pelo menos 8,5 GiB para OEM 13c versão 5
  + Pelo menos 8,5 GiB para OEM 13c versão 4
  + Pelo menos 8,5 GiB para OEM 13c versão 3
  + Pelo menos 5,5 GiB para OEM 13c versão 2
  + Pelo menos 4,5 GiB para o OEM 13c versão 1
  + Pelo menos 2,5 GiB para OEM 12c
+ Se você estiver usando as versões do Management Agent `OEM_AGENT 13.2.0.0.v3` e `13.3.0.0.v2` e deseja usar a conectividade TCPS, siga as instruções no tópico [Configuring third party CA certificates for communication with target databases](https://docs.oracle.com/cd/E73210_01/EMSEC/GUID-8337AD48-1A32-4CD5-84F3-256FAE93D043.htm#EMSEC15996) na documentação da Oracle. Além disso, atualize o JDK em seu OMS seguindo as instruções no documento da Oracle com o Oracle Doc ID 2241358.1. Isso garante que o OMS ofereça suporte para todos os pacotes de criptografia compatíveis com o banco de dados.
**nota**  
A conectividade TCPS entre o Management Agent e a instância de banco de dados é compatível com o Management Agent `OEM_AGENT 13.2.0.0.v3`, `13.3.0.0.v2`, `13.4.0.9.v1` e versões posteriores.

## Pré-requisitos de comunicação do host OMS
<a name="Oracle.Options.OEMAgent.PreReqs.host"></a>

Certifique-se de que seu host OMS e sua instância de banco de dados do Amazon RDS podem se comunicar. Faça o seguinte: 
+ Para se conectar do Management Agent com o host do OMS, se o host do OMS estiver atrás de um firewall, adicione os endereços IP das suas instâncias de banco de dados ao firewall. Certifique-se de que o firewall do OMS permita o seguinte tráfego de rede:  
Do host do OMS à sua instância de banco de dados  
Configure uma regra de firewall unidirecional que permita tráfego do host do OMS para a porta do receptor do banco de dados (padrão 1521) e para a porta do OEM Agent (padrão 3872).  
Da sua instância de banco de dados para o host do OMS  
Configure uma regra de firewall unidirecional que permita tráfego do da instância de banco de dados para a porta HTTP do OMS (padrão 4903).
+ Para se conectar do OMS ao Management Agent, se o OMS tiver um nome de host que possa ser publicamente resolvido, você deverá adicionar o endereço do OMS a um grupo de segurança. O grupo de segurança deve ter regras de entrada que permitam o acesso à porta do listener de banco de dados e à porta do Management Agent. Para obter um exemplo de como criar regras de segurança e adicionar regras de entrada, consulte [Tutorial: Criar uma VPC para usar com uma instância de banco de dados (somente IPv4)](CHAP_Tutorials.WebServerDB.CreateVPC.md). 
+ Para se conectar do OMS ao Management Agent, se o OMS não tiver um nome de host que possa ser publicamente resolvido, use um dos seguintes: 
  + Se o OMS estiver hospedado em uma instância do Amazon Elastic Compute Cloud (Amazon EC2) em uma VPC privada, você poderá configurar o emparelhamento de VPCs para se conectar do OMS ao Management Agent. Para obter mais informações, consulte [Uma instância de banco de dados em uma VPC acessada por uma instância do EC2 em uma VPC diferente](USER_VPC.Scenarios.md#USER_VPC.Scenario3). 
  + Se o OMS estiver hospedado no local, você poderá configurar uma conexão VPN para permitir o acesso do OMS ao Management Agent. Para obter mais informações, consulte [Uma instância de banco de dados em uma VPC acessada por uma aplicação cliente pela internet](USER_VPC.Scenarios.md#USER_VPC.Scenario4) ou [Conexões VPN](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html). 
+ Para conectar o OEM Management Agent versão 13.5.0.0 (v1-v3) a um host do OMS 24.1, defina `MINIMUM_TLS_VERSION` para usar o protocolo `TLSv1.2` do TLS 1.2 em suas opções de configuração.

## Limitações para o Management Agent
<a name="Oracle.Options.OEMAgent.limitations"></a>

Veja a seguir algumas limitações do uso do Management Agent: 
+ Não é possível fornecer imagens personalizadas do Oracle Management Agent.
+ Tarefas administrativas, como a execução do trabalhos e aplicação de patch de banco de dados, que exigem credenciais de host, não são compatíveis. 
+ Não há garantias de que as métricas de host e a lista de processos reflitam o estado do sistema atual. Por isso, você não deve usar o OEM para monitorar o sistema de arquivos raiz ou o sistema de arquivos do ponto de montagem. Para obter mais informações sobre como monitorar o sistema operacional, consulte [Monitorar métricas do SO com o monitoramento avançado](USER_Monitoring.OS.md).
+ A descoberta automática não é aceita. Você deve adicionar destinos de banco de dados manualmente. 
+ A disponibilidade do módulo OMS depende de sua edição do banco de dados. Por exemplo, o módulo de ajuste e diagnóstico de performance do banco de dados só está disponível para o Oracle Database Enterprise Edition. 
+ O Management Agent consome memória adicional e recursos de computação. Se você tiver problemas de performance depois de habilitar a opção `OEM_AGENT`, recomendamos que você dimensione para uma classe de instância de banco de dados maior. Para obter mais informações, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md) e [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 
+ O usuário que executa o `OEM_AGENT` no host do Amazon RDS não tem acesso ao log de alertas pelo sistema operacional. Assim, você não pode coletar métricas para `DB Alert Log` e `DB Alert Log Error Status` no OEM.

## Configurações de opção do Management Agent
<a name="Oracle.Options.OEMAgent.Options"></a>

O Amazon RDS oferece suporte para as seguintes configurações da opção Management Agent.


| Configuração da opção | Obrigatório | Valores válidos | Descrição | 
| --- | --- | --- | --- | 
|  **Version (Versão** (`AGENT_VERSION`)  |  Sim  |  `13.5.0.0.v3` `13.5.0.0.v2` `13.5.0.0.v1` `13.4.0.9.v2` `13.4.0.9.v1` `13.3.0.0.v2` `13.3.0.0.v1` `13.2.0.0.v3` `13.2.0.0.v2` `13.2.0.0.v1` `13.1.0.0.v1`  |  A versão do software Management Agent. A versão mínima compatível é `13.1.0.0.v1`. O nome da opção da AWS CLI é `OptionVersion`.  Nas regiões AWS GovCloud (US), as versões 13.1 não estão disponíveis.   | 
|  **Port (Porta** (`AGENT_PORT`)  |  Sim  |  Um valor inteiro  |  A porta na instância de banco de dados que escuta o host do OMS. O padrão é 3872. Seu host OMS deve pertencer a um grupo de segurança que tenha acesso a essa porta.  O nome da opção da AWS CLI é `Port`.  | 
|  **Grupos de segurança**  |  Sim  |  Grupos de segurança existentes  |  Um grupo de segurança tem acesso à **Port (Porta)**. Seu host OMS deve pertencer a esse grupo de segurança.  O nome da opção da AWS CLI é `VpcSecurityGroupMemberships` ou `DBSecurityGroupMemberships`.  | 
|  **OMS\$1HOST**  |  Sim  |  Um valor de string, por exemplo, *my.example.oms*   |  O nome do host ou endereço IP publicamente acessível do OMS.  O nome da opção da AWS CLI é `OMS_HOST`.  | 
|  **OMS\$1PORT**  |  Sim  |  Um valor inteiro  |  A porta de upload HTTPS no host do OMS que escuta o Management Agent.  Para determinar a porta de upload HTTPS, conecte-se ao host do OMS e execute o seguinte comando (que requer a senha `SYSMAN`): emctl status oms -details  O nome da opção da AWS CLI é `OMS_PORT`.  | 
|  **AGENT\$1REGISTRATION\$1PASSWORD**  |  Sim  |  Um valor de string  |  A senha usada pelo Management Agent para autenticar-se no OMS. Recomendamos criar uma senha persistente no OMS antes de habilitar a opção `OEM_AGENT`. Com uma senha persistente, você pode compartilhar um único grupo de opções do Management Agent entre vários bancos de dados do Amazon RDS.  O nome da opção da AWS CLI é `AGENT_REGISTRATION_PASSWORD`.  | 
|  **ALLOW\$1TLS\$1ONLY**  |  Não  |  `true`, `false` (padrão)  |  Um valor que configura o OEM Agent para oferecer suporte apenas ao protocolo `TLSv1` enquanto o agente escuta como um servidor. Essa configuração não é mais compatível. Por padrão, as versões do Management Agent 13.1.0.0.v1 e posterior são compatíveis com Transport Layer Security (TLS).   | 
|  **MINIMUM\$1TLS\$1VERSION**  |  Não  |  `TLSv1` (padrão), `TLSv1.2`  |  Um valor que especifica a versão mínima do TLS compatível com o OEM Agent enquanto o agente escuta como um servidor. Versões sem suporte do agente são compatíveis apenas com a definição de `TLSv1`. Para conectar a versão 13.5.0.0 (v1-v3) a um host do OMS 24.1, defina essa configuração como `TLSv1.2`.  | 
|  **TLS\$1CIPHER\$1SUITE**  |  Não  |  Consulte [Configurações de opção do Management Agent](#Oracle.Options.OEMAgent.Options).  |  Um valor que especifica o conjunto de cifras TLS usado pelo OEM Agent enquanto o agente escuta como um servidor.   | 

A tabela a seguir lista os conjuntos de cifras TLS compatíveis com a opção Management Agent.


| Pacote de cifras | Versão do Agent compatível | Conformidade com FedRAMP | 
| --- | --- | --- | 
| TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | Todos | Não | 
| TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 13.1.0.0.v1 e posterior | Não | 
| TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 13.2.0.0.v3 e posterior | Não | 
| TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 | 13.2.0.0.v3 e posterior | Não | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 13.2.0.0.v3 e posterior | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 13.2.0.0.v3 e posterior | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 13.2.0.0.v3 e posterior | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 13.2.0.0.v3 e posterior | Sim | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 13.4.0.9.v1 e posterior | Sim | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 13.4.0.9.v1 e posterior | Sim | 

### Compatibilidade de certificados com pacotes de criptografia
<a name="Oracle.Options.OEMAgent.CertificateCompatibility"></a>

O RDS para Oracle comporta os certificados RSA e Elliptic Curve Digital Signature Algorithm (ECDSA). Ao configurar a opção Agente OEM para sua instância de banco de dados, você deve garantir que os pacotes de criptografia especificados na configuração da opção `TLS_CIPHER_SUITE` aceitem o tipo de certificado usado pela sua instância de banco de dados.

A tabela a seguir mostra a compatibilidade entre os tipos de certificado e pacotes de criptografia:


| Tipo de certificado | Pacotes de criptografia compatíveis | Pacotes de criptografia incompatíveis | 
| --- | --- | --- | 
| Pacotes de RSA (rds-ca-2019, rds-ca-rsa2048-g1, rds-ca-rsa4096-g1) |  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| Certificados ECDSA (rds-ca-ecc384-g1) |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 

Ao especificar um pacote de criptografia na configuração da opção `TLS_CIPHER_SUITE`, verifique se é compatível com o tipo de certificado usado por sua instância de banco de dados. Se você tentar associar um grupo de opções a uma opção do Agente OEM que contenha um pacote de criptografia incompatível com o tipo de certificado de uma instância de banco de dados, a operação falhará com uma mensagem de erro indicando a incompatibilidade.

## Habilitar a opção Management Agent para uma instância de banco de dados
<a name="Oracle.Options.OEMAgent.Enable"></a>

Para habilitar a opção Management Agent, use as seguintes etapas:

**Topics**
+ [

### Etapa 1: adicionar a opção Management Agent a uma instância de banco de dados
](#Oracle.Options.OEMAgent.Add)
+ [

### Etapa 2: Desbloquear a conta de usuário DBSNMP
](#Oracle.Options.OEMAgent.DBSNMP)
+ [

### Etapa 3: Adicionar seus destinos ao console do Agente de gerenciamento
](#Oracle.Options.OEMAgent.Using)

### Etapa 1: adicionar a opção Management Agent a uma instância de banco de dados
<a name="Oracle.Options.OEMAgent.Add"></a>

Para adicionar a opção Agente de gerenciamento à instância de banco de dados, faça o seguinte:

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Se você encontrar erros, poderá verificar os documentos no [My Oracle Support](https://support.oracle.com/) para obter informações sobre como resolver problemas específicos.

Depois de adicionar a opção Management Agent, você não precisará reiniciar sua instância de banco de dados. Assim que o grupo de opções estiver ativo, o OEM Agent estará ativo. 

Se o host OMS estiver usando um certificado de terceiros não confiáveis, o Amazon RDS retorna o erro a seguir.

```
You successfully installed the OEM_AGENT option. Your OMS host is using an untrusted third party certificate. 
Configure your OMS host with the trusted certificates from your third party.
```

Se o erro for retornado, a opção do Management Agent não estará habilitada até que o problema seja corrigido. Para obter informações sobre como corrigir o problema, consulte o documento My Oracle Support [2202569.1](https://support.oracle.com/epmos/faces/DocContentDisplay?id=2202569.1).

#### Console
<a name="Oracle.Options.OEMAgent.Add.Console"></a>

**Como adicionar a opção Agente de gerenciamento a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Em **Engine (Mecanismo)**, escolha a edição Oracle para sua instância de banco de dados. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **OEM\$1AGENT** ao grupo de opções e defina as configurações da opção. Para obter mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). Para obter mais informações sobre cada configuração, consulte [Configurações de opção do Management Agent](#Oracle.Options.OEMAgent.Options). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

#### AWS CLI
<a name="Oracle.Options.OEMAgent.Add.CLI"></a>

O exemplo a seguir usa o comando da AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) para adicionar a opção `OEM_AGENT` a um grupo de opções chamado `myoptiongroup`. 

Para Linux, macOS ou Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] ^
    --apply-immediately
```

### Etapa 2: Desbloquear a conta de usuário DBSNMP
<a name="Oracle.Options.OEMAgent.DBSNMP"></a>

O Agente de Gerenciamento usa a conta do usuário `DBSNMP` para se conectar ao banco de dados e relatar problemas ao Oracle Enterprise Manager. Em um CDB, `DBSNMP` é um usuário comum. Essa conta de usuário é necessária tanto para o Agente de gerenciamento quanto para o OEM Database Express. Por padrão, essa conta está bloqueada. O procedimento para desbloquear essa conta difere dependendo se seu banco de dados usa a arquitetura não CDB ou CDB.

**Como desbloquear a conta de usuário DBSNMP**

1. No SQL\$1Plus ou em outra aplicação Oracle SQL, faça login como usuário principal em sua instância de banco de dados.

1. Realize uma das seguintes ações, dependendo da arquitetura do banco de dados:  
**O banco de dados não é CDB.**  
Execute a seguinte declaração SQL:  

   ```
   1. ALTER USER dbsnmp IDENTIFIED BY new_password ACCOUNT UNLOCK;
   ```  
**O banco de dados é CDB.**  
Execute o seguinte procedimento armazenado para desbloquear a conta `DBSNMP`:  

   ```
   1. EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');
   ```
Se você receber um erro informando que o procedimento não existe, reinicie sua instância do CDB para instalá-la automaticamente. Para obter mais informações, consulte [Reinicializar uma instância de banco de dados](USER_RebootInstance.md).

### Etapa 3: Adicionar seus destinos ao console do Agente de gerenciamento
<a name="Oracle.Options.OEMAgent.Using"></a>

Para adicionar uma instância de banco de dados como destino, você deve conhecer o endpoint e a porta. Para obter informações sobre como localizar o endpoint de sua instância de banco de dados do Amazon RDS, consulte [Encontrar o endpoint da instância de banco de dados do RDS para Oracle](USER_Endpoint.md). Se o banco de dados usa a arquitetura CDB, adicione o contêiner `CDB$ROOT` separadamente como destino.

**Como adicionar destinos ao console do Agente de gerenciamento**

1. No seu console do OMS, escolha **Setup (Configurar)**, **Add Target (Adicionar destino)**, **Add Targets Manually (Adicionar destinos manualmente)**. 

1. Escolha **Add Targets Declaratively by Specifying Target Monitoring Properties (Adicionar destinos de forma declarativa especificando as propriedades de monitoramento do destino)**.

1. Para **Target Type (Tipo de destino)**, escolha **Database Instance (Instância de banco de dados)**.

1. Em **Monitoring Agent (Agente de monitoramento)**, escolha o agente com o identificador igual ao identificador de instância de banco de dados do RDS. 

1. Escolha **Add Manually (Adicionar manualmente)**.

1. Insira o endpoint da instância de banco de dados do Amazon RDS ou escolha-o na lista de nomes de host. Verifique se o nome de host especificado corresponde ao endpoint da instância de banco de dados do Amazon RDS.

1. Especifique as seguintes propriedades do banco de dados:
   + Em **Target Name (Nome do destino)**, insira um nome. 
   + Em **Database system name (Nome do sistema de banco de dados)**, insira um nome.
   + Em **Monitor username (Nome de usuário do monitor)**, insira **dbsnmp**. 
   + Em **Senha do monitor**, insira a senha de [Etapa 2: Desbloquear a conta de usuário DBSNMP](#Oracle.Options.OEMAgent.DBSNMP). 
   + Em **Role (Função)**, insira **normal**. 
   + Em **Oracle home path (Caminho de início Oracle)**, insira **/oracle**. 
   + Para **Listener Machine name (Nome da máquina ouvinte)**, o identificador do agente já é exibido. 
   + Em **Port (Porta)**, insira a porta do banco de dados. A porta padrão do RDS é 1521. 
   + Em **Database name (Nome do banco de dados)**, insira o nome do banco de dados. Se o banco de dados for um CDB, esse nome será `RDSCDB`. 

1. Escolha **Test Connection (Testar conexão)**. 

1. Escolha **Next (Próximo)**. O banco de dados de destino aparece na sua lista de recursos monitorados. 

## Remover a opção Management Agent
<a name="Oracle.Options.OEMAgent.Remove"></a>

Você pode remover o OEM Agent de uma instância de banco de dados. Depois de remover a opção OEM Agent, você não precisará reiniciar sua instância de banco de dados. 

Para remover o OEM Agent de uma instância de banco de dados, siga um destes procedimentos: 
+ Remova a opção OEM Agent do grupo de opções ao qual ela pertence. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção OEM Agent. Essa alteração afeta uma única instância de banco de dados. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Como executar tarefas de banco de dados com o Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks"></a>

Você pode usar os procedimentos do Amazon RDS para executar determinados comandos EMCTL no Management Agent. Executando esses procedimentos, você pode executar as tarefas listadas a seguir.

**nota**  
As tarefas são executadas de forma assíncrona.

**Topics**
+ [

### Proteger o Management Agent
](#Oracle.Options.OEMAgent.DBTasks.SecureAgent)
+ [

### Obter o status do Management Agent
](#Oracle.Options.OEMAgent.DBTasks.GetAgentStatus)
+ [

### Como reiniciar o Management Agent
](#Oracle.Options.OEMAgent.DBTasks.RestartAgent)
+ [

### Como listar os destinos monitorados pelo Management Agent
](#Oracle.Options.OEMAgent.DBTasks.ListTargets)
+ [

### Listar os threads de coleta monitorados pelo Management Agent
](#Oracle.Options.OEMAgent.DBTasks.ListCollectionThreads)
+ [

### Como limpar o estado do Management Agent
](#Oracle.Options.OEMAgent.DBTasks.ClearState)
+ [

### Como fazer o Management Agent carregar o OMS
](#Oracle.Options.OEMAgent.DBTasks.ForceUploadOMS)
+ [

### Como executar ping no OMS
](#Oracle.Options.OEMAgent.DBTasks.PingOMS)
+ [

### Como visualizar o status de uma tarefa em andamento
](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)

### Proteger o Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.SecureAgent"></a>

Para proteger o Management Agent, execute o procedimento `rdsadmin.rdsadmin_oem_agent_tasks.secure_oem_agent` do Amazon RDS. Este procedimento é equivalente à execução do comando `emctl secure agent`.

O seguinte procedimento cria uma tarefa para proteger o Management Agent e exibe o ID da tarefa:

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.secure_oem_agent as TASK_ID from DUAL;
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Obter o status do Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.GetAgentStatus"></a>

Para obter o status do Management Agent, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent`. Este procedimento é equivalente ao comando `emctl status agent`.

O procedimento a seguir cria uma tarefa para obter o status do Management Agent e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent() as TASK_ID from DUAL;
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Como reiniciar o Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.RestartAgent"></a>

Para reiniciar o Management Agent, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent`. Este procedimento é equivalente à execução dos comandos `emctl stop agent` e `emctl start agent`.

O procedimento a seguir cria uma tarefa para reiniciar o Management Agent e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent as TASK_ID from DUAL;    
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Como listar os destinos monitorados pelo Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.ListTargets"></a>

Para listar os destinos monitorados pelo Management Agent, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent`. Este procedimento é equivalente à execução do comando `emctl config agent listtargets`.

O procedimento a seguir cria uma tarefa para listar os destinos monitorados pelo Management Agent e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent as TASK_ID from DUAL;
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Listar os threads de coleta monitorados pelo Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.ListCollectionThreads"></a>

Para listar todos os threads de coleta em execução, prontos e programados que são monitorados pelo Management Agent, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent`. Este procedimento é equivalente ao comando `emctl status agent scheduler`.

O procedimento a seguir cria uma tarefa para listar os threads de coleta e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent() as TASK_ID from DUAL;          
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Como limpar o estado do Management Agent
<a name="Oracle.Options.OEMAgent.DBTasks.ClearState"></a>

Para limpar o estado do Management Agent, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent`. Este procedimento é equivalente à execução do comando `emctl clearstate agent`.

O procedimento a seguir cria uma tarefa que limpa o estado do Management Agent e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent() as TASK_ID from DUAL;
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Como fazer o Management Agent carregar o OMS
<a name="Oracle.Options.OEMAgent.DBTasks.ForceUploadOMS"></a>

Para que o Management Agent carregue o Oracle Management Server (OMS) associado a ele, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent`. Este procedimento é equivalente à execução do comando `emclt upload agent`.

O procedimento a seguir cria uma tarefa que faz com que o Management Agent faça upload do OMS associado e retorne o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent() as TASK_ID from DUAL;
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Como executar ping no OMS
<a name="Oracle.Options.OEMAgent.DBTasks.PingOMS"></a>

Para executar ping no OMS do Management Agent, execute o procedimento do Amazon RDS `rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent`. Este procedimento é equivalente à execução do comando `emctl pingOMS`.

O procedimento a seguir cria uma tarefa que executa ping no OMS do Management Agent e retorna o ID da tarefa.

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent() as TASK_ID from DUAL;
```

Para exibir a saída referente à tarefa e visualizar o resultado, consulte [Como visualizar o status de uma tarefa em andamento](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus).

### Como visualizar o status de uma tarefa em andamento
<a name="Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus"></a>

Você pode visualizar o status de uma tarefa em andamento em um arquivo bdump. Os arquivos bdump estão localizados no diretório `/rdsdbdata/log/trace`. Cada nome de arquivo bdump está no seguinte formato.

```
dbtask-task-id.log 
```

Quando quiser monitorar uma tarefa, substitua `task-id` pelo ID da tarefa que deseja monitorar.

Para visualizar o conteúdo dos arquivos bdump, execute o procedimento do Amazon RDS `rdsadmin.rds_file_util.read_text_file`. A consulta a seguir retorna o conteúdo do arquivo bdump `dbtask-1546988886389-2444.log`. 

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1546988886389-2444.log'));
```

Para obter mais informações sobre o procedimento `rdsadmin.rds_file_util.read_text_file` do Amazon RDS, consulte [Leitura de arquivos no diretório de uma instância de banco de dados](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles).

# Oracle Label Security
<a name="Oracle.Options.OLS"></a>

O Amazon RDS é compatível com o Oracle Label Security para a Enterprise Edition do Oracle Database, com o uso da opção OLS.

A maioria dos controles de segurança do banco de dados acessa o nível do objeto. O Oracle Label Security fornece um controle de acesso granular a linhas de tabela individuais. Por exemplo, você pode usar o Label Security para impor a conformidade regulamentar com um modelo de administração baseado em políticas. Você pode usar as políticas do Label Security para controlar o acesso a dados confidenciais e permitir o acesso somente para os usuários com o nível de autorização apropriado. Para obter mais informações, consulte o tópico de [introdução ao Oracle Label Security](https://docs.oracle.com/database/121/OLSAG/intro.htm#OLSAG001), na documentação da Oracle.

**Topics**
+ [

## Requisitos para o Oracle Label Security
](#Oracle.Options.OLS.PreReqs)
+ [

## Considerações sobre o uso do Oracle Label Security
](#Oracle.Options.OLS.Using)
+ [

## Adicionar a opção Oracle Label Security
](#Oracle.Options.OLS.Add)
+ [

## Solução de problemas
](#Oracle.Options.OLS.Troubleshooting)

## Requisitos para o Oracle Label Security
<a name="Oracle.Options.OLS.PreReqs"></a>

Familiarize-se com os seguintes requisitos para o Oracle Label Security: 
+ Sua instância de banco de dados deve usar o modelo "Traga sua própria licença". Para obter mais informações, consulte [Opções de licenciamento do RDS para Oracle](Oracle.Concepts.Licensing.md). 
+ Você deve ter uma licença válida para o Oracle Enterprise Edition com Suporte e licença para atualização de software. 
+ Sua licença Oracle deve incluir a opção Label Security.

## Considerações sobre o uso do Oracle Label Security
<a name="Oracle.Options.OLS.Using"></a>

Para usar o Oracle Label Security, você cria políticas que controlam o acesso a linhas específicas nas suas tabelas. Para obter mais informações, consulte o tópico sobre como [Criar uma política do Oracle Label Security](https://docs.oracle.com/database/121/OLSAG/getstrtd.htm#OLSAG3096), na documentação da Oracle. 

Considere o seguinte:
+ O Oracle Label Security é uma opção permanente e persistente. Como a opção é permanente, não é possível removê-la de um grupo de opções. Se você adicionar o Oracle Label Security a um grupo de opções e associá-lo à sua instância de banco de dados, poderá associar posteriormente um grupo de opções diferente à sua instância de banco de dados, mas esse grupo também deverá conter a opção Oracle Label Security.
+ Ao trabalhar com o Label Security, você realiza todas as ações como o perfil `LBAC_DBA`. O usuário mestre da sua instância de banco de dados recebe o perfil `LBAC_DBA`. É possível conceder o perfil `LBAC_DBA` a outros usuários, para que eles possam administrar políticas do Label Security.
+ Conceda acesso ao pacote `OLS_ENFORCEMENT` a novos usuários que precisem de acesso ao Oracle Label Security. Para conceder acesso ao pacote `OLS_ENFORCEMENT`, conecte-se à instância de banco de dados como o usuário mestre e execute a seguinte instrução SQL:

  ```
  GRANT ALL ON LBACSYS.OLS_ENFORCEMENT TO username;
  ```
+ É possível configurar o Label Security por meio do Oracle Enterprise Manager (OEM) Cloud Control. O Amazon RDS é compatível com o OEM Cloud Control pelo uso da opção Agente de gerenciamento. Para obter mais informações, consulte [Oracle Management Agent para Enterprise Manager Cloud Control](Oracle.Options.OEMAgent.md). 

## Adicionar a opção Oracle Label Security
<a name="Oracle.Options.OLS.Add"></a>

O processo geral para adicionar a opção Oracle Label Security a uma instância de banco de dados é o seguinte: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.
**Importante**  
O Oracle Label Security é uma opção permanente e persistente.

1. Associe o grupo de opções à instância de banco de dados.

Depois de adicionar a opção Label Security, assim que o grupo de opções estiver ativo, o Label Security ficará ativo. 

**Como adicionar a opção Label Security a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Para **Engine (Mecanismo)**, escolha **oracle-ee**. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **OLS** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 
**Importante**  
Se você adicionar Label Security a um grupo de opções existente que já esteja conectado a uma ou mais instâncias de banco de dados, todas estas serão reiniciadas. 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 

      
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Quando você adiciona a opção Label Security a uma instância de banco de dados existente, ocorre uma breve interrupção enquanto sua instância de banco de dados é reiniciada automaticamente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

## Solução de problemas
<a name="Oracle.Options.OLS.Troubleshooting"></a>

Os problemas a seguir podem ocorrer ao usar o Oracle Label Security. 


****  

| Problema | Sugestões de solução de problemas | 
| --- | --- | 
|  Ao tentar criar uma política, você vê uma mensagem de erro semelhante à seguinte: `insufficient authorization for the SYSDBA package`.   |  Um problema conhecido com o recurso Label Security da Oracle impede que os usuários com nomes de usuários de 16 ou 24 caracteres executem comandos do Label Security. Você pode criar um novo usuário com um número diferente de caracteres, conceder LBAC\$1DBA ao novo usuário, fazer login como esse novo usuário e executar os comandos do OLS como esse novo usuário. Se precisar de mais informações, entre em contato com o suporte da Oracle.   | 

# Oracle Locator
<a name="Oracle.Options.Locator"></a>

O Amazon RDS dá suporte ao Oracle Locator por meio do uso da opção `LOCATOR`. O Oracle Locator oferece recursos normalmente obrigatórios para dar suporte à Internet e a aplicativos baseados em serviço sem fio além de soluções GIS baseadas no parceiro. O Oracle Locator é um subconjunto limitado do Oracle Spatial. Para obter mais informações, consulte [Oracle Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#SPATL340) na documentação da Oracle. 

**Importante**  
Se você usar o Oracle Locator, o Amazon RDS atualizará automaticamente a instância de banco de dados para o Oracle PSU mais recente se houver vulnerabilidades de segurança com uma pontuação Common Vulnerability Scoring System (CVSS – Sistema de pontuação de vulnerabilidades comuns) superior a 9 ou outras vulnerabilidades de segurança anunciadas. 

## Versões de banco de dados compatíveis com o Oracle Locator
<a name="Oracle.Options.Locator.Releases"></a>

O RDS para Oracle é compatível com o Oracle Locator para o Oracle Database 19c. O Oracle Locator não é compatível com o Oracle Database 21c, mas sua funcionalidade está disponível na opção Oracle Spatial. Anteriormente, a opção Spatial exigia licenças adicionais. O Oracle Locator representava um subconjunto de recursos do Oracle Spatial e não exigia licenças adicionais. Em 2019, a Oracle anunciou que todos os recursos do Oracle Spatial haviam sido incluídos nas licenças Enterprise Edition e Standard Edition 2 sem custo adicional. Consequentemente, a opção Oracle Spatial não exigia mais licenciamento adicional. Para obter mais informações, consulte [Machine Learning, Spatial and Graph - No License Required\$1](https://blogs.oracle.com/database/post/machine-learning-spatial-and-graph-no-license-required) no blog do Oracle Database Insider.

## Pré-requisitos do Oracle Locator
<a name="Oracle.Options.Locator.PreReqs"></a>

Estes são os pré-requisitos para usar o Oracle Locator: 
+ A instância de banco de dados deve ser de classe suficiente. O Oracle Locator não é compatível com as classes de instância de banco de dados db.t3.small DB. Para obter mais informações, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md). 
+ A instância de banco de dados deve ter **Auto Minor Version Upgrade (Atualização automática de versão secundária)** habilitada. Essa opção permite que a instância de banco de dados receba atualizações de versões secundárias do mecanismo de banco de dados automaticamente, quando disponibilizadas e é necessária para qualquer opção que instala o Oracle Java Virtual Machine (JVM). O Amazon RDS usa essa opção para atualizar a instância de banco de dados para a Oracle Patch Set Update (PSU) ou Release Update (RU) mais recente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Práticas recomendadas do Oracle Locator
<a name="Oracle.Options.Locator.BestPractces"></a>

Estas são as práticas recomendadas para usar o Oracle Locator: 
+ Para obter segurança máxima, use a opção `LOCATOR` com Secure Sockets Layer (SSL). Para obter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 
+ Configure a instância de banco de dados para restringir o acesso à instância de banco de dados. Para obter mais informações, consulte [Cenários para acessar uma instância de banco de dados em uma VPC](USER_VPC.Scenarios.md) e [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 

## Adicionar a opção Oracle Locator
<a name="Oracle.Options.Locator.Add"></a>

Este é o processo geral para adicionar a opção `LOCATOR` a uma instância de banco de dados: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Se o Oracle Java Virtual Machine (JVM) *não* estiver instalado na instância de banco de dados, haverá uma breve interrupção enquanto a opção `LOCATOR` é adicionada. Não haverá interrupção se o Oracle Java Virtual Machine (JVM) já estiver instalado na instância de banco de dados. Depois de adicionar a opção , você não precisará reiniciar sua instância de banco de dados. Assim que o grupo de opções estiver ativo, o Oracle Locator estará disponível. 

**nota**  
Durante essa interrupção, as funções de verificação de senha são desativadas brevemente. Você também pode esperar ver eventos relacionados às funções de verificação de senha durante a interrupção. As funções de verificação de senha são ativadas novamente antes que a instância de banco de dados Oracle esteja disponível.

**Para adicionar a opção `LOCATOR` a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Em **Engine (Mecanismo)**, escolha a edição Oracle para sua instância de banco de dados. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **LOCATOR** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Usar o Oracle Locator
<a name="Oracle.Options.Locator.Using"></a>

Depois de habilitar a opção Oracle Locator, você poderá começar a usá-lo. Você deve usar somente recursos do Oracle Locator. Não use recursos do Oracle Spatial, a menos que você tenha uma licença para o Oracle Spatial. 

Para obter uma lista de recursos compatíveis com o Oracle Locator, consulte [Recursos incluídos com o Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#GUID-EC6DEA23-8FD7-4109-A0C1-93C0CE3D6FF2__CFACCEEG) na documentação da Oracle. 

Para obter uma lista de recursos não compatíveis com o Oracle Locator, consulte [Recursos não incluídos com o Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#GUID-EC6DEA23-8FD7-4109-A0C1-93C0CE3D6FF2__CFABACEA) na documentação da Oracle. 

## Remover a opção Oracle Locator
<a name="Oracle.Options.Locator.Remove"></a>

Depois de descartar todos os objetos que usam tipos de dados fornecidos pela opção `LOCATOR`, você pode removê-los de uma instância de banco de dados. Se o Oracle Java Virtual Machine (JVM) *não* estiver instalado na instância de banco de dados, haverá uma breve interrupção enquanto a opção `LOCATOR` é removida. Não haverá interrupção se o Oracle Java Virtual Machine (JVM) já estiver instalado na instância de banco de dados. Depois de remover a opção `LOCATOR`, você não precisará reiniciar a instância de banco de dados. 

**Como descartar a opção `LOCATOR`**

1. Faça backup de seus dados.
**Atenção**  
Se a instância usar tipos de dados que foram ativados como parte da opção e se você remover a opção `LOCATOR`, você poderá perder dados. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md).

1. Verifique se os objetos existentes fazem referência a tipos de dados ou recursos da opção `LOCATOR`. 

   Se existirem opções `LOCATOR`, a instância poderá ficar presa ao aplicar o novo grupo de opções que não tem a opção `LOCATOR`. Você pode identificar os objetos usando as seguintes consultas:

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. Solte todos os objetos que fazem referência a tipos de dados ou recursos da opção `LOCATOR`.

1. Execute um destes procedimentos:
   + Remova a opção `LOCATOR` do grupo de opções ao qual ela pertence. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção `LOCATOR`. Essa alteração afeta uma única instância de banco de dados. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Native Network Encryption
<a name="Appendix.Oracle.Options.NetworkEncryption"></a>

O Amazon RDS oferece suporte para a Oracle Native Network Encryption (NNE). Com a opção `NATIVE_NETWORK_ENCRYPTION`, é possível criptografar dados à medida que eles entram e saem de uma instância de banco de dados. O Amazon RDS é compatível com a NNE para todas as edições do Oracle Database.

Uma discussão detalhada sobre a Oracle Native Network Encryption está além do escopo deste guia, mas você deve compreender os pontos fortes e fracos de cada algoritmo e chave antes de decidir sobre uma solução para a sua implantação. Para obter informações sobre os algoritmos e as chaves que estão disponíveis pela Oracle Native Network Encryption, consulte [Configurar a criptografia de dados de rede](http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/security/network_encrypt/ntwrkencrypt.htm), na documentação da Oracle. Para ter mais informações sobre a segurança da AWS, consulte a [Central de Segurança da AWS](https://aws.amazon.com/security).

**nota**  
Você pode usar a Native Network Encryption ou a Secure Sockets Layer, mas não ambas. Para ter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 

**Topics**
+ [

# Configurações da opção NATIVE\$1NETWORK\$1ENCRYPTION
](Oracle.Options.NNE.Options.md)
+ [

# Adicionar a opção NATIVE\$1NETWORK\$1ENCRYPTION
](Oracle.Options.NNE.Add.md)
+ [

# Como definir valores de NNE no sqlnet.ora
](Oracle.Options.NNE.Using.md)
+ [

# Modificar a configurações da opção NATIVE\$1NETWORK\$1ENCRYPTION
](Oracle.Options.NNE.ModifySettings.md)
+ [

# Remover a opção NATIVE\$1NETWORK\$1ENCRYPTION
](Oracle.Options.NNE.Remove.md)

# Configurações da opção NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Options"></a>

Você pode especificar requisitos de criptografia no servidor e no cliente. A instância de banco de dados pode atuar como um cliente quando, por exemplo, usa um link de banco de dados para se conectar a outro banco de dados. Você pode preferir evitar forçar a criptografia no lado do servidor. Por exemplo, talvez você não queira forçar todas as comunicações do cliente a usar criptografia porque o servidor exige isso. Nesse caso, você pode forçar a criptografia no lado do cliente usando as opções do `SQLNET.*CLIENT`.

O Amazon RDS é compatível com as configurações a seguir da opção `NATIVE_NETWORK_ENCRYPTION`.

**nota**  
Ao usar vírgulas para separar valores para uma configuração de opção, não coloque um espaço após a vírgula.


****  

| Configuração da opção | Valores válidos | Valores padrão | Descrição | 
| --- | --- | --- | --- | 
|  `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`  |  `TRUE`, `FALSE`  |  `TRUE`  |  O comportamento do servidor quando um cliente que usa uma cifra não segura tenta se conectar ao banco de dados. Se for `TRUE`, os clientes poderão se conectar mesmo que não sejam corrigidos com a PSU de julho de 2021.  Se a configuração for `FALSE`, os clientes poderão se conectar ao banco de dados somente quando forem corrigidos com a PSU de julho de 2021. Antes de definir `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS` para `FALSE`, certifique-se de que as seguintes condições sejam atendidas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.ALLOW_WEAK_CRYPTO`  |  `TRUE`, `FALSE`  |  `TRUE`  |  O comportamento do servidor quando um cliente que usa uma cifra não segura tenta se conectar ao banco de dados. As seguintes cifras são consideradas não seguras: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) Se a configuração for `TRUE`, os clientes poderão se conectar quando usarem as cifras não seguras anteriores. Se a configuração for `FALSE`, o banco de dados impedirá os clientes e se conectarem quando usarem as cifras não seguras anteriores. Antes de definir `SQLNET.ALLOW_WEAK_CRYPTO` para `FALSE`, certifique-se de que as seguintes condições sejam atendidas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.CRYPTO_CHECKSUM_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  O comportamento de integridade de dados quando uma instância de banco de dados se conecta ao cliente ou um servidor atuando como um cliente. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente. `Requested` indica que o cliente não exige que a instância de banco de dados realize uma soma de verificação.  | 
|  `SQLNET.CRYPTO_CHECKSUM_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  O comportamento de integridade de dados quando um cliente, ou um servidor atuando como um cliente, conecta-se à instância de banco de dados. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente. `Requested` indica que a instância de banco de dados não exige que o cliente faça uma soma de verificação.  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`  |  Uma lista de algoritmos de soma de verificação. É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro `InvalidParameterValue`. Este parâmetro e o `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER ` devem ter uma cifra comum.  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  Uma lista de algoritmos de soma de verificação. É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro `InvalidParameterValue`. Este parâmetro e o `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` devem ter uma cifra comum.  | 
|  `SQLNET.ENCRYPTION_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  O comportamento de criptografia do cliente quando um cliente, ou um servidor atuando como cliente, se conecta à instância de banco de dados. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente. `Requested` indica que o cliente não exige que o tráfego do servidor seja criptografado.  | 
|  `SQLNET.ENCRYPTION_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  O comportamento de criptografia do servidor quando um cliente, ou um servidor atuando como cliente, se conecta à instância de banco de dados. Quando uma instância de banco de dados usa um link de banco de dados, ela atua como um cliente. `Requested` indica que a instância de banco de dados não requer que o tráfego a partir do cliente seja criptografado.  | 
|  `SQLNET.ENCRYPTION_TYPES_CLIENT`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  Uma lista de algoritmos de criptografia usados pelo cliente. Para descriptografar a entrada do servidor, o cliente experimenta cada algoritmo, em ordem, até que um deles seja bem-sucedido ou até atingir o final da lista.  O Amazon RDS usa a seguinte lista padrão do Oracle. O RDS inicia com `RC4_256` e segue a sequência na lista. Você pode alterar a ordem ou limitar os algoritmos que a instância de banco de dados aceitará.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro `InvalidParameterValue`. Este parâmetro e o `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` devem ter uma cifra comum.  | 
|  `SQLNET.ENCRYPTION_TYPES_SERVER`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  Uma lista de algoritmos de criptografia usados pela instância de banco de dados. A instância de banco de dados usa cada algoritmo, em ordem, para tentar descriptografar a entrada do cliente até que um algoritmo seja bem-sucedido ou até atingir o final da lista.  O Amazon RDS usa a seguinte lista padrão do Oracle. Você pode alterar a ordem ou restringir os algoritmos que o cliente aceitará.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) É possível especificar um valor ou uma lista de valores separados por vírgulas. Se você usar uma vírgula, não insira um espaço após a vírgula; caso contrário, você receberá um erro `InvalidParameterValue`. Este parâmetro e o `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` devem ter uma cifra comum.  | 

# Adicionar a opção NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Add"></a>

Este é o processo geral para adicionar a opção `NATIVE_NETWORK_ENCRYPTION` a uma instância de banco de dados: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Quando o grupo de opções estiver ativo, a NNE ficará ativa. 

**Como adicionar a opção NATIVE\$1NETWORK\$1ENCRYPTION a uma instância de banco de dados usando o Console de gerenciamento da AWS**

1. Para **Engine (Mecanismo)**, escolha a edição do Oracle que deseja usar. NNE é compatível em todas as edições. 

1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **NATIVE\$1NETWORK\$1ENCRYPTION** ao grupo de opções. Para ter mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).
**nota**  
Depois de adicionar a opção **NATIVE\$1NETWORK\$1ENCRYPTION**, você não precisará reiniciar as instâncias de banco de dados. Assim que o grupo de opções estiver ativo, o NNE ficará ativo. 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Depois de adicionar a opção **NATIVE\$1NETWORK\$1ENCRYPTION**, você não precisará reiniciar a instância de banco de dados. Assim que o grupo de opções estiver ativo, o NNE ficará ativo. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Como definir valores de NNE no sqlnet.ora
<a name="Oracle.Options.NNE.Using"></a>

Com a Oracle Native Network Encryption, você pode configurar a criptografia de rede no lado do servidor e no lado do cliente. O cliente é o computador usado para realizar a conexão com a instância de banco de dados. Você pode especificar as seguintes configurações de cliente no slqnet.ora: 
+ `SQLNET.ALLOW_WEAK_CRYPTO`
+ `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`
+ `SQLNET.CRYPTO_CHECKSUM_CLIENT`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`
+ `SQLNET.ENCRYPTION_CLIENT`
+ `SQLNET.ENCRYPTION_TYPES_CLIENT`

Para obter informações, consulte [Configurar a criptografia de dados da rede e a integridade para clientes e servidores Oracle](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm) na documentação da Oracle.

Às vezes, a instância de banco de dados rejeita uma solicitação de conexão de uma aplicação. Por exemplo, uma rejeição pode ocorrer quando os algoritmos de criptografia no cliente e no servidor não correspondem. Para testar a Oracle Native Network Encryption, adicione as seguintes linhas ao arquivo sqlnet.ora no cliente: 

```
DIAG_ADR_ENABLED=off
TRACE_DIRECTORY_CLIENT=/tmp
TRACE_FILE_CLIENT=nettrace
TRACE_LEVEL_CLIENT=16
```

Quando ocorre uma tentativa de conexão, as linhas anteriores geram um arquivo de rastreamento no cliente chamado `/tmp/nettrace*`. O arquivo de rastreamento contém informações sobre a conexão. Para ter mais informações sobre problemas de conexão quando você estiver usando a Oracle Native Network Encryption, consulte [About negotiating encryption and integrity](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm#autoId12) (Sobre a negociação da criptografia e a integridade) na documentação do Oracle Database.

# Modificar a configurações da opção NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.ModifySettings"></a>

Depois de habilitar a opção `NATIVE_NETWORK_ENCRYPTION`, é possível modificar as configurações. Atualmente, é possível modificar as configurações da opção `NATIVE_NETWORK_ENCRYPTION` somente com a AWS CLI ou a API do RDS. Não é possível usar o console. O exemplo a seguir modifica duas configurações na opção.

```
aws rds add-option-to-option-group \
    --option-group-name my-option-group \
    --options "OptionName=NATIVE_NETWORK_ENCRYPTION,OptionSettings=[{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256},{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256}]" \
    --apply-immediately
```

Para saber como modificar as configurações da opção usando a CLI, consulte [AWS CLI](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption.CLI). Para ter mais informações sobre cada configuração, consulte [Configurações da opção NATIVE\$1NETWORK\$1ENCRYPTION](Oracle.Options.NNE.Options.md).

**Topics**
+ [

## Modificar valores de CRYPTO\$1CHECKSUM\$1\$1
](#Oracle.Options.NNE.ModifySettings.checksum)
+ [

## Modificar as configurações de ALLOW\$1WEAK\$1CRYPTO\$1
](#Oracle.Options.NNE.ModifySettings.encryption)

## Modificar valores de CRYPTO\$1CHECKSUM\$1\$1
<a name="Oracle.Options.NNE.ModifySettings.checksum"></a>

Se você modificar as configurações de opções de **NATIVE\$1NETWORK\$1ENCRYPTION**, as seguintes configurações de opções devem ter pelo menos uma cifra comum:
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`

O exemplo a seguir mostra um cenário no qual você modifica `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`. A configuração é válida porque `CRYPTO_CHECKSUM_TYPES_CLIENT` e `CRYPTO_CHECKSUM_TYPES_SERVER` usam `SHA256`.


| Configuração da opção | Valores antes da modificação | Valores após modificação | 
| --- | --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  |  Sem alterações  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  | SHA1,MD5,SHA256 | 

Como outro exemplo, suponha que você queira modificar `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER` de sua configuração padrão para `SHA1,MD5`. Nesse caso, certifique-se de que tenha definido `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` como `SHA1` ou `MD5`. Esses algoritmos não são incluídos nos valores padrão para `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`.

## Modificar as configurações de ALLOW\$1WEAK\$1CRYPTO\$1
<a name="Oracle.Options.NNE.ModifySettings.encryption"></a>

Para definir as opções `SQLNET.ALLOW_WEAK_CRYPTO*` do valor padrão para `FALSE`, certifique-se de que as seguintes condições sejam atendidas:
+ `SQLNET.ENCRYPTION_TYPES_SERVER` e `SQLNET.ENCRYPTION_TYPES_CLIENT` têm um método de criptografia segura correspondente. Um método é considerado seguro se não for `DES`, `3DES` ou `RC4` (todos os comprimentos de chaves).
+ `SQLNET.CHECKSUM_TYPES_SERVER` e `SQLNET.CHECKSUM_TYPES_CLIENT` têm um método de soma de verificação segura correspondente. Um método é considerado seguro se não for `MD5`.
+ O cliente é corrigido com a PSU de julho de 2021. Se o cliente não for corrigido, o cliente perderá a conexão e receberá o erro `ORA-12269`.

O exemplo a seguir mostra as configurações de NNE de exemplo. Suponha que você queira definir `SQLNET.ENCRYPTION_TYPES_SERVER` e `SQLNET.ENCRYPTION_TYPES_CLIENT` para FALSE, bloqueando conexões não seguras. As configurações da opção de soma de verificação atendem aos pré-requisitos porque ambas têm `SHA256`. No entanto, `SQLNET.ENCRYPTION_TYPES_CLIENT` e `SQLNET.ENCRYPTION_TYPES_SERVER` usam os métodos de criptografia `DES`, `3DES` e `RC4`, que não são seguros. Portanto, para definir as opções de `SQLNET.ALLOW_WEAK_CRYPTO*` para `FALSE`, primeiro defina `SQLNET.ENCRYPTION_TYPES_SERVER` e `SQLNET.ENCRYPTION_TYPES_CLIENT` para um método de criptografia seguro, como `AES256`.


| Configuração da opção | Valores | 
| --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  | SHA1,MD5,SHA256 | 
|  `SQLNET.ENCRYPTION_TYPES_CLIENT`  |  `RC4_256`, `3DES168`, `DES40`  | 
|  `SQLNET.ENCRYPTION_TYPES_SERVER`  |  `RC4_256`, `3DES168`, `DES40`  | 

# Remover a opção NATIVE\$1NETWORK\$1ENCRYPTION
<a name="Oracle.Options.NNE.Remove"></a>

Você pode remover o NNE de uma instância de banco de dados. 

Para remover a opção `NATIVE_NETWORK_ENCRYPTION` de uma instância de banco de dados, faça o seguinte: 
+ Para remover a opção de várias instâncias de bancos de dados, remova a opção `NATIVE_NETWORK_ENCRYPTION` do grupo de opções ao qual elas pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Depois de remover a opção `NATIVE_NETWORK_ENCRYPTION`, você não precisará reiniciar as instâncias de banco de dados. Para ter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Para remover a opção de uma única instância de banco de dados, modifique essa instância e especifique um grupo de opções diferente que não inclua a opção `NATIVE_NETWORK_ENCRYPTION`. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Depois de remover a opção `NATIVE_NETWORK_ENCRYPTION`, você não precisará reiniciar a instância de banco de dados. Para ter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle OLAP
<a name="Oracle.Options.OLAP"></a>

O Amazon RDS oferece suporte ao Oracle OLAP por meio do uso da opção `OLAP`. Essa opção fornece OLAP (On-line Analytical Processing, Processamento analítico online) para instâncias de banco de dados Oracle. É possível usar o Oracle OLAP para analisar grandes quantidades de dados criando cubos e objetos dimensionais de acordo com o padrão OLAP. Para obter mais informações, consulte [a documentação da Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/olaug/index.html). 

**Importante**  
Se você usar o Oracle OLAP, o Amazon RDS atualizará automaticamente a instância de banco de dados para o Oracle PSU mais recente se houver vulnerabilidades de segurança com uma pontuação Common Vulnerability Scoring System (CVSS – Sistema de pontuação de vulnerabilidades comuns) superior a 9 ou outras vulnerabilidades de segurança anunciadas. 

O Amazon RDS é compatível com o Oracle OLAP para a Enterprise Edition do Oracle Database 19c e posterior.

## Pré-requisitos para o Oracle OLAP
<a name="Oracle.Options.OLAP.PreReqs"></a>

Veja a seguir os pré-requisitos para usar o Oracle OLAP: 
+ É necessário ter uma licença do Oracle OLAP da Oracle. Para obter mais informações, consulte [Licensing Information](https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/Licensing-Information.html#GUID-B6113390-9586-46D7-9008-DCC9EDA45AB4) na documentação da Oracle. 
+ A instância de banco de dados deve ser de uma classe de instância suficiente. O Oracle OLAP não é compatível com as classes de instância de banco de dados db.t3.small. Para ter mais informações, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md). 
+ A instância de banco de dados deve ter **Auto Minor Version Upgrade (Atualização automática de versão secundária)** habilitada. Essa opção permite que a instância de banco de dados receba atualizações de versões secundárias do mecanismo de banco de dados automaticamente, quando disponibilizadas e é necessária para qualquer opção que instala o Oracle Java Virtual Machine (JVM). O Amazon RDS usa essa opção para atualizar a instância de banco de dados para a Oracle Patch Set Update (PSU) ou Release Update (RU) mais recente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 
+ A instância de banco de dados não deve ter um usuário chamado `OLAPSYS`. Se isso acontecer, a instalação da opção OLAP falhará.

## Práticas recomendadas do Oracle OLAP
<a name="Oracle.Options.OLAP.BestPractces"></a>

Estas são as práticas recomendadas para usar o Oracle OLAP: 
+ Para obter segurança máxima, use a opção `OLAP` com Secure Sockets Layer (SSL). Para obter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 
+ Configure a instância de banco de dados para restringir o acesso à instância de banco de dados. Para obter mais informações, consulte [Cenários para acessar uma instância de banco de dados em uma VPC](USER_VPC.Scenarios.md) e [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 

## Como adicionar a opção do Oracle OLAP
<a name="Oracle.Options.OLAP.Add"></a>

Este é o processo geral para adicionar a opção `OLAP` a uma instância de banco de dados: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Se o Oracle Java Virtual Machine (JVM) *não* estiver instalado na instância de banco de dados, haverá uma breve interrupção enquanto a opção `OLAP` é adicionada. Não haverá interrupção se o Oracle Java Virtual Machine (JVM) já estiver instalado na instância de banco de dados. Depois de adicionar a opção , você não precisará reiniciar sua instância de banco de dados. Assim que o grupo de opções estiver ativo, o Oracle OLAP estará disponível. 

**Como adicionar a opção do OLAP a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 
   + Em **Engine (Mecanismo)**, escolha a edição Oracle para sua instância de banco de dados. 
   + Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **OLAP** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, aplique o grupo de opções ao executar a instância. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, aplique o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Como usar o Oracle OLAP
<a name="Oracle.Options.OLAP.Using"></a>

Depois de habilitar a opção Oracle OLAP, será possível começar a usá-lo. Para obter uma lista de recursos compatíveis com o Oracle OLAP, consulte [a documentação da Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/olaug/overview.html#GUID-E2056FE4-C623-4D29-B7D8-C4762F941966). 

## Como remover a opção do Oracle OLAP
<a name="Oracle.Options.OLAP.Remove"></a>

Depois de descartar todos os objetos que usam tipos de dados fornecidos pela opção `OLAP`, você pode removê-los de uma instância de banco de dados. Se o Oracle Java Virtual Machine (JVM) *não* estiver instalado na instância de banco de dados, haverá uma breve interrupção enquanto a opção `OLAP` é removida. Não haverá interrupção se o Oracle Java Virtual Machine (JVM) já estiver instalado na instância de banco de dados. Depois de remover a opção `OLAP`, você não precisará reiniciar a instância de banco de dados.

**Como descartar a opção `OLAP`**

1. Faça backup de seus dados.
**Atenção**  
Se a instância usar tipos de dados que foram ativados como parte da opção e se você remover a opção `OLAP`, você poderá perder dados. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md).

1. Verifique se os objetos existentes fazem referência a tipos de dados ou recursos da opção `OLAP`. 

1. Solte todos os objetos que fazem referência a tipos de dados ou recursos da opção `OLAP`.

1. Execute um destes procedimentos:
   + Remova a opção `OLAP` do grupo de opções ao qual ela pertence. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção `OLAP`. Essa alteração afeta uma única instância de banco de dados. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle Secure Sockets Layer
<a name="Appendix.Oracle.Options.SSL"></a>

Para habilitar a criptografia SSL para uma instância de banco de dados do RDS para Oracle, adicione a opção Oracle SSL ao grupo de opções associado à instância de banco de dados. O Amazon RDS usa uma segunda porta, conforme exigido pela Oracle, para conexões SSL. Essa abordagem permite que comunicações de texto sem formatação e de texto com criptografia SSL ocorram ao mesmo tempo entre uma instância de banco de dados e o SQL\$1Plus. Por exemplo, você pode usar a porta com comunicação de texto simples para se comunicar com outros recursos dentro de uma VPC enquanto usa a porta com comunicação criptografada em SSL para se comunicar com recursos fora da VPC.

**nota**  
É possível usar SSL ou a Native Network Encryption (NNE) na mesma instância de banco de dados do RDS para Oracle, mas não ambas. Se você usar a criptografia SSL, desative qualquer outra criptografia de conexão. Para obter mais informações, consulte [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

SSL/TLS e NNE não fazem mais parte do Oracle Advanced Security. No RDS para Oracle, é possível usar a criptografia SSL com todas as edições licenciadas das seguintes versões do banco de dados:
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [

## Versões do TLS para a opção Oracle SSL
](#Appendix.Oracle.Options.SSL.TLS)
+ [

## Pacotes de criptografia para a opção Oracle SSL
](#Appendix.Oracle.Options.SSL.CipherSuites)
+ [

## Suporte ao FIPS
](#Appendix.Oracle.Options.SSL.FIPS)
+ [

## Compatibilidade de certificados com pacotes de criptografia
](#Appendix.Oracle.Options.SSL.CertificateCompatibility)
+ [

# Adicionar a opção do SSL
](Appendix.Oracle.Options.SSL.OptionGroup.md)
+ [

# Configurar o SQL\$1Plus para usar SSL com uma instância de banco de dados do RDS para Oracle
](Appendix.Oracle.Options.SSL.ClientConfiguration.md)
+ [

# Conectar-se a uma instância de banco de dados do RDS para Oracle usando SSL
](Appendix.Oracle.Options.SSL.Connecting.md)
+ [

# Configurar uma conexão SSL via JDBC
](Appendix.Oracle.Options.SSL.JDBC.md)
+ [

# Forçar uma correspondência de DN com uma conexão SSL
](Appendix.Oracle.Options.SSL.DNMatch.md)
+ [

# Solução de problemas de conexões SSL
](Appendix.Oracle.Options.SSL.troubleshooting.md)

## Versões do TLS para a opção Oracle SSL
<a name="Appendix.Oracle.Options.SSL.TLS"></a>

O Amazon RDS for Oracle oferece suporte ao Transport Layer Security (TLS) versões 1.0 e 1.2. Quando você adiciona uma nova opção Oracle SSL, defina `SQLNET.SSL_VERSION` explicitamente como um valor válido. Os seguintes valores são permitidos para essa configuração de opção:
+ `"1.0"`: os clientes só podem se conectar à instância de banco de dados usando o TLS versão 1.0. Para opções Oracle SSL existentes, a `SQLNET.SSL_VERSION` é definida como `"1.0"` automaticamente. Você pode alterar a configuração se necessário.
+ `"1.2"` – os clientes podem se conectar à instância de banco de dados usando somente o TLS 1.2.
+ `"1.2 or 1.0"` – os clientes podem se conectar à instância de banco de dados usando o TLS 1.2 ou 1.0.

## Pacotes de criptografia para a opção Oracle SSL
<a name="Appendix.Oracle.Options.SSL.CipherSuites"></a>

O Amazon RDS for Oracle oferece suporte para vários pacotes de criptografia SSL. Por padrão, a opção Oracle SSL está configurada para usar o pacote de criptografia `SSL_RSA_WITH_AES_256_CBC_SHA`. Para especificar um pacote de criptografia diferente para usar em conexões SSL, use a configuração da opção `SQLNET.CIPHER_SUITE`.

É possível especificar vários valores para `SQLNET.CIPHER_SUITE`. Essa técnica é útil caso você tenha links de banco de dados entre suas instâncias de banco de dados e decida atualizar seus pacotes de criptografia.

A tabela a seguir resume o suporte a SSL no RDS para Oracle em todas as edições do Oracle Database 19c e 21c.


| Suíte de cifras (SQLNET.CIPHER\$1SUITE) | Versão do TLS compatível (SQLNET.SSL\$1VERSION) | Suporte ao FIPS | Conformidade com FedRAMP | 
| --- | --- | --- | --- | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA (padrão) | 1.0 e 1.2 | Sim | Não | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 | 1.2 | Sim | Não | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | Sim | Não | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | Sim | Sim | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 1.2 | Sim | Sim | 

## Suporte ao FIPS
<a name="Appendix.Oracle.Options.SSL.FIPS"></a>

O RDS para Oracle permite usar o padrão FIPS (Federal Information Processing Standard) para 140-2. O FIPS 140-2 é um padrão do governo dos Estados Unidos que define os requisitos de segurança de módulos criptográficos. Ative o padrão FIPS definindo `FIPS.SSLFIPS_140` como `TRUE` para a opção do Oracle SSL. Quando o FIPS 140-2 é configurado para SSL, as bibliotecas criptográficas criptografam dados entre o cliente e a instância de banco de dados do RDS para Oracle.

Os clientes devem usar o pacote de criptografia compatível com o FIPS. Ao estabelecer uma conexão, o cliente e a instância de banco de dados do RDS para Oracle negociam qual pacote de criptografia deverá ser usado ao transmitir mensagens nas duas direções. A tabela em [Pacotes de criptografia para a opção Oracle SSL](#Appendix.Oracle.Options.SSL.CipherSuites) mostra os pacotes de criptografia SSL compatíveis com o FIPS para cada versão do TLS. Para receber mais informações, consulte [Oracle Database FIPS 140-2 Settings](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/oracle-database-fips-140-settings.html#GUID-DDBEB3F9-B216-44BB-8C18-43B5E468CBBB) na documentação da Oracle.

## Compatibilidade de certificados com pacotes de criptografia
<a name="Appendix.Oracle.Options.SSL.CertificateCompatibility"></a>

O RDS para Oracle comporta os certificados RSA e Elliptic Curve Digital Signature Algorithm (ECDSA). Ao configurar o SSL para sua instância de banco de dados, você deve garantir que os pacotes de criptografia especificados na configuração da opção `SQLNET.CIPHER_SUITE` aceitem o tipo de certificado usado pela sua instância de banco de dados.

A tabela a seguir mostra a compatibilidade entre os tipos de certificado e pacotes de criptografia:


| Tipo de certificado | Pacotes de criptografia compatíveis | Pacotes de criptografia incompatíveis | 
| --- | --- | --- | 
| Pacotes de RSA (rds-ca-2019, rds-ca-rsa2048-g1, rds-ca-rsa4096-g1) |  SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| Certificados ECDSA (rds-ca-ecc384-g1) |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  | 

Ao especificar vários pacotes de criptografia na configuração da opção `SQLNET.CIPHER_SUITE`, inclua pelo menos um pacote de criptografia compatível com o tipo de certificado usado pela sua instância de banco de dados. Se você estiver usando um grupo de opções com várias instâncias de banco de dados com tipos de certificados diferentes, inclua pelo menos um pacote de criptografia para cada tipo de certificado.

Se você tentar associar um grupo de opções a uma opção SSL que contenha somente pacotes de criptografia incompatíveis com o tipo de certificado de uma instância de banco de dados, a operação falhará com uma mensagem de erro indicando a incompatibilidade.

# Adicionar a opção do SSL
<a name="Appendix.Oracle.Options.SSL.OptionGroup"></a>

Para usar SSL, sua instância de banco de dados do RDS para Oracle deve estar associada a um grupo de opções que inclua a opção `SSL`.

## Console
<a name="Appendix.Oracle.Options.SSL.OptionGroup.Console"></a>

**Para adicionar a opção SSL a um grupo de opções**

1. Crie um novo grupo de opções ou identifique um grupo de opções existente ao qual você pode adicionar a opção `SSL`.

   Para obter informações sobre como criar um grupo de opções, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Adicione a opção `SSL` ao grupo de opções.

   Se você quiser usar somente pacotes de criptografia verificados para o FIPS para conexões SSL, defina a opção `FIPS.SSLFIPS_140` como `TRUE`. Para obter informações sobre o padrão FIPS, consulte [Suporte ao FIPS](Appendix.Oracle.Options.SSL.md#Appendix.Oracle.Options.SSL.FIPS).

   Para obter informações sobre como adicionar uma opção a um grupo de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Crie uma instância de banco de dados do RDS para Oracle e associe a ela o grupo de opções ou modifique uma instância de banco de dados do RDS para Oracle para associar o grupo de opções a ela.

   Para obter informações sobre como criar uma instância de banco de dados, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

   Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

## AWS CLI
<a name="Appendix.Oracle.Options.SSL.OptionGroup.CLI"></a>

**Para adicionar a opção SSL a um grupo de opções**

1. Crie um novo grupo de opções ou identifique um grupo de opções existente ao qual você pode adicionar a opção `SSL`.

   Para obter informações sobre como criar um grupo de opções, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).

1. Adicione a opção `SSL` ao grupo de opções.

   Especifique as seguintes configurações de opção:
   + `Port` – O número da porta SSL
   + `VpcSecurityGroupMemberships` – O grupo de segurança da VPC para o qual a opção está ativada
   + `SQLNET.SSL_VERSION` – A versão do TLS que o cliente pode usar para se conectar à instância de banco de dados

   Por exemplo, o seguinte comando da AWS CLI adiciona a opção `SSL` a um grupo de opções denominado `ora-option-group`.  
**Example**  

   Para Linux, macOS ou Unix:

   ```
   aws rds add-option-to-option-group --option-group-name ora-option-group \
     --options 'OptionName=SSL,Port=2484,VpcSecurityGroupMemberships="sg-68184619",OptionSettings=[{Name=SQLNET.SSL_VERSION,Value=1.0}]'
   ```

   Para Windows:

   ```
   aws rds add-option-to-option-group --option-group-name ora-option-group ^
     --options 'OptionName=SSL,Port=2484,VpcSecurityGroupMemberships="sg-68184619",OptionSettings=[{Name=SQLNET.SSL_VERSION,Value=1.0}]'
   ```

1. Crie uma instância de banco de dados do RDS para Oracle e associe a ela o grupo de opções ou modifique uma instância de banco de dados do RDS para Oracle para associar o grupo de opções a ela.

   Para obter informações sobre como criar uma instância de banco de dados, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

   Para ter mais informações sobre a modificação de uma instância de banco de dados, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

# Configurar o SQL\$1Plus para usar SSL com uma instância de banco de dados do RDS para Oracle
<a name="Appendix.Oracle.Options.SSL.ClientConfiguration"></a>

É necessário configurar o SQL\$1Plus para se conectar a uma instância de banco de dados do RDS para Oracle que use a opção Oracle SSL.

**nota**  
Para permitir o acesso à instância de banco de dados a partir dos clientes apropriados, verifique se os grupos de segurança estão configurados corretamente. Para ter mais informações, consulte [Controlar acesso com grupos de segurança](Overview.RDSSecurityGroups.md). Além disso, essas instruções são para o SQL\$1Plus e outros clientes que usam diretamente um Oracle Home. Para conexões JDBC, consulte [Configurar uma conexão SSL via JDBC](Appendix.Oracle.Options.SSL.JDBC.md).

**Para configurar o SQL\$1Plus para usar SSL para se conectar a uma instância de banco de dados do RDS para Oracle**

1. Defina a variável de ambiente `ORACLE_HOME` como o local do diretório inicial do Oracle.

   O caminho para o diretório inicial do Oracle depende da instalação. O exemplo a seguir define a variável de ambiente `ORACLE_HOME`.

   ```
   prompt>export ORACLE_HOME=/home/user/app/user/product/19.0.0/dbhome_1
   ```

   Para obter informações sobre como definir variáveis de ambiente do Oracle, consulte [Variáveis de ambiente do SQL\$1Plus](http://docs.oracle.com/database/121/SQPUG/ch_two.htm#SQPUG331) na documentação da Oracle e consulte também o guia de instalação da Oracle para o sistema operacional.

1. Adicione a variável de ambiente `$ORACLE_HOME/lib` ao `LD_LIBRARY_PATH`.

   O exemplo a seguir define a variável de ambiente LD\$1LIBRARY\$1PATH.

   ```
   prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib 
   ```

1. Crie um diretório para o Oracle Wallet em `$ORACLE_HOME/ssl_wallet`.

   Este é um exemplo que cria o diretório do Oracle Wallet.

   ```
   prompt>mkdir $ORACLE_HOME/ssl_wallet
   ```

1. Baixe o pacote do certificado .pem que funciona para todas as Regiões da AWS e coloque o arquivo no diretório ssl\$1wallet. Para mais informações, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

1. No diretório `$ORACLE_HOME/network/admin`, modifique ou crie o arquivo `tnsnames.ora` e inclua a entrada a seguir.

   ```
   net_service_name = 
     (DESCRIPTION = 
       (ADDRESS_LIST = 
         (ADDRESS = 
           (PROTOCOL = TCPS) 
           (HOST = endpoint) 
           (PORT = ssl_port_number)
         )
       )
       (CONNECT_DATA = 
         (SID = database_name)
       )
       (SECURITY = 
         (SSL_SERVER_CERT_DN = "C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=endpoint")
       )
     )
   ```

1. No mesmo diretório, modifique ou crie o arquivo sqlnet.ora e inclua os seguintes parâmetros.
**nota**  
Para se comunicar com entidades por meio de uma conexão protegida por TLS, a Oracle requer uma carteira com os certificados necessários para autenticação. Você pode usar o utilitário ORAPKI da Oracle para criar e manter carteiras Oracle, conforme mostrado na etapa 7. Para ter mais informações, consulte [Configurar o Oracle Wallet usando ORAPKI](https://docs.oracle.com/cd/E92519_02/pt856pbr3/eng/pt/tsvt/task_SettingUpOracleWalletUsingORAPKI.html) na documentação da Oracle.

   ```
   WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_HOME/ssl_wallet))) 
   SSL_CLIENT_AUTHENTICATION = FALSE 
   SSL_VERSION = 1.0 
   SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA) 
   SSL_SERVER_DN_MATCH = ON
   ```
**nota**  
Você poderá definir `SSL_VERSION` como um valor mais alto se sua instância de banco de dados for compatível.

1. Execute os comandos a seguir para criar o Oracle Wallet.

   ```
   prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only
   ```

1. Extraia cada certificado no arquivo do pacote .pem em um arquivo .pem separado usando um utilitário do sistema operacional.

1. Adicione cada certificado à carteira usando comandos `orapki` separados, substituindo `certificate-pem-file` pelo nome absoluto do arquivo .pem.

   ```
   prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert
         certificate-pem-file -auto_login_only
   ```

   Para obter mais informações, consulte [Alternar o certificado SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md).

# Conectar-se a uma instância de banco de dados do RDS para Oracle usando SSL
<a name="Appendix.Oracle.Options.SSL.Connecting"></a>

Depois de configurar o SQL\$1Plus para usar SSL, conforme descrito anteriormente, você pode se conectar à instância de banco de dados do RDS para Oracle com a opção SSL. Opcionalmente, primeiro é possível exportar o valor de `TNS_ADMIN` que aponta para o diretório que contém os arquivos tnsnames.ora e sqlnet.ora. Isso garante que o SQL\$1Plus possa encontrar esses arquivos de forma consistente. O exemplo a seguir exporta o valor de `TNS_ADMIN`.

```
export TNS_ADMIN = ${ORACLE_HOME}/network/admin          
```

Conecte-se à instância de banco de dados. Por exemplo, você pode se conectar usando o SQL\$1Plus e um *<net\$1service\$1name>* em um arquivo tnsnames.ora.

```
sqlplus mydbuser@net_service_name          
```

Você também pode se conectar à instância de banco de dados usando o SQL\$1Plus sem utilizar um arquivo tnsnames.ora, por meio do seguinte comando.

```
sqlplus 'mydbuser@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = endpoint) (PORT = ssl_port_number))(CONNECT_DATA = (SID = database_name)))'          
```

Você também pode se conectar à instância de banco de dados do RDS para Oracle sem usar a SSL. Por exemplo, o seguinte comando se conecta à instância de banco de dados por meio da porta de texto sem formatação sem criptografia SSL.

```
sqlplus 'mydbuser@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = endpoint) (PORT = port_number))(CONNECT_DATA = (SID = database_name)))'          
```

Se você deseja fechar o acesso à porta do protocolo TCP, crie um security group sem entradas de endereço IP e adicione-o à instância. Essa inclusão encerra as conexões através da porta TCP, embora ainda permita conexões sobre a porta SSL especificadas a partir de endereços IP dentro do intervalo permitido pelo security group da opção SSL.

# Configurar uma conexão SSL via JDBC
<a name="Appendix.Oracle.Options.SSL.JDBC"></a>

Para usar uma conexão SSL via JDBC, é necessário criar um repositório de chaves, confiar no certificado da CA raiz do Amazon RDS e usar o trecho de código especificado a seguir.

Para criar o repositório de chaves no formato JKS, é possível usar o comando a seguir. Para ter mais informações sobre como criar o repositório de chaves, consulte [Creating a keystore](https://docs.oracle.com/cd/E35822_01/server.740/es_admin/src/tadm_ssl_jetty_keystore.html) na documentação da Oracle. Para ter informações de referência, consulte [keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html) na *Java Platform, Standard Edition Tools Reference*.

```
keytool -genkey -alias client -validity 365 -keyalg RSA -keystore clientkeystore         
```

Siga estas etapas para confiar no certificado da CA raiz do Amazon RDS.

**Para confiar no certificado da CA raiz do Amazon RDS**

1. Baixe o pacote do certificado .pem que funciona para todas as Regiões da AWS e coloque o arquivo no diretório ssl\$1wallet.

   Para obter informações sobre como baixar certificados, consulte [Usar SSL/TLS para criptografar uma conexão com uma instância ou um cluster de banco de dados](UsingWithRDS.SSL.md).

1. Extraia cada certificado no arquivo .pem em um arquivo separado usando um utilitário do sistema operacional.

1. Converta cada certificado no formato .der usando um comando `openssl` separado, substituindo *certificate-pem-file* pelo nome do arquivo .pem do certificado (sem a extensão .pem).

   ```
   openssl x509 -outform der -in certificate-pem-file.pem -out certificate-pem-file.der                
   ```

1. Importe cada certificado para o repositório de chaves usando o comando a seguir.

   ```
   keytool -import -alias rds-root -keystore clientkeystore.jks -file certificate-pem-file.der                
   ```

   Para ter mais informações, consulte [Alternar o certificado SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md).

1. Confirme se o armazenamento de chaves foi criado com êxito.

   ```
   keytool -list -v -keystore clientkeystore.jks                                            
   ```

   Insira a senha do repositório de chaves quando solicitado.

O exemplo de código a seguir mostra como configurar a conexão SSL usando o JDBC.

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class OracleSslConnectionTest {
    private static final String DB_SERVER_NAME = "dns-name-provided-by-amazon-rds";
    private static final Integer SSL_PORT = "ssl-option-port-configured-in-option-group";
    private static final String DB_SID = "oracle-sid";
    private static final String DB_USER = "user-name";
    private static final String DB_PASSWORD = "password";
    // This key store has only the prod root ca.
    private static final String KEY_STORE_FILE_PATH = "file-path-to-keystore";
    private static final String KEY_STORE_PASS = "keystore-password";
 
    public static void main(String[] args) throws SQLException {
        final Properties properties = new Properties();
        final String connectionString = String.format(
                "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))",
                DB_SERVER_NAME, SSL_PORT, DB_SID);
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);
        properties.put("oracle.jdbc.J2EE13Compliant", "true");
        properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        properties.put("javax.net.ssl.trustStoreType", "JKS");
        properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);
        final Connection connection = DriverManager.getConnection(connectionString, properties);
        // If no exception, that means handshake has passed, and an SSL connection can be opened
    }
}
```

**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

# Forçar uma correspondência de DN com uma conexão SSL
<a name="Appendix.Oracle.Options.SSL.DNMatch"></a>

Você pode usar o parâmetro Oracle `SSL_SERVER_DN_MATCH` para forçar que o nome distinto (DN) do servidor de banco de dados corresponda ao nome do serviço. Se você forçar as verificações de correspondência, a SSL assegurará que o certificado seja proveniente do servidor. Se você não forçar a verificação de correspondência, a SSL realizará a verificação, mas permitirá a conexão, independentemente de haver ou não uma correspondência. Se você não forçar a correspondência, permitirá que o servidor falsifique a identidade.

Para forçar a correspondência de DN, adicione a propriedade de correspondência de DN e use a string de conexão especificada abaixo.

Adicione a propriedade à conexão de cliente para reforçar a correspondência de DN.

```
properties.put("oracle.net.ssl_server_dn_match", "TRUE");            
```

Use a seguinte string de conexão para forçar a correspondência de DN ao usar a SSL.

```
final String connectionString = String.format(
    "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))" +
    "(CONNECT_DATA=(SID=%s))" +
    "(SECURITY = (SSL_SERVER_CERT_DN = 
\"C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=%s\")))",
    DB_SERVER_NAME, SSL_PORT, DB_SID, DB_SERVER_NAME);
```

# Solução de problemas de conexões SSL
<a name="Appendix.Oracle.Options.SSL.troubleshooting"></a>

Você pode consultar seu banco de dados e receber o erro `ORA-28860`.

```
ORA-28860: Fatal SSL error
28860. 00000 - "Fatal SSL error"
*Cause: An error occurred during the SSL connection to the peer. It is likely that this side sent data which the peer rejected.
*Action: Enable tracing to determine the exact cause of this error.
```

Esse erro ocorre quando o cliente tenta se conectar usando uma versão do TLS não compatível com o servidor. Para evitar esse erro, edite o sqlnet.ora e defina `SSL_VERSION` como a versão correta do TLS. Para ter mais informações, consulte o [Documento de suporte da Oracle 2748438.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2748438.1) em My Oracle Support.

# Oracle Spatial
<a name="Oracle.Options.Spatial"></a>

O Amazon RDS dá suporte ao Oracle Spatial por meio do uso da opção `SPATIAL`. O Oracle Spatial fornece um esquema SQL e funções que facilitam o armazenamento, a recuperação, a atualização e a consulta de coleções de dados espaciais em um banco de dados Oracle. Para obter mais informações, consulte [Conceitos do Spatial](http://docs.oracle.com/database/121/SPATL/spatial-concepts.htm#SPATL010) na documentação da Oracle. O Amazon RDS é compatível com o Oracle Spatial em todas as edições de todas as versões compatíveis.

## Como funcionam os pacotes de patches espaciais (SPBs)
<a name="Oracle.Options.Spatial.SPBs"></a>

A cada trimestre, o RDS para Oracle lança novas versões secundárias de mecanismos para cada mecanismo principal compatível. Uma atualização de versão (RU) do mecanismo incorpora correções de bugs da Oracle incluindo os patches de RU referentes ao trimestre especificado. Uma versão do mecanismo do pacote de patches espaciais (SPB) contém patches de RU e patches específicos para o Oracle Spatial. Por exemplo, 19.0.0.0.ru-2025-01.spb-1.r1 é uma versão secundária do mecanismo que contém os patches de RU na versão do mecanismo 19.0.0.0.ru-2025-01.rur-2025-01.r1 e patches do Spatial. Os SPBs são compatíveis somente com o Oracle Database 19c.

Eles funcionam da mesma forma que as RUs, embora tenham nomes diferentes. Uma RU usa o formato de nomenclatura 19.0.0.0.ru-2025-01.rur-2025-01.r1. Um nome de SPB inclui o texto “spb”, como em 19.0.0.0.ru-2025-01.spb-1.r1. Normalmente, um SPB é lançado duas a três semanas após a RU trimestral correspondente. Por exemplo, 19.0.0.0.ru-2025-01.spb-1.r1 é lançada após a 19.0.0.0.ru-2025-01.rur-2025-01.r1.

O RDS para Oracle tem caminhos separados para atualizações automáticas de versões secundárias de RUs e SPBs. Se sua instância de banco de dados usa uma RU, o RDS a atualiza automaticamente para uma RU. Se sua instância de banco de dados usa um SPB, o RDS o atualiza automaticamente para um SPB.

Para ter mais informações sobre RUs e SPBs, consulte [Atualizações de versões secundárias Oracle](USER_UpgradeDBInstance.Oracle.Minor.md). Para examinar uma lista de RUs e SPBs compatíveis com o Oracle Database 19c, consulte [Amazon RDS for Oracle Database 19c (19.0.0.0)](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html) nas *Notas de lançamento do Amazon RDS para Oracle*.

## Pré-requisitos do Oracle Spatial
<a name="Oracle.Options.Spatial.PreReqs"></a>

Estes são os pré-requisitos para usar o Oracle Spatial: 
+ A instância de banco de dados deve ser de uma classe de instância suficiente. O Oracle Spatial não é compatível com as classes de instância de banco de dados db.t3.small. Para obter mais informações, consulte [Classes de instância de banco de dados do RDS para Oracle](Oracle.Concepts.InstanceClasses.md). 
+ O **Upgrade automático de versões secundárias** deve estar habilitado na instância de banco de dados. Essa opção permite que a instância de banco de dados receba atualizações de versões secundárias do mecanismo de banco de dados automaticamente, quando disponibilizadas e é necessária para qualquer opção que instala o Oracle Java Virtual Machine (JVM). O Amazon RDS usa essa opção para atualizar a instância de banco de dados para a Oracle Patch Set Update (PSU) ou Release Update (RU) mais recente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Práticas recomendadas do Oracle Spatial
<a name="Oracle.Options.Spatial.BestPractces"></a>

Estas são as práticas recomendadas para usar o Oracle Spatial: 
+ Para obter segurança máxima, use a opção `SPATIAL` com Secure Sockets Layer (SSL). Para obter mais informações, consulte [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md). 
+ Configure a instância de banco de dados para restringir o acesso à instância de banco de dados. Para obter mais informações, consulte [Cenários para acessar uma instância de banco de dados em uma VPC](USER_VPC.Scenarios.md) e [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md). 

## Adicionar a opção Oracle Spatial
<a name="Oracle.Options.Spatial.Add"></a>

Este é o processo geral para adicionar a opção `SPATIAL` a uma instância de banco de dados: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Se o Oracle Java Virtual Machine (JVM) *não* estiver instalado na instância de banco de dados, haverá uma breve interrupção enquanto a opção `SPATIAL` é adicionada. Não haverá interrupção se o Oracle Java Virtual Machine (JVM) já estiver instalado na instância de banco de dados. Depois de adicionar a opção , você não precisará reiniciar sua instância de banco de dados. Assim que o grupo de opções estiver ativo, o Oracle Spatial estará disponível. 

**nota**  
Durante essa interrupção, as funções de verificação de senha são desativadas brevemente. Você também pode esperar ver eventos relacionados às funções de verificação de senha durante a interrupção. As funções de verificação de senha são ativadas novamente antes que a instância de banco de dados Oracle esteja disponível.

**Para adicionar a opção `SPATIAL` a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Em **Engine (Mecanismo)**, escolha a edição Oracle para sua instância de banco de dados. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **SPATIAL** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Remover a opção Oracle Spatial
<a name="Oracle.Options.Spatial.Remove"></a>

Depois de descartar todos os objetos que usam tipos de dados fornecidos pela opção `SPATIAL`, você pode descartá-los de uma instância de banco de dados. Se o Oracle Java Virtual Machine (JVM) *não* estiver instalado na instância de banco de dados, haverá uma breve interrupção enquanto a opção `SPATIAL` é removida. Não haverá interrupção se o Oracle Java Virtual Machine (JVM) já estiver instalado na instância de banco de dados. Depois de remover a opção `SPATIAL`, você não precisará reiniciar a instância de banco de dados.

**Como descartar a opção `SPATIAL`**

1. Faça backup de seus dados.
**Atenção**  
Se a instância usar tipos de dados que foram ativados como parte da opção e se você remover a opção `SPATIAL`, você poderá perder dados. Para obter mais informações, consulte [Backup, restauração e exportação de dados](CHAP_CommonTasks.BackupRestore.md).

1. Verifique se os objetos existentes fazem referência a tipos de dados ou recursos da opção `SPATIAL`. 

   Se existirem opções `SPATIAL`, a instância poderá ficar presa ao aplicar o novo grupo de opções que não tem a opção `SPATIAL`. Você pode identificar os objetos usando as seguintes consultas:

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. Solte todos os objetos que fazem referência a tipos de dados ou recursos da opção `SPATIAL`.

1. Execute um destes procedimentos:
   + Remova a opção `SPATIAL` do grupo de opções ao qual ela pertence. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption).
   + Modifique a instância de banco de dados e especifique um grupo de opções diferente que não inclua a opção `SPATIAL`. Essa alteração afeta uma única instância de banco de dados. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

# Oracle SQLT
<a name="Oracle.Options.SQLT"></a>

O Amazon RDS dá suporte ao Oracle SQLTXPLAIN (SQLT) por meio do uso da opção SQLT. É possível usar o SQLT com qualquer edição do Oracle Database 19c e posterior.

A instrução `EXPLAIN PLAN` do Oracle pode determinar o plano de execução de uma instrução SQL. Ela pode verificar se o otimizador Oracle escolha um determinado plano de execução, como uma junção aninhada em loop. Ela também ajuda a compreender as decisões do otimizador, como por que escolheu uma junção aninhada em loop em uma junção de hash. Assim, `EXPLAIN PLAN` ajuda a compreender a performance da instrução.

SQLT é um utilitário Oracle que produz um relatório. O relatório inclui estatísticas de objeto, metadados de objeto, parâmetros de inicialização relacionados ao otimizador e outras informações que um administrador de banco de dados pode usar para ajustar uma instrução SQL para performance ideal. SQLT produz um relatório HTML com hiperlinks para todas as seções no relatório.

Diferentemente de relatórios Automatic Workload Repository ou Statspack, o SQLT funciona em instruções SQL individuais. O SQLT é uma coleção de arquivos SQL, PL/SQL e SQL\$1Plus que coletam, armazenam e exibem dados de performance. 

A seguir estão as versões com suporte do Oracle para cada versão do SQLT.


****  

| Versão do SQLT | Oracle Database 21c | Oracle Database 19c | 
| --- | --- | --- | 
|  2018-07-25.v1  |  Compatível  |  Compatível  | 
|  2018-03-31.v1  |  Sem compatibilidade  |  Sem compatibilidade  | 
|  2016-04-29.v1  |  Sem compatibilidade  |  Sem compatibilidade  | 

Para baixar o SQLT e as instruções de acesso para usá-lo:
+ Faça login na conta My Oracle Support e abra os documentos a seguir:
+ Para baixar o SQLT: [Documento 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1)
+ Para obter instruções de uso do SQLT: [Documento 1614107.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1614107.1)
+ Para ver as perguntas frequentes sobre o SQLT, consulte [Documento 1454160.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454160.1).
+ Para obter informações sobre como ler a saída do SQLT: [Documento 1456176.1](https://support.oracle.com/epmos/main/downloadattachmentprocessor?parent=DOCUMENT&sourceId=1456176.1&attachid=1456176.1:58&clickstream=yes)
+ Para a interpretação do relatório principal: [Documento 1922234.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1922234.1)

O Amazon RDS não é compatível com os seguintes métodos do SQLT: 
+ `XPLORE` 
+ `XHUME` 

## Pré-requisitos para o SQLT
<a name="Oracle.Options.SQLT.PreReqs"></a>

Veja a seguir os pré-requisitos para usar o SQLT:
+ Será necessário remover usuários e funções solicitados pelo SQLT, se eles existirem.

  A opção do SQLT cria os seguintes usuários e as funções em uma instância de banco de dados: 
  + `SQLTXPLAIN`Usuário 
  + `SQLTXADMIN`Usuário 
  + `SQLT_USER_ROLE`Função 

  Se a instância de banco de dados tiver algum desses usuários ou funções, faça login na instância de banco de dados usando um cliente SQL e os ignore usando as seguintes instruções:

  ```
  DROP USER SQLTXPLAIN CASCADE;
  DROP USER SQLTXADMIN CASCADE;   
  DROP ROLE SQLT_USER_ROLE CASCADE;
  ```
+ Será necessário remover espaços de tabela solicitados pelo SQLT, se eles existirem.

  A opção do SQLT cria os seguintes espaços de tabela em uma instância de banco de dados: 
  + `RDS_SQLT_TS`
  + `RDS_TEMP_SQLT_TS`

  Se a instância de banco de dados tiver esses espaços de tabela, faça login na instância de banco de dados usando um cliente SQL e os ignore.

## Configurações de opção SQLT
<a name="Oracle.Options.SQLT.Options"></a>

 O SQLT pode funcionar com recursos licenciados fornecidos pelo Oracle Tuning Pack e pelo Oracle Diagnostics Pack. O Oracle Tuning Pack inclui o SQL Tuning Advisor, e o Oracle Diagnostics Pack inclui o Automatic Workload Repository. As configurações do SQLT habilitam ou desabilitam acesso a esses recursos do SQLT. 

O Amazon RDS oferece suporte para as seguintes configurações da opção SQLT. 


****  

| Configuração da opção | Valores válidos | Valor padrão | Descrição | 
| --- | --- | --- | --- | 
|  `LICENSE_PACK`  |  `T`, `D`, `N`  |  `N`   |  Os Oracle Management Packs que você deseja acessar com o SQLT. Insira um dos seguintes valores: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/Oracle.Options.SQLT.html)  O Amazon RDS não fornece licenças para esses Oracle Management Packs. Se indicar que deseja usar um pacote não incluído na instância de banco de dados, você poderá usar o SQLT com a instância de banco de dados. No entanto, o SQLT não consegue acessar o pacote, e o relatório SQLT não inclui os dados do pacote. Por exemplo, se você especificar `T`, mas a instância de banco de dados não incluir o Oracle Tuning Pack, o SQLT funcionará na instância de banco de dados, mas o relatório gerado não conterá dados relacionados ao Oracle Tuning Pack.   | 
|  `VERSION`  |  `2016-04-29.v1` `2018-03-31.v1` `2018-07-25.v1`  |  `2016-04-29.v1`   |  A versão do SQLT que você deseja instalar.  Para o Oracle Database 19c e 21c, a única versão compatível é `2018-07-25.v1`. Para essas versões, essa é a padrão.   | 

## Adicionar a opção SQLT
<a name="Oracle.Options.SQLT.Add"></a>

Este é o processo geral para adicionar as opções do SQLT a uma instância de banco de dados: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção SQLT ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Depois de adicionar a opção SQLT, assim que o grupo de opções estiver ativo, o SQLT ficará ativo. 

**Para adicionar a opção SQLT a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Para **Engine (Mecanismo)**, escolha a edição do Oracle que deseja usar. A opção do SQLT é compatível em todas as edições. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **SQLT** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 

      
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

1. (Opcional) Verifique a instalação do SQLT em cada instância de banco de dados com a opção do SQLT. 

   1. Use um cliente SQL para se conectar à instância de banco de dados como o usuário mestre.

      Para obter informações sobre como se conectar a uma instância de banco de dados Oracle usando um cliente SQL, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md).

   1. Execute a seguinte consulta:

      ```
      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;                        
      ```

      A consulta retorna a versão atual da opção do SQLT no Amazon RDS. `12.1.160429` é um exemplo de uma versão do SQLT disponível no Amazon RDS.

1. Altere as senhas dos usuários criados pela opção do SQLT.

   1. Use um cliente SQL para se conectar à instância de banco de dados como o usuário mestre.

   1. Execute a seguinte instrução SQL para alterar a senha do usuário `SQLTXADMIN`:

      ```
      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;                         
      ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

   1. Execute a seguinte instrução SQL para alterar a senha do usuário `SQLTXPLAIN`:

      ```
      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;                         
      ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

**nota**  
Atualizar o SQLT exige desinstalar uma versão mais antiga do SQLT e instalar a nova versão. Dessa forma, todos os metadados do SQLT podem ser perdidos quando você atualiza o SQLT. Uma atualização de versão principal de um banco de dados também desinstala e reinstala o SQLT. Um exemplo de uma atualização de versão principal é uma atualização do Oracle Database 19c para o Oracle Database 21c.

## Uso de SQLT
<a name="Oracle.Options.SQLT.Using"></a>

O SQLT funciona com o utilitário Oracle SQL\$1Plus. 

**Para usar o SQLT**

1.  Baixe o arquivo .zip SQLT no [Documento 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1) no site do My Oracle Support. 
**nota**  
Não é possível baixar o SQLT 12.1.160429 do site do My Oracle Support. A Oracle desativou essa versão mais antiga.

1.  Descompacte o arquivo .zip do SQLT. 

1.  Em um prompt de comando, altere o diretório `sqlt/run` no sistema de arquivos. 

1.  No prompt de comando, abra o SQL\$1Plus e se conecte à instância de banco de dados como o usuário mestre. 

   Para obter mais informações sobre como se conectar a uma instância de banco de dados usando o SQL \$1Plus, consulte [Conectar-se a uma instância de banco de dados Oracle](USER_ConnectToOracleInstance.md).

1.  Obtenha o ID do SQL de uma instrução SQL: 

   ```
   SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';                               
   ```

   A saída é semelhante à seguinte: 

   ```
   SQL_ID
   -------------
   chvsmttqjzjkn
   ```

1. Analise uma instrução SQL com o SQLT: 

   ```
   START sqltxtract.sql sql_id sqltxplain_user_password                    
   ```

   Por exemplo, para o ID SQL `chvsmttqjzjkn`, insira o seguinte:

   ```
   START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password                    
   ```

   O SQLT gera o relatório HTML e os recursos relacionados como um arquivo .zip no diretório no qual o comando do SQLT foi executado.

1.  (Opcional) Para permitir que usuários do aplicativo façam diagnóstico de instruções SQL com o SQLT, conceda `SQLT_USER_ROLE` a cada usuário do aplicativo com a seguinte instrução: 

   ```
   GRANT SQLT_USER_ROLE TO application_user_name;                
   ```
**nota**  
O Oracle não recomenda executar o SQLT com o usuário `SYS` ou com os usuários que tenham a função `DBA`. Trata-se de uma melhor prática executar o diagnóstico do SQLT usando a conta do usuário do aplicativo concedendo `SQLT_USER_ROLE` ao usuário do aplicativo.

## Atualizar a opção SQLT
<a name="Oracle.Options.SQLT.Upgrading"></a>

Com o Amazon RDS for Oracle, você pode atualizar a opção SQLT da sua versão existente para uma versão superior. Para atualizar a opção SQLT, conclua as etapas 1 – 3 em [Uso de SQLT](#Oracle.Options.SQLT.Using) para a nova versão do SQLT. Além disso, se você tiver concedido privilégios na versão anterior do SQLT, na etapa 7 daquela seção, conceda os privilégios novamente na nova versão do SQLT. 

A atualização da opção SQLT resulta na perda dos metadados da versão anterior do SQLT. O esquema e os objetos relacionados da versão anterior do SQLT são descartados e a nova versão do SQLT é instalada. Para obter mais informações sobre as alterações na versão mais recente do SQLT, consulte [Documento 1614201.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1614201.1) no site My Oracle Support.

**nota**  
Downgrades de versões não são compatíveis.

## Modificar as configurações do SQLT
<a name="Oracle.Options.SQLT.ModifySettings"></a>

Depois de habilitar o SQLT, você pode modificar as configurações de `LICENSE_PACK` e `VERSION` para essa opção.

Para mais informações sobre como modificar as configurações da opção, consulte [Modificar uma configuração de opção](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption). Para mais informações sobre cada configuração, consulte [Configurações de opção SQLT](#Oracle.Options.SQLT.Options). 

## Remover a opção SQLT
<a name="Oracle.Options.SQLT.Remove"></a>

Você pode remover o SQLT de uma instância de banco de dados. 

Para remover o SQLT de uma instância de banco de dados, siga um destes procedimentos: 
+ Para remover o SQLT de várias instâncias de bancos de dados, remova a opção SQLT do grupo de opções ao qual as instâncias de banco de dados pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 

   
+ Para remover o SQLT de uma única instância de banco de dados, modifique essa instância e especifique um grupo de opções diferente que não inclua a opção SQLT. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para ter mais informações, consulte[Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md) 

# Oracle Statspack
<a name="Appendix.Oracle.Options.Statspack"></a>

A opção Oracle Statspack instala e habilita o recurso de estatísticas de performance Oracle Statspack. O Oracle Statspack é uma coleção de scripts SQL, PL/SQL e SQL\$1Plus que coletam, armazenam e exibem dados de performance. Para obter informações sobre como usar o Oracle Statspack, consulte [Oracle Statspack](http://docs.oracle.com/cd/E13160_01/wli/docs10gr3/dbtuning/statsApdx.html) na documentação da Oracle.

**nota**  
O Oracle Statspack não tem mais suporte pela Oracle e foi substituído pelo mais avançado AWR (Automatic Workload Repository). O AWR está disponível apenas para clientes do Oracle Enterprise Edition que compraram o Diagnostics Pack. Você pode usar o Oracle Statspack com qualquer mecanismo de banco de dados Oracle no Amazon RDS. Você não pode executar o Oracle Statspack em réplicas de leitura do Amazon RDS. 

## Configurar o Oracle Statspack
<a name="Appendix.Oracle.Options.Statspack.setting-up"></a>

Para executar scripts do Statspack, é necessário adicionar a opção Statspack.

**Como configurar o Oracle Statspack**

1. Em um cliente SQL, faça login no banco de dados Oracle com uma conta administrativa.

1. Execute uma das seguintes ações, dependendo se o Statspack está instalado:
   + Se o Statspack estiver instalado e a conta `PERFSTAT` estiver associada ao Statspack, vá para a Etapa 4.
   + Se o Statspack não estiver instalado e a conta `PERFSTAT` existir, descarte a conta da seguinte maneira:

     ```
     DROP USER PERFSTAT CASCADE;
     ```

     Caso contrário, tentar adicionar a opção Statspack gerará um erro e `RDS-Event-0058`.

1. Adicione a opção Statspack a um grupo de opções. Consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

   O Amazon RDS instala automaticamente os scripts do Statspack na instância de banco de dados e configura a conta `PERFSTAT`.

1. Redefina a senha usando a seguinte instrução SQL, substituindo *pwd* por sua nova senha:

   ```
   ALTER USER PERFSTAT IDENTIFIED BY pwd ACCOUNT UNLOCK;
   ```

   Você pode fazer login usando a conta do usuário `PERFSTAT` e executar os scripts do Statspack.

1. Conceda o privilégio `CREATE JOB` à conta `PERFSTAT` usando a seguinte instrução:

   ```
   GRANT CREATE JOB TO PERFSTAT;
   ```

1. Verifique se os eventos de espera ociosos na tabela `PERFSTAT.STATS$IDLE_EVENT` estão preenchidos.

   Devido ao erro 28523746 do Oracle, os eventos de espera ociosos em `PERFSTAT.STATS$IDLE_EVENT` podem não estar preenchidos. Para garantir que todos os eventos ociosos estejam disponíveis, execute a seguinte instrução:

   ```
   INSERT INTO PERFSTAT.STATS$IDLE_EVENT (EVENT)
   SELECT NAME FROM V$EVENT_NAME WHERE WAIT_CLASS='Idle'
   MINUS
   SELECT EVENT FROM PERFSTAT.STATS$IDLE_EVENT;
   COMMIT;
   ```

## Gerar relatórios do Statspack
<a name="Appendix.Oracle.Options.Statspack.generating-reports"></a>

Um relatório do Statspack compara dois snapshots.

**Como gerar relatórios do Statspack**

1. Em um cliente SQL, faça login no banco de dados Oracle com a conta `PERFSTAT`.

1. Crie um snapshot usando uma das seguintes técnicas:
   + Crie um snapshot do Statspack manualmente.
   + Crie um trabalho que faça um snapshot do Statspack após determinado intervalo de tempo. Por exemplo, o seguinte trabalho cria um snapshot do Statspack a cada hora:

     ```
     VARIABLE jn NUMBER;
     exec dbms_job.submit(:jn, 'statspack.snap;',SYSDATE,'TRUNC(SYSDATE+1/24,''HH24'')');
     COMMIT;
     ```

1. Visualize os snapshots usando a seguinte consulta:

   ```
   SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1;
   ```

1. Execute o procedimento `rdsadmin.rds_run_spreport` do Amazon RDS, substituindo *begin\$1snap* e *end\$1snap* pelos IDs do snapshot:

   ```
   exec rdsadmin.rds_run_spreport(begin_snap,end_snap);
   ```

   Por exemplo, o seguinte comando cria um relatório baseado no intervalo entre os snapshots 1 e 2 do Statspack:

   ```
   exec rdsadmin.rds_run_spreport(1,2);
   ```

   O nome de arquivo do relatório do Statspack inclui o número dos dois snapshots. Por exemplo, um arquivo de relatório criado usando os snapshots 1 e 2 do Statspack se chamaria `ORCL_spreport_1_2.lst`.

1. Verifique se há erros na saída.

   O Oracle Statspack realiza verificações antes de executar o relatório. Portanto, você também pode ver mensagens de erro na saída do comando. Por exemplo, você pode tentar gerar um relatório com base em um intervalo inválido, em que o valor inicial do snapshot do Statspack é maior do que o valor final. Nesse caso, a saída mostra a mensagem de erro, mas o mecanismo de banco de dados não gera um arquivo de erro.

   ```
   exec rdsadmin.rds_run_spreport(2,1);
   *
   ERROR at line 1:
   ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.
   ```

   Se você usar um número inválido para um snapshot do Statspack, a saída mostrará um erro. Por exemplo, se você tentar gerar um relatório para os snapshots 1 e 50, mas o snapshot 50 não existir, a saída mostrará um erro.

   ```
   exec rdsadmin.rds_run_spreport(1,50);
   *
   ERROR at line 1:
   ORA-20000: Could not find both snapshot IDs
   ```

1. (Optional) 

   Para recuperar o relatório, chame os procedimentos de arquivo de rastreamento, conforme explicado em [Trabalhar com arquivos de rastreamento da Oracle](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles). 

   Como alternativa, baixe o relatório do Statspack pelo console do RDS. Acesse a seção **Log** dos detalhes da instância de banco de dados e selecione **Baixar**. O exemplo a seguir mostra `trace/ORCL_spreport_1_2.lst`.  
![\[Mostra uma lista de arquivos de log do Oracle no console do RDS. O seguinte arquivo de rastreamento é circulado: trace/ORCL_spreport_1_2.lst.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/statspack1.png)

   Se ocorrer um erro ao gerar um relatório, o mecanismo de banco de dados usará as mesmas convenções de nomenclatura de um relatório, mas com uma extensão de `.err`. Por exemplo, se ocorresse um erro durante a criação de um relatório usando os snapshots 1 e 7 do Statspack, o arquivo de relatório se chamaria `ORCL_spreport_1_7.err`. É possível baixar o relatório de erros usando as mesmas técnicas de um relatório de snapshot padrão.

## Remover snapshots do Statspack
<a name="Appendix.Oracle.Options.Statspack.removing-files"></a>

Para remover vários snapshots do Oracle Statspack, use o seguinte comando:

```
exec statspack.purge(begin snap, end snap); 
```

# Fuso horário da Oracle
<a name="Appendix.Oracle.Options.Timezone"></a>

Para alterar o fuso horário do sistema usado pela sua instância de banco de dados Oracle, use a opção de fuso horário. Por exemplo, é possível alterar o fuso horário de uma instância de banco de dados para que ele seja compatível com um ambiente local ou um aplicativo herdado. A opção de fuso horário altera o fuso horário no nível do host. Alterar o fuso horário afeta todas as colunas e valores de data, incluindo `SYSDATE` e `SYSTIMESTAMP`.

A opção de fuso horário difere do comando `rdsadmin_util.alter_db_time_zone`. O comando `alter_db_time_zone` altera o fuso horário apenas para certos tipos de dados. A opção de fuso horário altera o fuso horário para todas as colunas e valores de data. Para obter mais informações sobre o `alter_db_time_zone`, consulte [Definição do fuso horário do banco de dados](Appendix.Oracle.CommonDBATasks.TimeZoneSupport.md). Para ter mais informações sobre as considerações de atualização, consulte [Considerações sobre fuso horário](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.DST).

## Restrições para definir o fuso horário
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

A opção de fuso horário é uma opção permanente e persistente. Portanto, você não pode fazer o seguinte:
+ Remover a opção de um grupo de opções depois de adicionar a opção de fuso horário.
+ Remover o grupo de opções de uma instância de banco de dados depois de adicioná-lo.
+ Modificar a configuração de fuso horário da opção para um fuso horário diferente.

## Recomendações para definir o fuso horário
<a name="Appendix.Oracle.Options.Timezone.PreReqs"></a>

Antes de adicionar a opção de fuso horário ao seu banco de dados de produção, recomendamos que você faça o seguinte:
+ Crie um snapshot de sua instância de banco de dados. Se você definir o fuso horário incorretamente por engano, será necessário recuperar a instância de banco de dados para sua configuração de fuso horário anterior. Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md).
+ Para adicionar a opção de fuso horário a uma instância de banco de dados Adicionar a opção de fuso horário pode causar problemas com tabelas que usam a data do sistema para adicionar datas ou horários. Recomendamos que você analise dados e aplicações na instância de teste. Dessa forma, é possível avaliar o impacto da mudança do fuso horário na instância de produção.

Se a instância de banco de dados usa o grupo de opções padrão, siga estas etapas:

1. Crie um snapshot de sua instância de banco de dados.

1. Adicione a opção de fuso horário a uma instância de banco de dados.

Se a instância de banco de dados usa o grupo de opções não padrão, siga estas etapas:

1. Crie um snapshot de sua instância de banco de dados.

1. Crie um novo grupo de opções.

1. Adicione a opção de fuso horário à instância, além de todas as outras opções atualmente associadas ao grupo de opções existente.

   Isso evita que as opções existentes sejam desinstaladas ao habilitar a opção de fuso horário.

1. Adicione o grupo de opções à sua instância de banco de dados.

## Configurações da opção de fuso horário
<a name="Appendix.Oracle.Options.Timezone.Options"></a>

O Amazon RDS oferece suporte para as seguintes configurações da opção de fuso horário. 


****  

| Configuração da opção | Valores válidos | Descrição | 
| --- | --- | --- | 
| `TIME_ZONE` |  Um dos fusos horários disponíveis. Para ver a lista completa, consulte [Fusos horários disponíveis](#Appendix.Oracle.Options.Timezone.Zones).   |  O novo fuso horário da sua instância de banco de dados.   | 

## Adicionar a opção de fuso horário
<a name="Appendix.Oracle.Options.Timezone.Add"></a>

Conclua as seguintes etapas para adicionar a opção de fuso horário à instância de banco de dados:

1. (Recomendado) Crie um snapshot da instância de banco de dados.

1. Realize uma destas tarefas:
   + Crie um grupo de opções do zero. Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).
   + Copie um grupo de opções existente usando a AWS CLI ou a API. Para obter mais informações, consulte [Copiar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).
   + Reutilize um grupo de opções não padrão. Uma prática recomendada é usar um grupo de opções que não esteja atualmente associado a nenhuma instância de banco de dados ou snapshot.

1. Adicione a nova opção ao grupo de opções da etapa anterior.

1. Se o grupo de opções atualmente associado à instância de banco de dados tiver opções habilitadas, adicione essas opções ao novo grupo de opções. Essa estratégia evita que as opções existentes sejam desinstaladas ao habilitar a nova opção.

1. Adicione o novo grupo de opções à instância de banco de dados.

Quando você adiciona a opção de fuso horário, ocorre uma breve interrupção enquanto sua instância de banco de dados é reiniciada automaticamente. 

### Console
<a name="Appendix.Oracle.Options.Timezone.Console"></a>

**Como adicionar a opção de fuso horário a um grupo de opções e associá-la à instância de banco de dados**

1. No console do RDS, escolha **Grupos de opções**.

1. Escolha o nome do grupo de opções ao qual você deseja adicionar a opção.

1. Escolha **Add option (Adicionar opção)**.

1. Em **Nome da opção**, escolha **Fuso horário** e defina as configurações da opção. 

1. Associe o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, aplique o grupo de opções ao executar a instância. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, aplique o grupo de opções modificando a instância e anexando o novo grupo de opções. Quando você adiciona a nova opção a uma instância de banco de dados existente, ocorre uma breve interrupção enquanto a instância de banco de dados é reiniciada automaticamente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

### AWS CLI
<a name="Appendix.Oracle.Options.Timezone.CLI"></a>

O exemplo a seguir usa o comando [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) da AWS CLI para adicionar a opção `Timezone` e a configuração da opção `TIME_ZONE` a um grupo de opções chamado de `myoptiongroup`​. O fuso horário é definido como `Africa/Cairo`. 

Para Linux, macOS ou Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=Africa/Cairo}]" \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=Africa/Cairo}]" ^
    --apply-immediately
```

## Modificar configurações de fuso horário
<a name="Appendix.Oracle.Options.Timezone.ModifySettings"></a>

A opção de fuso horário é uma opção permanente e persistente. Você não poderá remover a opção de um grupo de opções depois de adicioná-la. Você não poderá remover o grupo de opções de uma instância de banco de dados depois de adicioná-lo. Não é possível modificar a configuração de fuso horário da opção para um fuso horário diferente. Se você definir o fuso horário incorretamente, restaure um snapshot da sua instância de banco de dados antes de adicionar a opção de fuso horário. 

## Remover opção de fuso horário
<a name="Appendix.Oracle.Options.Timezone.Remove"></a>

A opção de fuso horário é uma opção permanente e persistente. Você não poderá remover a opção de um grupo de opções depois de adicioná-la. Você não poderá remover o grupo de opções de uma instância de banco de dados depois de adicioná-lo. Pare remover a opção de fuso horário, restaure um snapshot da sua instância de banco de dados antes de adicionar a opção de fuso horário. 

## Fusos horários disponíveis
<a name="Appendix.Oracle.Options.Timezone.Zones"></a>

Os valores a seguir podem ser usados para a opção de fuso horário. 


****  

| Zona | Time zone (Fuso horário) | 
| --- | --- | 
|  África  |  África/Cairo, África/Casablanca, África/Harare, África/Lagos, África/Luanda, África/Monrovia, África/Nairobi, África/Tripoli, África/Windhoek   | 
|  América  |  América/Araguaina, América/Argentina/Buenos\$1Aires, América/Asuncion, América/Bogota, América/Caracas, América/Chicago, América/Chihuahua, América/Cuiaba, América/Denver, América/Detroit, América/Fortaleza, América/Godthab, América/Guatemala, América/Halifax, América/Lima, América/Los\$1Angeles, América/Manaus, América/Matamoros, América/Mexico\$1City, América/Monterrey, América/Montevideo, América/New\$1York, América/Phoenix, América/Santiago, América/Sao\$1Paulo, América/Tijuana, América/Toronto   | 
|  Ásia  |  Ásia/Amman, Ásia/Ashgabat, Ásia/Baghdad, Ásia/Baku, Ásia/Bangkok, Ásia/Beirut, Ásia/Calcutta, Ásia/Damascus, Ásia/Dhaka, Ásia/Hong\$1Kong, Ásia/Irkutsk, Ásia/Jakarta, Ásia/Jerusalem, Ásia/Kabul, Ásia/Karachi, Ásia/Kathmandu, Ásia/Kolkata, Ásia/Krasnoyarsk, Ásia/Magadan, Ásia/Manila, Ásia/Muscat, Ásia/Novosibirsk, Ásia/Rangoon, Ásia/Riyadh, Ásia/Seoul, Ásia/Shanghai, Ásia/Singapore, Ásia/Taipei, Ásia/Tehran, Ásia/Tokyo, Ásia/Ulaanbaatar, Ásia/Vladivostok, Ásia/Yakutsk, Ásia/Yerevan   | 
|  Atlântico  |  Atlântico/Açores, Atlântico/Cape\$1Verde   | 
|  Austrália  |  Austrália/Adelaide, Austrália/Brisbane, Austrália/Darwin, Austrália/Eucla, Austrália/Hobart, Austrália/Lord\$1Howe, Austrália/Perth, Austrália/Sydney   | 
|  Brasil  |  Brasil/DeNoronha, Brasil/Leste   | 
|  Canadá  |  Canadá/Newfoundland, Canadá/Saskatchewan   | 
|  Etc  |  Etc/GMT-3  | 
|  Europa  |  Europa/Amsterdam, Europa/Athens, Europa/Berlin, Europa/Dublin, Europa/Helsinki, Europa/Kaliningrad, Europa/London, Europa/Madrid, Europa/Moscow, Europa/Paris, Europa/Prague, Europa/Rome, Europa/Sarajevo   | 
|  Pacífico  |  Pacífico/Apia, Pacífico/Auckland, Pacífico/Chatham, Pacífico/Fiji, Pacífico/Guam, Pacífico/Honolulu, Pacífico/Kiritimati, Pacífico/Marquesas, Pacífico/Samoa, Pacífico/Tongatapu, Pacífico/Wake   | 
|  EUA  |  EUA/Alasca, EUA/Central, EUA/East-Indiana, EUA/Eastern, EUA/Pacífico   | 
|  UTC  |  UTC  | 

# Atualização automática do arquivo de fuso horário do Oracle
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade"></a>

Com a opção `TIMEZONE_FILE_AUTOUPGRADE`, é possível atualizar o arquivo de fuso horário atual para a versão mais recente na instância de banco de dados do RDS para Oracle.

**Topics**
+ [

# Visão geral dos arquivos de fuso horário da Oracle
](Appendix.Oracle.Options.Timezone-file-autoupgrade.tz-overview.md)
+ [

# Estratégias para atualizar seu arquivo de fuso horário
](Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.md)
+ [

# Tempo de inatividade durante a atualização do arquivo de fuso horário
](Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations.md)
+ [

# Preparação para atualizar o arquivo de fuso horário
](Appendix.Oracle.Options.Timezone-file-autoupgrade.preparing.md)
+ [

# Adição da opção de atualização automática do arquivo de fuso horário
](Appendix.Oracle.Options.Timezone-file-autoupgrade.adding.md)
+ [

# Verificação dos dados após a atualização do arquivo de fuso horário
](Appendix.Oracle.Options.Timezone-file-autoupgrade.checking.md)

# Visão geral dos arquivos de fuso horário da Oracle
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.tz-overview"></a>

Um *arquivo de fuso horário* do Oracle Database armazena as seguintes informações:
+ Distância em relação ao Tempo Universal Coordenado (UTC)
+ Horários de transição para horário de verão (DST)
+ Abreviações para horário padrão e DST

O Oracle Database fornece várias versões de arquivos de fuso horário. Ao criar um banco de dados Oracle em um ambiente local, você escolhe a versão do arquivo de fuso horário. Para ter mais informações, consulte [Choosing a Time Zone File](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/datetime-data-types-and-time-zone-support.html#GUID-805AB986-DE12-4FEA-AF56-5AABCD2132DF) (Escolher um arquivo de fuso horário) no *Oracle Database Globalization Support Guide* (Guia de suporte à globalização de bancos de dados da Oracle).

Se as regras mudarem para DST, a Oracle publicará novos arquivos de fuso horário. A Oracle lança esses novos arquivos de fuso horário independentemente do cronograma de atualizações de versão (RUs) e revisões de atualização de versões (RURs) trimestrais. Os arquivos de fuso horário residem no host do banco de dados no diretório `$ORACLE_HOME/oracore/zoneinfo/`. Os nomes de arquivo de fuso horário usam o formato DStv*versão*, como em DSTv35.

## Como o arquivo de fuso horário afeta a transferência de dados
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.data-transfer"></a>

No Oracle Database, o tipo de dados `TIMESTAMP WITH TIME ZONE` armazena carimbo de data/hora e dados de fuso horário. Dados com o tipo de dados `TIMESTAMP WITH TIME ZONE` usam as regras na versão do arquivo de fuso horário associado. Assim, os dados `TIMESTAMP WITH TIME ZONE` existentes são afetados ao atualizar o arquivo de fuso horário.

Podem ocorrer problemas quando você transfere dados entre bancos de dados que usam versões diferentes do arquivo de fuso horário. Por exemplo, se você importar dados de um banco de dados de origem com uma versão de arquivo de fuso horário mais recente do que o do banco de dados de destino, o banco de dados emitirá o erro `ORA-39405`. Anteriormente, era necessário contornar esse erro usando uma das seguintes técnicas:
+ Crie uma instância de banco de dados do RDS para Oracle com o arquivo de fuso horário desejado, exporte dados do banco de dados de origem e importe-os para o novo banco de dados.
+ Use o AWS DMS ou replicação lógica para migrar seus dados.

## Atualizações automáticas usando a opção TIMEZONE\$1FILE\$1AUTOUPGRADE
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.option-overview"></a>

Quando o grupo de opções anexado à instância de banco de dados do RDS para Oracle inclui a opção `TIMEZONE_FILE_AUTOUPGRADE`, o RDS atualiza os arquivos de fuso horário automaticamente. Ao garantir que os bancos de dados Oracle usem a mesma versão de arquivo de fuso horário, você evita técnicas manuais demoradas ao mover dados entre ambientes diferentes. A opção `TIMEZONE_FILE_AUTOUPGRADE` é compatível com bancos de dados de contêiner (CDBs) e não CDBs.

Ao adicionar a opção `TIMEZONE_FILE_AUTOUPGRADE` ao seu grupo de opções, você pode escolher se deseja adicionar a opção imediatamente ou durante a janela de manutenção. Depois que a instância de banco de dados usa a nova opção, o RDS confere se pode instalar um arquivo DSTv*version* mais recente. A *versão* de destino do DSTv depende do seguinte:
+ A versão de mecanismo secundária que sua instância de banco de dados está em execução atualmente
+ A versão secundária do mecanismo para a qual você deseja atualizar sua instância de banco de dados

Por exemplo, suponhamos que a versão atual do arquivo de fuso horário seja DSTv33. Ao aplicar a atualização ao grupo de opções, o RDS poderá determinar se DSTv34 está disponível atualmente no sistema de arquivos da instância de banco de dados. O RDS então atualizará o arquivo de fuso horário para DSTv34 automaticamente.

Para encontrar as versões de DST disponíveis nas atualizações da versão compatível do RDS, confira os patches em [Notas de versão do Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html). Por exemplo, a [versão 19.0.0.0.ru-2022-10.rur-2022-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2022-10.rur-2022-10.r1) lista o patch 34533061: RDBMS – DSTV39 UPDATE – TZDATA2022C.

# Estratégias para atualizar seu arquivo de fuso horário
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies"></a>

Atualizar o mecanismo de banco de dados e adicionar a opção `TIMEZONE_FILE_AUTOUPGRADE` a um grupo de opções são operações separadas. Adicionar a opção `TIMEZONE_FILE_AUTOUPGRADE` iniciará a atualização do arquivo de fuso horário se um mais recente estiver disponível. É necessário executar os seguintes comandos (somente as opções relevantes são mostradas) imediatamente ou na próxima janela de manutenção:
+ Atualize o mecanismo de banco de dados usando somente o seguinte comando da CLI do RDS:

  ```
  modify-db-instance --engine-version name ...
  ```
+ Adicione a opção `TIMEZONE_FILE_AUTOUPGRADE` somente usando o seguinte comando da CLI: 

  ```
  add-option-to-option-group --option-group-name name --options OptionName=TIMEZONE_FILE_AUTOUPGRADE ...
  ```
+ Atualize o mecanismo de banco de dados e adicione um novo grupo de opções à instância usando o seguinte comando da CLI:

  ```
  modify-db-instance --engine-version name --option-group-name name ...
  ```

A estratégia de atualização depende de atualizar o banco de dados e arquivo de fuso horário juntos ou realizar apenas uma dessas operações. Lembre-se de que, se você atualizar o grupo de opções e, depois, atualizar o mecanismo de banco de dados em operações de API separadas, é possível que uma atualização do arquivo de fuso horário esteja em andamento ao atualizar o mecanismo de banco de dados.

Para os exemplos nesta seção, suponha o seguinte:
+ Você ainda não adicionou `TIMEZONE_FILE_AUTOUPGRADE` ao grupo de opções atualmente associado à instância de banco de dados.
+ Sua instância de banco de dados usa a versão de banco de dados 19.0.0.0.ru-2019-07.rur-2019-07.r1 e o arquivo de fuso horário DSTv33.
+ O sistema de arquivos da sua instância de banco de dados inclui o arquivo DStv34. 
+ A atualização de versão 19.0.0.0.ru-2022-10.rur-2022-10.r1 inclui DSTv35. 

Para atualizar o arquivo de fuso horário, você pode usar as seguintes estratégias.

**Topics**
+ [

## Atualizar o arquivo de fuso horário sem atualizar o mecanismo
](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade)
+ [

## Atualizar o arquivo de fuso horário e a versão do mecanismo de banco de dados
](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade)
+ [

## Atualizar a versão do mecanismo de banco de dados sem atualizar o arquivo de fuso horário
](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only)

## Atualizar o arquivo de fuso horário sem atualizar o mecanismo
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade"></a>

Nesse cenário, seu banco de dados está usando o DSTv33, mas o DSTv34 está disponível no sistema de arquivos de sua instância de banco de dados. Você deseja atualizar o arquivo de fuso horário usado por sua instância de banco de dados de DSTv33 para DSTv34, mas não deseja atualizar seu mecanismo para uma nova versão secundária, que inclua DSTv35. 

Em um comando `add-option-to-option-group`, adicione `TIMEZONE_FILE_AUTOUPGRADE` ao grupo de opções usado pela instância de banco de dados. Especifique se deseja adicionar a opção imediatamente ou adiá-la para a janela de manutenção. Depois de aplicar a opção `TIMEZONE_FILE_AUTOUPGRADE`, o RDS faz o seguinte:

1. Confere se há uma nova versão do DST.

1. Determina se o DSTv34 está disponível no sistema de arquivos.

1. Atualiza o arquivo de fuso horário imediatamente.

## Atualizar o arquivo de fuso horário e a versão do mecanismo de banco de dados
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade"></a>

Nesse cenário, seu banco de dados está usando o DSTv33, mas o DSTv34 está disponível no sistema de arquivos de sua instância de banco de dados. Você deseja atualizar seu mecanismo de banco de dados para a versão secundária 19.0.0.0.ru-2022-10.rur-2022-10.r1, que inclui DSTv35 e atualizar o arquivo de fuso horário para DSTv35 durante a atualização do mecanismo. Portanto, seu objetivo é ignorar o DSTv34 e atualizar os arquivos de fuso horário diretamente para DSTv35. 

Para atualizar o mecanismo e o arquivo de fuso horário juntos, execute `modify-db-instance` com as opções `--option-group-name` e `--engine-version`. É possível executar o comando imediatamente ou adiá-lo para a janela de manutenção. `In --option-group-name`, especifique um grupo de opções que inclua a opção `TIMEZONE_FILE_AUTOUPGRADE`. Por exemplo:

```
aws rds modify-db-instance 
    --db-instance-identifier my-instance \
    --engine-version new-version \
    ----option-group-name og-with-timezone-file-autoupgrade \    
    --apply-immediately
```

O RDS começa a atualizar o mecanismo para 19.0.0.0.ru-2022-10.rur-2022-10.r1. Depois que a opção `TIMEZONE_FILE_AUTOUPGRADE` é aplicada, o RDS confere se há uma nova versão do DST, percebe que o DSTv35 está disponível em 19.0.0.0.ru-2022-10.rur-2022-10.r1 e inicia imediatamente a atualização para DSTv35.

Para atualizar o mecanismo imediatamente e, depois, atualizar o arquivo de fuso horário, execute as operações na sequência:

1. Atualize o mecanismo de banco de dados usando o seguinte comando da CLI:

   ```
   aws rds modify-db-instance \
       --db-instance-identifier my-instance \
       --engine-version new-version \
       --apply-immediately
   ```

1. Adicione a opção `TIMEZONE_FILE_AUTOUPGRADE` ao grupo de opções anexado à instância usando o seguinte comando da CLI: 

   ```
   aws rds add-option-to-option-group \
       --option-group-name og-in-use-by-your-instance \
       --options OptionName=TIMEZONE_FILE_AUTOUPGRADE \
       --apply-immediately
   ```

## Atualizar a versão do mecanismo de banco de dados sem atualizar o arquivo de fuso horário
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only"></a>

Nesse cenário, seu banco de dados está usando o DSTv33, mas o DSTv34 está disponível no sistema de arquivos de sua instância de banco de dados. Você deseja atualizar seu mecanismo de banco de dados para a versão 19.0.0.0.ru-2022-10.rur-2022-10.r1, que inclui o DSTv35, mas reter o arquivo de fuso horário DSTv33. Você pode fazer isso pelas seguintes razões:
+ Seus dados não usam o tipo de dados `TIMESTAMP WITH TIME ZONE`.
+ Seus dados usam o tipo de dados `TIMESTAMP WITH TIME ZONE`, mas eles não são afetados pelas alterações de fuso horário.
+ Você deseja adiar a atualização do arquivo de fuso horário porque não pode tolerar o tempo de inatividade extra.

Sua estratégia depende de qual das seguintes possibilidades é verdadeira:
+ Sua instância de banco de dados não está associada a um grupo de opções que inclui `TIMEZONE_FILE_AUTOUPGRADE`. No comando `modify-db-instance`, não especifique um novo grupo de opções para que o RDS não atualize o arquivo de fuso horário.
+ A instância de banco de dados está atualmente associada a um grupo de opções que inclui `TIMEZONE_FILE_AUTOUPGRADE`. Em m um único comando `modify-db-instance`, associe a instância de banco de dados a um grupo de opções que não inclua `TIMEZONE_FILE_AUTOUPGRADE` e, depois, atualize o mecanismo de banco de dados para 19.0.0.0.ru-2022-10.rur-2022-10.r1.

# Tempo de inatividade durante a atualização do arquivo de fuso horário
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations"></a>

Quando o RDS atualiza o arquivo de fuso horário, os dados existentes que utilizam `TIMESTAMP WITH TIME ZONE` podem mudar. Nesse caso, sua consideração principal é o tempo de inatividade.

**Atenção**  
Se você adicionar a opção `TIMEZONE_FILE_AUTOUPGRADE`, a atualização do mecanismo poderá exigir um tempo de inatividade prolongado. A atualização de dados de fuso horário para um banco de dados grande pode levar horas ou até dias.

A duração da atualização do arquivo de fuso horário depende de fatores como os seguintes:
+ A quantidade de dados `TIMESTAMP WITH TIME ZONE` em seu banco de dados
+ A configuração da instância de banco de dados
+ Classe da instância de banco de dados
+ A configuração do armazenamento
+ A configuração do banco de dados:
+ As configurações de parâmetros do banco de dados

Um período de inatividade adicional pode ocorrer quando você:
+ Adiciona a opção ao grupo de opções quando a instância de banco de dados usa um arquivo de fuso horário desatualizado
+ Atualiza o mecanismo de banco de dados Oracle quando a nova versão do mecanismo contém uma nova versão do arquivo de fuso horário

**nota**  
Durante a atualização do arquivo de fuso horário, o RDS for Oracle chama `PURGE DBA_RECYCLEBIN`.

# Preparação para atualizar o arquivo de fuso horário
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.preparing"></a>

Uma atualização de arquivo de fuso horário tem duas fases separadas: preparar e atualizar. Embora não seja necessário, recomendamos enfaticamente que você execute a etapa de preparação. Nessa etapa, você descobre quais dados serão afetados pela execução do procedimento de PL/SQL `DBMS_DST.FIND_AFFECTED_TABLES`. Para ter mais informações sobre a janela de preparação, consulte [Upgrading the Time Zone File and Timestamp with Time Zone Data](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/datetime-data-types-and-time-zone-support.html#GUID-B0ACDB2E-4B49-4EB4-B4CC-9260DAE1567A) (Atualização do arquivo de fuso horário e o carimbo de data/hora com os dados de fuso horário) na documentação do Oracle Database.

**Para preparar a atualização do arquivo de fuso horário**

1. Conecte ao banco de dados Oracle usando um cliente SQL.

1. Determine a versão atual do arquivo de fuso horário usada.

   ```
   SELECT * FROM V$TIMEZONE_FILE;
   ```

1. Determine a versão mais recente do arquivo de fuso horário disponível na instância de banco de dados

   ```
   SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
   ```

1. Determine o tamanho total das tabelas que têm colunas do tipo `TIMESTAMP WITH LOCAL TIME ZONE` ou `TIMESTAMP WITH TIME ZONE`.

   ```
   SELECT SUM(BYTES)/1024/1024/1024 "Total_size_w_TSTZ_columns_GB"
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE 'TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
            (SELECT OWNER, TABLE_NAME
             FROM   DBA_TAB_COLUMNS
             WHERE  DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE');
   ```

1. Determine os nomes e tamanhos dos segmentos que têm colunas do tipo `TIMESTAMP WITH LOCAL TIME ZONE` ou `TIMESTAMP WITH TIME ZONE`.

   ```
   SELECT OWNER, SEGMENT_NAME, SUM(BYTES)/1024/1024/1024 "SEGMENT_SIZE_W_TSTZ_COLUMNS_GB"
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE 'TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
            (SELECT OWNER, TABLE_NAME
             FROM   DBA_TAB_COLUMNS
             WHERE  DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE')
   GROUP BY OWNER, SEGMENT_NAME;
   ```

1. Execute a etapa de preparação. 
   + O procedimento `DBMS_DST.CREATE_AFFECTED_TABLE` cria uma tabela para armazenar quaisquer dados afetados. Passe o nome desta tabela ao procedimento `DBMS_DST.FIND_AFFECTED_TABLES`. Para ter mais informações, consulte [CREATE\$1AFFECTED\$1TABLE Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-C53BAABA-914A-404C-9CD5-823257BE0B00) (Procedimento CREATE\$1AFECTED\$1TABLE) na documentação do Oracle Database.
   + O procedimento `CREATE_ERROR_TABLE` cria uma tabela para registrar erros. Para ter mais informações, consulte [CREATE\$1ERROR\$1TABLE Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-6A7EA024-B02D-4486-B1D6-EF6ABF5DE507) (Procedimento ERROR\$1TABLE) na documentação do Oracle Database.

   O exemplo a seguir cria os dados afetados e as tabelas de erro e localiza todas as tabelas de afetados.

   ```
   EXEC DBMS_DST.CREATE_ERROR_TABLE('my_error_table')
   EXEC DBMS_DST.CREATE_AFFECTED_TABLE('my_affected_table')
   
   EXEC DBMS_DST.BEGIN_PREPARE(new_version);
   EXEC DBMS_DST.FIND_AFFECTED_TABLES('my_affected_table', TRUE, 'my_error_table');
   EXEC DBMS_DST.END_PREPARE;
   
   SELECT * FROM my_affected_table;
   SELECT * FROM my_error_table;
   ```

1. Consulte as tabelas de afetados e de erro.

   ```
   SELECT * FROM my_affected_table;
   SELECT * FROM my_error_table;
   ```

# Adição da opção de atualização automática do arquivo de fuso horário
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.adding"></a>

Quando você adiciona a opção a um grupo de opções, o grupo de opções está em um dos seguintes estados:
+ Um grupo de opções existente está atualmente anexado a pelo menos uma instância de banco de dados. Quando você adiciona a opção, todas as instâncias de banco de dados que usam esse grupo de opções são reiniciadas automaticamente. Isso causa uma breve interrupção.
+ Um grupo de opções existente não está anexado a nenhuma instância de banco de dados. Você planeja adicionar a opção, depois associar o grupo de opções existente às instâncias de banco de dados existentes ou a uma nova instância de banco de dados.
+ Você cria um grupo de opções e adiciona a opção. Você planeja adicionar o novo grupo de opções às instâncias de banco de dados existentes ou a uma nova instância de banco de dados.

## Console
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.console"></a>

**Para adicionar a opção de atualização automática do arquivo de fuso horário a uma instância de banco de dados**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Option groups (Grupos de opções)**.

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Em **Engine** (Mecanismo), escolha a edição do Oracle Database para sua instância de banco de dados. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para ter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Selecione o grupo de opções que você deseja modificar e escolha **Add Option (Adicionar opção)**.

1. Na janela **Add option (Adicionar opção)**, faça o seguinte: 

   1. Escolha **TIMEZONE\$1FILE\$1AUTOUPGRADE**.

   1. Para habilitar a opção em todas as instâncias de banco de dados associadas assim que você a adicionar, em **Apply Immediately (Aplicar imediatamente)**, escolha **Yes (Sim)**. Se você escolher **No (Não)** (o padrão), a opção será habilitada para cada instância de banco de dados associada durante sua próxima janela de manutenção.

1. Quando estiver satisfeito com as configurações, escolha **Add Option (Adicionar opção)**.

## AWS CLI
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.CLI"></a>

O exemplo a seguir usa o comando da AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) para adicionar a opção `TIMEZONE_FILE_AUTOUPGRADE` a um grupo de opções chamado `myoptiongroup`.

Para Linux, macOS ou Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TIMEZONE_FILE_AUTOUPGRADE" \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TIMEZONE_FILE_AUTOUPGRADE" ^
    --apply-immediately
```

# Verificação dos dados após a atualização do arquivo de fuso horário
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.checking"></a>

Recomendamos verificar seus dados após atualizar o arquivo de fuso horário. Durante a etapa de preparação, o RDS for Oracle cria automaticamente as seguintes tabelas:
+ `rdsadmin.rds_dst_affected_tables`: lista as tabelas que contêm dados afetados pela atualização
+ `rdsadmin.rds_dst_error_table`: lista os erros gerados durante a atualização

Essas tabelas são independentes de todas as tabelas criadas na janela de preparação. Para ver os resultados da atualização, consulte as tabelas conforme mostrado a seguir.

```
SELECT * FROM rdsadmin.rds_dst_affected_tables;
SELECT * FROM rdsadmin.rds_dst_error_table;
```

Para ter mais informações sobre o esquema das tabelas de dados afetados e de erros, consulte [FIND\$1AFFECTED\$1TABLES Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-1F977505-671C-4D5B-8570-86956F136199) (Processo FIND\$1AFECTED\$1TABLES) na documentação do Oracle.

# Oracle Transparent Data Encryption
<a name="Appendix.Oracle.Options.AdvSecurity"></a>

O Amazon RDS oferece suporte para ao Oracle Transparent Data Encryption (TDE), um recurso da opção Oracle Advanced Security disponível no Oracle Enterprise Edition. Esse recurso criptografa os dados automaticamente antes de gravá-los no armazenamento e os descriptografa automaticamente quando os são lidos. A opção é compatível somente com o modelo traga a sua própria licença (BYOL).

A TDE é útil em situações nas quais é preciso criptografar dados confidenciais, caso os arquivos de dados e os backups sejam obtidos por um terceiro. Ela também é útil quando você precisa estar em conformidade com os regulamentos relacionados à segurança. 

Uma explicação detalhada sobre a TDE no Oracle Database está além do escopo deste guia. Para ter informações, consulte os seguintes recursos do Oracle Database:
+ [Introduction to Transparent Data Encryption](https://docs.oracle.com/en/database/oracle/oracle-database/19/asoag/introduction-to-transparent-data-encryption.html#GUID-62AA9447-FDCD-4A4C-B563-32DE04D55952) na documentação do banco de dados Oracle
+ [Oracle advanced security](https://www.oracle.com/security/database-security/) na documentação do Oracle Database.
+ [Oracle advanced security Transparent Data Encryption best practices](https://www.oracle.com/br/a/tech/docs/technical-resources/twp-transparent-data-encryption-bestpractices.pdf), que é um whitepaper da Oracle.

Para ter mais informações sobre como usar o TDE com o RDS para Oracle, consulte os seguintes blogs:
+ [Oracle Database Encryption Options on Amazon RDS](https://aws.amazon.com/blogs/apn/oracle-database-encryption-options-on-amazon-rds/)
+ [Migrate a cross-account TDE-enabled Amazon RDS for Oracle DB instance with reduced downtime using AWS DMS](https://aws.amazon.com/blogs/database/migrate-a-cross-account-tde-enabled-amazon-rds-for-oracle-db-instance-with-reduced-downtime-using-aws-dms/)

## Modos de criptografia do TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Modes"></a>

O Oracle Transparent Data Encryption oferece suporte para dois modos de criptografia: a criptografia de espaço de tabela do TDE e a criptografia de coluna do TDE. A criptografia de espaço de tabela do TDE é usada para criptografar todas as tabelas de aplicativos. A criptografia de coluna do TDE é usada para criptografar elementos de dados individuais que contêm dados confidenciais. Você também pode aplicar uma solução de criptografia híbrida que use tanto a criptografia de espaço de tabela quanto a criptografia de coluna do TDE. 

**nota**  
O Amazon RDS gerencia a chave mestra do Oracle Wallet e do TDE para a instância de banco de dados. Você não precisa definir a chave de criptografia usando o comando `ALTER SYSTEM set encryption key`. 

Depois de habilitar a opção `TDE`, será possível conferir o status do Oracle Wallet usando o seguinte comando: 

```
SELECT * FROM v$encryption_wallet;
```

Para criar um espaço de tabela criptografado, use o seguinte comando:

```
CREATE TABLESPACE encrypt_ts ENCRYPTION DEFAULT STORAGE (ENCRYPT);
```

Para especificar o algoritmo de criptografia, use o seguinte comando:

```
CREATE TABLESPACE encrypt_ts ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);
```

As declarações anteriores para criptografar um espaço de tabela são as mesmas que você usaria em um banco de dados Oracle on-premises.

## Restrições para a opção TDE
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

A opção TDE é permanente e persistente. Após a associação da instância de banco de dados a um grupo de opções com a opção TDE habilitada, não é possível realizar as seguintes ações:
+ Desabilitar a opção `TDE` no grupo de opções atualmente associado.
+ Associar a instância de banco de dados a um grupo de opções diferente que não inclua a opção `TDE`.
+ Compartilhar um snapshot de banco de dados que usa a opção `TDE`. Para obter mais informações sobre como compartilhar snapshot de banco de dadoss, consulte [Compartilhar um snapshot de banco de dados para o Amazon RDS](USER_ShareSnapshot.md).

Para ter mais informações sobre opções persistentes e permanentes, consulte [Opções persistentes e permanentes](USER_WorkingWithOptionGroups.md#Overview.OptionGroups.Permanent).

## Determinar se a instância de banco de dados está usando a TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Querying"></a>

Convém determinar se a instância de banco de dados está associada a um grupo de opções que tenha a opção `TDE` habilitada. Para visualizar o grupo de opções ao qual uma instância de banco de dados está associada, use o console do RDS, o comando [describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) da AWS CLI ou a operação [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) da API.

## Adicionar a opção TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Add"></a>

Para adicionar a opção `TDE` à instância de banco de dados, siga estas etapas:

1. (Recomendado) Crie um snapshot da instância de banco de dados.

1. Realize uma destas tarefas:
   + Crie um grupo de opções do zero. Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create).
   + Copie um grupo de opções existente usando a AWS CLI ou a API. Para obter mais informações, consulte [Copiar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).
   + Reutilize um grupo de opções não padrão. Uma prática recomendada é usar um grupo de opções que não esteja atualmente associado a nenhuma instância de banco de dados ou snapshot.

1. Adicione a nova opção ao grupo de opções da etapa anterior.

1. Se o grupo de opções atualmente associado à instância de banco de dados tiver opções habilitadas, adicione essas opções ao novo grupo de opções. Essa estratégia evita que as opções existentes sejam desinstaladas ao habilitar a nova opção.

1. Adicione o novo grupo de opções à instância de banco de dados.

### Console
<a name="Appendix.Oracle.Options.TDE.Console"></a>

**Como adicionar a opção TDE a um grupo de opções e associá-la à instância de banco de dados**

1. No console do RDS, escolha **Grupos de opções**.

1. Escolha o nome do grupo de opções ao qual você deseja adicionar a opção.

1. Escolha **Add option (Adicionar opção)**.

1. Em **Nome da opção**, escolha **TDE** e defina as configurações da opção. 

1. Escolha **Add option (Adicionar opção)**.
**Importante**  
Se você adicionar a opção **TDE** a um grupo de opções que está anexado a uma ou mais instâncias de banco de dados, uma breve interrupção ocorrerá enquanto todas as instâncias de banco de dados são reiniciadas automaticamente. 

   Para ter mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption).

1. Associe o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, aplique o grupo de opções ao executar a instância. Para obter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, aplique o grupo de opções modificando a instância e anexando o novo grupo de opções. A instância de banco de dados não é reiniciada como parte dessa operação. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

### AWS CLI
<a name="Appendix.Oracle.Options.TDE.CLI"></a>

No exemplo a seguir, você usa o comando da AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) para adicionar a opção `TDE` a um grupo de opções chamado `myoptiongroup`. Consulte mais informações em [Getting started: Flink 1.13.2](https://docs.aws.amazon.com/managed-flink/latest/java/earlier.html#getting-started-1-13).

Para Linux, macOS ou Unix:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TDE" \
    --apply-immediately
```

Para Windows:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TDE" ^
    --apply-immediately
```

## Copiar os dados para uma instância de banco de dados que não inclua a opção TDE
<a name="Appendix.Oracle.Options.AdvSecurity.Remove"></a>

Não é possível remover a opção TDE de uma instância de banco de dados nem a associar a um grupo de opções sem a opção TDE. Para migrar os dados para uma instância que não inclua a opção TDE, faça o seguinte: 

1.  Descriptografe os dados na instância de banco de dados. 

1.  Copie os dados para uma nova instância de banco de dados que não esteja associada a um grupo de opções com a opção `TDE` habilitada. 

1.  Exclua a instância de banco de dados original.

É possível usar o mesmo nome da instância de banco de dados anterior para a nova instância.

## Considerações ao usar o TDE com o Oracle Data Pump
<a name="Appendix.Oracle.Options.AdvSecurity.Pump"></a>

É possível usar o Oracle Data Pump para importar ou exportar arquivos de despejo criptografados. O Amazon RDS é compatível com modo de criptografia de senha `(ENCRYPTION_MODE=PASSWORD)` para o Oracle Data Pump. O Amazon RDS não é compatível com o modo de criptografia transparente `(ENCRYPTION_MODE=TRANSPARENT)` para o Oracle Data Pump. Para obter mais informações, consulte [Importar usando o Oracle Data Pump](Oracle.Procedural.Importing.DataPump.md). 

# Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL"></a>

O Amazon RDS oferece suporte para Oracle UTL\$1MAIL com o uso da opção UTL\$1MAIL e de servidores SMTP. É possível enviar e-mails diretamente de seu banco de dados usando o pacote UTL\$1MAIL. O Amazon RDS é compatível com o UTL\$1MAIL para as seguintes edições e versões do Oracle: 
+ Oracle Database 21c (21.0.0.0), todas as versões
+ Oracle Database 19c (19.0.0.0), todas as versões

Veja a seguir algumas limitações do uso do UTL\$1MAIL: 
+ UTL\$1MAIL não oferece suporta para Transport Layer Security (TLS) e, portanto, os e-mails não são criptografados. 

  Para se conectar com segurança a recursos SSL/TLS remotos criando e carregando carteiras Oracle personalizadas, siga as instruções em [Configurar o acesso UTL\$1HTTP usando certificados e uma carteira Oracle](Oracle.Concepts.ONA.md).

  Os certificados específicos que são necessários para sua carteira variam por serviço. Para serviços da AWS, eles geralmente podem ser encontrados no [Repositório de serviços de confiança da Amazon](https://www.amazontrust.com/repository/).
+ UTL\$1MAIL não oferece suporte para autenticação com servidores SMTP. 
+ Você só pode enviar um anexo em um e-mail. 
+ Você não pode enviar anexos com mais de 32 K. 
+ Você só pode usar as codificações de caracteres ASCII e Extended Binary Coded Decimal Interchange Code (EBCDIC). 
+ A porta SMTP (25) é limitada com base nas políticas do proprietário da interface de rede elástica. 

Quando você habilita o UTL\$1MAIL, somente o usuário mestre da sua instância de banco de dados recebe o privilégio de execução. Se necessário, o usuário mestre pode conceder o privilégio de execução a outros usuários para que eles possam usar o UTL\$1MAIL. 

**Importante**  
Recomendamos que você habilite o recurso de auditoria incorporada da Oracle para rastrear o uso dos procedimentos UTL\$1MAIL. 

## Pré-requisitos para o Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.PreReqs"></a>

Veja a seguir os pré-requisitos para usar o Oracle UTL\$1MAIL:
+ Um ou mais servidores SMTP, e os endereços IP correspondentes ou nomes de servidor de nomes de domínio (DNS) públicos ou particulares. Para obter mais informações sobre nomes DNS privados resolvidos através de um servidor DNS personalizado, consulte [Configuração de um servidor DNS personalizado](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS). 

## Adicionar a opção Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Add"></a>

O processo geral para adicionar a opção Oracle UTL\$1MAIL a uma instância de banco de dados é o seguinte: 

1. Crie um novo grupo de opções, ou copie ou modifique um existente.

1. Adicione a opção ao grupo de opções.

1. Associe o grupo de opções à instância de banco de dados.

Depois de adicionar a opção UTL\$1MAIL, assim que o grupo de opções estiver ativo, o UTL\$1MAIL ficará ativo. 

**Para adicionar a opção UTL\$1MAIL a uma instância de banco de dados**

1. Determine o grupo de opções que você deseja usar. Você pode criar um novo grupo de opções ou usar um existente. Se você quiser usar um grupo de opções existente, vá para a próxima etapa. Caso contrário, crie um grupo de opções de banco de dados personalizado com as seguintes configurações: 

   1. Em **Engine (Mecanismo)**, selecione a edição do Oracle que você deseja usar. 

   1. Para **Major engine version (Versão do mecanismo principal)**, escolha a versão da sua instância de banco de dados. 

   Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create). 

1. Adicione a opção **UTL\$1MAIL** ao grupo de opções. Para mais informações sobre a adição de opções, consulte [Adicionar uma opção a um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption). 

1. Aplique o grupo de opções a uma instância de banco de dados nova ou existente: 
   + Para uma nova instância de banco de dados, você aplica o grupo de opções ao executar a instância. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 
   + Para uma instância de banco de dados existente, você aplica o grupo de opções modificando a instância e anexando o novo grupo de opções. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Uso do Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Using"></a>

Depois de habilitar a opção UTL\$1MAIL, você deve configurar o servidor SMTP antes de começar a usá-lo. 

Você configura o servidor SMTP definindo o parâmetro SMTP\$1OUT\$1SERVER como um endereço IP válido ou um nome DNS público. Para o parâmetro SMTP\$1OUT\$1SERVER, você pode especificar uma lista separada por vírgulas dos endereços de vários servidores. Se o primeiro servidor não estiver disponível, o UTL\$1MAIL tentará o próximo servidor, e assim por diante. 

Você pode definir o SMTP\$1OUT\$1SERVER padrão para uma instância de banco de dados usando um [parameter group de banco de dados](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html). Você pode definir o parâmetro SMTP\$1OUT\$1SERVER para uma sessão executando o seguinte código no seu banco de dados na sua instância de banco de dados. 

```
1. ALTER SESSION SET smtp_out_server = mailserver.domain.com:25;
```

Depois que a opção UTL\$1MAIL estiver ativada e o seu SMTP\$1OUT\$1SERVER estiver configurado, você poderá enviar o e-mail usando o procedimento`SEND`. Para obter mais informações, consulte [UTL\$1MAIL](http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_mail.htm#BABFJJBD) na documentação da Oracle. 

## Remover a opção Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL.Remove"></a>

Você pode remover a opção Oracle UTL\$1MAIL de uma instância de banco de dados. 

Para remover UTL\$1MAIL de uma instância de banco de dados, siga um destes procedimentos: 
+ Para remover UTL\$1MAIL de várias instâncias de bancos de dados, remova a opção UTL\$1MAIL do grupo de opções ao qual elas pertencem. Essa alteração afeta todas as instâncias de bancos de dados que usam o grupo de opções. Para obter mais informações, consulte [Remover uma opção de um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption). 
+ Para remover UTL\$1MAIL de uma única instância de banco de dados, modifique essa instância e especifique um grupo de opções diferente que não inclua a opção UTL\$1MAIL. Você pode especificar um grupo de opções padrão (vazio) ou criar um grupo de opções personalizado diferente. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

## Solução de problemas
<a name="Oracle.Options.UTLMAIL.Troubleshooting"></a>

Os problemas a seguir podem ocorrer ao usar o UTL\$1MAIL com o Amazon RDS. 
+ Limitação. A porta SMTP (25) é limitada com base nas políticas do proprietário da interface de rede elástica. Se você puder enviar e-mails com sucesso usando o UTL\$1MAIL e vir o erro `ORA-29278: SMTP transient error: 421 Service not available`, você provavelmente está sendo limitado. Se você perceber limitação com a entrega de e-mails, recomendamos implementar um algoritmo de recuo. Para obter mais informações sobre algoritmos de recuo, consulte [Repetições de erro e recuo exponencial na AWS](https://docs.aws.amazon.com/general/latest/gr/api-retries.html) e [Como lidar com um erro "Limitação taxa máxima de envio excedida"](https://aws.amazon.com/blogs/ses/how-to-handle-a-throttling-maximum-sending-rate-exceeded-error/). 

  Você pode solicitar que essa limitação seja removida. Para obter mais informações, consulte [Como faço para remover a limitação da porta 25 na minha instância do EC2?](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/).

# Oracle XML DB
<a name="Appendix.Oracle.Options.XMLDB"></a>

O Oracle XML DB adiciona suporte para XML nativo à sua instância de banco de dados. Com o XML DB, é possível armazenar e recuperar XML estruturado ou não estruturado, além de dados relacionais. O servidor de protocolo XML DB não comporta o RDS para Oracle.

O XML DB está pré-instalado no Oracle Database 12c e posterior. Portanto, você não precisa usar um grupo de opções para instalar explicitamente o XML DB como um recurso adicional. 

Para saber como configurar e usar o XML DB, consulte o [Oracle XML DB Developer's Guide](https://docs.oracle.com/en/database/oracle/oracle-database/19/adxdb/) na documentação do Oracle Database.

# Fazer upgrade do mecanismo de banco de dados RDS para Oracle
<a name="USER_UpgradeDBInstance.Oracle"></a>

Quando o Amazon RDS oferece suporte a uma nova versão do Oracle Database, você pode fazer upgrade de suas instâncias de banco de dados para essa nova versão. Para obter informações sobre quais versões do Oracle estão disponíveis no Amazon RDS, consulte [https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).

**Importante**  
Os bancos de dados RDS para Oracle 11g, 12c e 18c não são mais compatíveis. Se você mantiver snapshots do Oracle Database 11g, 12c ou 18v, poderá atualizá-los para uma versão posterior. Para ter mais informações, consulte [Como atualizar para um snapshot de banco de dados Oracle](USER_UpgradeDBSnapshot.Oracle.md).

**Topics**
+ [

# Visão geral das atualizações do mecanismo RDS para Oracle
](USER_UpgradeDBInstance.Oracle.Overview.md)
+ [

# Atualizações da versão principal do Oracle
](USER_UpgradeDBInstance.Oracle.Major.md)
+ [

# Atualizações de versões secundárias Oracle
](USER_UpgradeDBInstance.Oracle.Minor.md)
+ [

# Considerações sobre atualizações de bancos de dados Oracle
](USER_UpgradeDBInstance.Oracle.OGPG.md)
+ [

# Testar uma atualização do Oracle DB
](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md)
+ [

# Atualizar a versão de uma instância de banco de dados do RDS para Oracle
](USER_UpgradeDBInstance.Oracle.Upgrading.md)
+ [

# Como atualizar para um snapshot de banco de dados Oracle
](USER_UpgradeDBSnapshot.Oracle.md)

# Visão geral das atualizações do mecanismo RDS para Oracle
<a name="USER_UpgradeDBInstance.Oracle.Overview"></a>

Antes de atualizar sua instância de banco de dados do RDS para Oracle, familiarize-se com os seguintes conceitos.

**Topics**
+ [

## Upgrades de versões principais e secundárias
](#USER_UpgradeDBInstance.Oracle.Overview.versions)
+ [

## Datas de suporte e atualizações obrigatórias referentes ao RDS para Oracle
](#Aurora.VersionPolicy.MajorVersionLifetime)
+ [

## Oracle Engine Version Management
](#Oracle.Concepts.Patching)
+ [

## Instantâneos automáticos durante atualizações do mecanismo
](#USER_UpgradeDBInstance.Oracle.Overview.snapshots)
+ [

## Atualizações do Oracle em uma implantação Multi-AZ
](#USER_UpgradeDBInstance.Oracle.Overview.multi-az)
+ [

## Atualizações do Oracle de réplicas de leitura
](#USER_UpgradeDBInstance.Oracle.Overview.read-replicas)

## Upgrades de versões principais e secundárias
<a name="USER_UpgradeDBInstance.Oracle.Overview.versions"></a>

As versões principais são os principais lançamentos do Oracle Database que ocorrem a cada 1–2 anos. O Oracle Database 19c e o Oracle Database 21c são exemplos de versões principais. 

A cada trimestre, o RDS para Oracle lança novas versões secundárias de mecanismos para cada mecanismo principal compatível. Uma atualização de versão (RU) do mecanismo incorpora correções de bugs da Oracle incluindo os patches de RU referentes ao trimestre especificado. Por exemplo, 21.0.0.0.ru-2024-10.rur-2024-10.r1 é uma versão secundária do Oracle Database 21c que incorpora a RU de outubro de 2024.

Uma versão do mecanismo do pacote de patches espaciais (SPB) contém patches de RU e patches específicos para o Oracle Spatial. Por exemplo, 19.0.0.0.ru-2025-01.spb-1.r1 é uma versão secundária do mecanismo que contém os patches de RU na versão do mecanismo 19.0.0.0.ru-2025-01.rur-2025-01.r1 e patches do Spatial. Normalmente, o RDS para Oracle lança SPBs duas a três semanas após a RU correspondente. Para obter uma explicação sobre as diferenças entre RUs e SPBs, consulte [Atualizações de versão (RUs) e pacotes de patches espaciais (SPBs)](USER_UpgradeDBInstance.Oracle.Minor.md#RUs-and-SPBs). Para ter mais informações, consulte [Release notes for Amazon Relational Database Service (Amazon RDS) for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes).

O RDS para Oracle oferece suporte aos seguintes upgrades para uma instância de banco de dados.


| Tipo de upgrade | Compatibilidade de aplicações | Métodos de upgrade | Exemplo de caminho de upgrade | 
| --- | --- | --- | --- | 
| Versão principal | Um upgrade de versão principal pode apresentar alterações não compatíveis com aplicações existentes. | Somente manual | Do Oracle Database 19c para o Oracle Database 21c | 
| Versão secundária | Uma atualização da versão secundária inclui apenas alterações compatíveis com versões anteriores dos aplicativos existentes. | Automático ou manual | De 21.0.0.0.ru-2023-07.rur-2022-07.r1 para 21.0.0.0.ru-2023-10.rur-2022-10.r1 | 

**Importante**  
Quando você atualiza o mecanismo de banco de dados, ocorre uma interrupção. A duração da interrupção depende da versão do mecanismo e do tamanho da instância de banco de dados.   
Teste completamente qualquer atualização para verificar se as aplicações funcionam corretamente antes de aplicá-la aos bancos de dados de produção. Para obter mais informações, consulte [Testar uma atualização do Oracle DB](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md).

## Datas de suporte e atualizações obrigatórias referentes ao RDS para Oracle
<a name="Aurora.VersionPolicy.MajorVersionLifetime"></a>

As versões de banco de dados do RDS para Oracle têm datas de suporte previstas. Quando uma versão principal ou secundária de um mecanismo de banco de dados do RDS para Oracle se aproxima da data de fim do suporte, o RDS inicia as atualizações obrigatórias, também conhecidas como *atualizações forçadas*. O RDS publica as seguintes informações:
+ Uma recomendação para você começar a atualizar manualmente as instâncias em versões obsoletas para versões compatíveis.
+ Uma data após a qual não é possível mais criar instâncias nas versões não compatíveis.
+ Uma data em que o RDS começa a atualizar automaticamente as instâncias para versões compatíveis durante as janelas de manutenção.
+ Uma data em que o RDS começa a atualizar automaticamente as instâncias para versões compatíveis fora das janelas de manutenção.

**Importante**  
As atualizações forçadas podem gerar consequências inesperadas para as pilhas do CloudFormation. Caso dependa do RDS para atualizar suas instâncias de banco de dados automaticamente, você poderá encontrar problemas com o CloudFormation.

Esta seção contém os seguintes tópicos:

**Topics**
+ [

### Datas de suporte para versões principais do RDS para Oracle
](#oracle-major-support-dates)
+ [

### Datas de suporte para versões secundárias do RDS para Oracle
](#oracle-minor-support-dates)

### Datas de suporte para versões principais do RDS para Oracle
<a name="oracle-major-support-dates"></a>

As versões principais do RDS para Oracle continuam disponíveis pelo menos até a data de fim do suporte para a versão correspondente do Oracle Database. É possível usar as seguintes datas para planejar seus ciclos de teste e atualização. Essas datas representam a data mais antiga em que uma atualização para uma versão mais recente pode ser necessária. Se a Amazon estender o suporte para uma versão do RDS para Oracle por mais tempo do que o planejado originalmente, planejamos atualizar essa tabela para refletir a data posterior. 

**nota**  
Você pode visualizar as versões principais dos bancos de dados Oracle executando o comando [describe-db-major-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-major-engine-versions.html) AWS CLI ou usando a operação de API [DescribeDBMajorEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBMajorEngineVersions.html) do RDS.


| Versão principal do Oracle Database  | Data esperada para atualização para uma versão mais recente | 
| --- | --- | 
|  Oracle Database 19c  |  31 de dezembro de 2029 com o BYOL Premier Support (isenção de taxas para suporte estendido) 31 de dezembro de 2032 com suporte estendido BYOL (custo adicional) ou um contrato de licença ilimitada 31 de dezembro de 2029 com Licença Incluída (LI)  | 
|  Oracle Database 21c  | 31 de julho de 2027 (não disponível para Suporte estendido) | 

O RDS enviará uma notificação pelo menos 12 meses antes de você precisar atualizar para uma versão principal mais recente. A notificação descreve o processo de atualização, como o momento de marcos importantes, o impacto nas instâncias de banco de dados e as ações recomendadas. Recomendamos que você teste detalhadamente suas aplicações com as novas versões do RDS para Oracle antes de atualizar seu banco de dados para uma versão principal.

Depois desse período de notificação prévia, um upgrade automático para a versão principal subsequente poderá ser aplicado a qualquer instância de banco de dados que ainda estiver executando a versão mais antiga. Nesse caso, a atualização é iniciada durante as janelas de manutenção agendada. 

Para ter mais informações, consulte [ Release Schedule of Current Database Releases](https://support.oracle.com/knowledge/Oracle%20Database%20Products/742060_1.html) no My Oracle Support.

### Datas de suporte para versões secundárias do RDS para Oracle
<a name="oracle-minor-support-dates"></a>

Em alguns casos, encerramos o suporte para versões secundárias das versões principais do RDS para Oracle. O RDS enviará uma notificação pelo menos 6 meses antes de você precisar atualizar para uma versão secundária mais recente. A notificação descreve o processo de atualização, como o momento de marcos importantes, o impacto nas instâncias de banco de dados que executam a versão secundária obsoleta e as ações recomendadas. Recomendamos que você teste detalhadamente suas aplicações com as novas versões do RDS para Oracle antes de atualizar seu banco de dados para uma nova versão secundária.

Para acessar mais informações sobre versões secundárias obsoletas e não aceitas, consulte [Notas de versão do Amazon Relational Database Service (Amazon RDS) para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).

## Oracle Engine Version Management
<a name="Oracle.Concepts.Patching"></a>

Com o gerenciamento de versão do mecanismo de banco de dados, você controla quando e como o mecanismo é corrigido e atualizado. Com esse recurso, você obtém flexibilidade para manter a compatibilidade com versões de patch do mecanismo de banco de dados. Também é possível testar novas versões de patch do RDS para Oracle para garantir que elas funcionem de forma eficiente com a aplicação antes de implantá-las na produção. Além disso, você atualiza as versões em seus próprios prazos e cronogramas.

**nota**  
O Amazon RDS agrega periodicamente os patches oficiais de bancos de dados Oracle usando uma versão do mecanismo de banco de dados específica do Amazon RDS. Para ver uma lista de quais patches do Oracle estão contidos em uma versão de mecanismo específica do Oracle do Amazon RDS, acesse [https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).

## Instantâneos automáticos durante atualizações do mecanismo
<a name="USER_UpgradeDBInstance.Oracle.Overview.snapshots"></a>

Quando você atualiza uma instância de banco de dados Oracle, os snapshots oferecem proteção contra problemas de atualização. Se o período de retenção de backup da instância de banco de dados for maior que 0, o Amazon RDS os seguintes snapshots de banco de dados serão realizados durante a atualização:

1. Um snapshot da instância de banco de dados antes de qualquer alteração de atualização ter sido feita. Se o upgrade falhar, você poderá restaurar esse snapshot para criar uma instância de banco de dados executando a versão antiga.

1. Um snapshot da instância de banco de dados após a conclusão da atualização.

**nota**  
Para alterar o período de retenção de backup, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

Após uma atualização, você não pode reverter para a versão anterior do mecanismo. No entanto, você pode criar uma nova instância de banco de dados Oracle restaurando o snapshot pré-atualização.

## Atualizações do Oracle em uma implantação Multi-AZ
<a name="USER_UpgradeDBInstance.Oracle.Overview.multi-az"></a>

Se a instância de banco de dados estiver em uma implantação Multi-AZ, o Amazon RDS atualizará as réplicas primária e em espera. Se nenhuma atualização do sistema operacional for necessária, as atualizações primária e em espera ocorrerão simultaneamente. As instâncias não estarão disponíveis até que a atualização seja concluída.

Se forem necessárias atualizações do sistema operacional em uma implantação multi-AZ, o Amazon RDS aplicará as atualizações quando você solicitar o upgrade do banco de dados. O Amazon RDS executa as seguintes etapas:

1. Atualiza o sistema operacional na instância de banco de dados atual em espera.

1. Executa failover na instância de banco de dados principal para a instância de banco de dados em espera.

1. Faz upgrade da versão do banco de dados na nova instância de banco de dados primária, que anteriormente era a instância em espera. O banco de dados primário fica indisponível durante a migração.

1. Atualiza o sistema operacional na nova instância de banco de dados em espera, que anteriormente era a instância de banco de dados principal.

1. Atualiza a versão do banco de dados na nova instância de banco de dados em espera.

1. Faz failover da nova instância de banco de dados primária de volta para a instância de banco de dados primária original e a nova instância de banco de dados em espera volta para a instância de banco de dados em espera original. Assim, o Amazon RDS retorna a configuração de replicação ao seu estado original.

## Atualizações do Oracle de réplicas de leitura
<a name="USER_UpgradeDBInstance.Oracle.Overview.read-replicas"></a>

A versão do mecanismo de banco de dados Oracle da instância de banco de dados de origem e todas as réplicas de leitura devem ser iguais. O Amazon RDS executa a atualização nos seguintes estágios:

1. Atualiza a instância de banco de dados de origem. As réplicas de leitura estão disponíveis durante esse estágio.

1. Atualiza as réplicas de leitura em paralelo, independentemente das janelas de manutenção de réplicas. O banco de dados de origem está disponível durante esse estágio.

Para atualizações da versão principal de réplicas de leitura entre regiões, o Amazon RDS executa ações adicionais:
+ Gera um grupo de opções para a versão de destino automaticamente
+ Copia todas as opções e as configurações de opção do grupo de opções original para o novo grupo de opções
+ Associa a réplica de leitura entre regiões atualizada ao novo grupo de opções

# Atualizações da versão principal do Oracle
<a name="USER_UpgradeDBInstance.Oracle.Major"></a>

Para realizar uma atualização de versão principal, modifique manualmente a instância de banco de dados. As atualizações de versões principais não ocorrem automaticamente. 

**Importante**  
Teste completamente qualquer atualização para verificar se as aplicações funcionam corretamente antes de aplicá-la aos bancos de dados de produção. Para obter mais informações, consulte [Testar uma atualização do Oracle DB](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md).

**Topics**
+ [

## Versões compatíveis com atualizações principais
](#USER_UpgradeDBInstance.Oracle.Major.supported-versions)
+ [

## Classes de instância compatíveis com atualizações principais
](#USER_UpgradeDBInstance.Oracle.Major.instance-classes)
+ [

## Coletar estatísticas antes de atualizações principais
](#USER_UpgradeDBInstance.Oracle.Major.gathering-stats)
+ [

## Permitir atualizações principais
](#USER_UpgradeDBInstance.Oracle.Major.allowing-upgrades)

## Versões compatíveis com atualizações principais
<a name="USER_UpgradeDBInstance.Oracle.Major.supported-versions"></a>

O Amazon RDS oferece suporte às atualizações da versão principal a seguir.


****  

| Versão atual | Atualização compatível | 
| --- | --- | 
|  19.0.0.0 usando a arquitetura CDB  |  21.0.0.0  | 

Uma atualização de versão principal do banco de dados Oracle deve atualizar para uma Release Update (RU) que foi lançada no mesmo mês ou posterior. Downgrades da versão principal não são compatíveis com nenhuma versão do Oracle Database.

## Classes de instância compatíveis com atualizações principais
<a name="USER_UpgradeDBInstance.Oracle.Major.instance-classes"></a>

A instância de banco de dados Oracle pode ser executada em uma classe da instância de banco de dados não compatível com a versão para a qual você está atualizando. Nesse caso, migre a instância de banco de dados para uma classe de instância de banco de dados compatível antes da atualização. Para obter mais informações sobre as classes de instância de banco de dados compatíveis de cada versão e edição do Amazon RDS for Oracle, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md).

## Coletar estatísticas antes de atualizações principais
<a name="USER_UpgradeDBInstance.Oracle.Major.gathering-stats"></a>

Para realizar uma atualização de versão principal, a Oracle recomenda coletar estatísticas do otimizador sobre a instância de banco de dados que você está atualizando. Essa ação pode reduzir o tempo de inatividade da instância de banco de dados durante a atualização.

Para coletar estatísticas do otimizador, conecte-se à instância de banco de dados como o usuário mestre e execute o procedimento `DBMS_STATS.GATHER_DICTIONARY_STATS`, como no exemplo a seguir.

```
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
```

Consulte mais informações em [GATHER\$1DICTIONARY\$1STATS Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_STATS.html?source=%3Aso%3Atw%3Aor%3Aawr%3Aodv%3A%3A#GUID-867989C7-ADFC-4464-8981-437CEA7F331E) na documentação da Oracle.

## Permitir atualizações principais
<a name="USER_UpgradeDBInstance.Oracle.Major.allowing-upgrades"></a>

Uma atualização de versão principal do mecanismo pode ser incompatível com seu aplicativo. A atualização é irreversível. Se você especificar uma versão principal para o parâmetro EngineVersion diferente da versão principal atual, deverá permitir atualizações de versão principais.

Se atualizar uma versão principal usando o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI, especifique `--allow-major-version-upgrade`. Essa configuração não é persistente, portanto, você deve especificar `--allow-major-version-upgrade` sempre que executar uma atualização principal. Este parâmetro não afeta as atualizações de versões secundárias do mecanismo. Para obter mais informações, consulte [Atualizar a versão de mecanismo de uma instância de banco de dados ](USER_UpgradeDBInstance.Upgrading.md).

Se você atualizar uma versão principal usando o console, não será necessário escolher uma opção para permitir a atualização. Em vez disso, o console exibe um aviso de que as atualizações principais são irreversíveis.

# Atualizações de versões secundárias Oracle
<a name="USER_UpgradeDBInstance.Oracle.Minor"></a>

No RDS para Oracle, uma atualização de versão secundária é uma atualização feita em uma versão principal do mecanismo de banco de dados. No RDS, uma versão secundária do mecanismo é uma atualização de versão (RU) ou um pacote de patches espaciais (SPB). Por exemplo, se sua instância de banco de dados executa a versão principal do Oracle Database 19c e a versão secundária 19.0.0.0.ru-2025-10.rur-2025-10.r1, você pode atualizar o mecanismo de banco de dados para a versão secundária 19.0.0.0.ru-2026-01.rur-2026-01.r1. O RDS para Oracle não é compatível com downgrades de versões secundárias.

Você pode fazer upgrade do seu mecanismo de banco de dados para uma versão secundária manual ou automaticamente. Para saber como fazer upgrade manualmente, consulte [Atualizar manualmente a versão do mecanismo](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual). Para saber como configurar upgrades automáticos, consulte [Atualizar automaticamente a versão do mecanismo espelho](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). Não importa se você faz upgrade manual ou automaticamente, o upgrade de versão secundária acarreta tempo de inatividade. Considere esse tempo de inatividade ao planejar suas atualizações.

O Amazon RDS também comporta a política de implementação de atualizações para gerenciar atualizações automáticas de versões secundárias em vários recursos de banco de dados e Contas da AWS. Para obter mais informações, consulte [Usar a política de implementação de atualização do AWS Organizations para atualizações automáticas de versões secundárias](RDS.Maintenance.AMVU.UpgradeRollout.md).

**Importante**  
Teste completamente qualquer atualização para verificar se as aplicações funcionam corretamente antes de aplicá-la aos bancos de dados de produção. Para obter mais informações, consulte [Testar uma atualização do Oracle DB](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md).

**Topics**
+ [

## Atualizações de versão (RUs) e pacotes de patches espaciais (SPBs)
](#RUs-and-SPBs)
+ [

## Ativar as atualizações automáticas de versão secundária para Oracle
](#oracle-minor-version-upgrade-tuning-on)
+ [

## Usar a política de implementação de atualização do AWS Organizations para atualizações automáticas de versões secundárias
](#oracle-minor-version-upgrade-rollout)
+ [

## Notificação de atualizações automáticas de versão secundária no RDS para Oracle
](#oracle-minor-version-upgrade-advance)
+ [

## Como o RDS programa atualizações automáticas de versão secundária
](#oracle-minor-version-upgrade-scheduled)
+ [

## Gerenciar uma atualização automática de versão secundária no RDS para Oracle
](#oracle-minor-version-upgrade-managing)

## Atualizações de versão (RUs) e pacotes de patches espaciais (SPBs)
<a name="RUs-and-SPBs"></a>

No RDS, uma atualização de versão (RU) é uma versão secundária trimestral do mecanismo que inclui correções de segurança, correções de erros e novos recursos para o Oracle Database. Um pacote de patches espaciais (SPB) é uma RU do mecanismo que inclui patches projetados para a opção Oracle Spatial. Por exemplo, o SPB denominado 19.0.0.0.ru-2025-01.spb-1.r1 inclui todos os patches na RU 19.0.0.0.ru-2025-01.rur-2025-01.r1 correspondente, além de patches específicos para o Spatial. Os SPBs são compatíveis somente com o Oracle Database 19c. 

Quando a instância estiver configurada para atualizações automáticas de versões secundárias, as RUs e os SPBs estarão em caminhos de atualização separados. Normalmente, um SPB é lançado duas a três semanas após a RU correspondente. A tabela a seguir mostra exemplos de versões secundárias do Oracle Database 19c. 


| Caminho de atualização de RU padrão | Caminho de atualização de SPB | 
| --- | --- | 
| 19.0.0.0.ru-2025-01.rur-2025-01.r1 | 19.0.0.0.ru-2025-01.spb-1.r1 | 
| 19.0.0.0.ru-2025-04.rur-2025-04.r1 | 19.0.0.0.ru-2025-04.spb-1.r1 | 
| 19.0.0.0.ru-2025-07.rur-2025-07.r1 | 19.0.0.0.ru-2025-07.spb-1.r1 | 
| 19.0.0.0.ru-2025-10.rur-2025-10.r1 | 19.0.0.0.ru-2025-10.spb-1.r1 | 

Se sua instância de banco de dados estiver configurada para atualizações automáticas, ela estará no caminho de atualização correspondente à sua versão atual. Por exemplo, se a instância de banco de dados estiver executando a versão 19.0.0.0.ru-2025-01.rur-2025-01.r1 quando 19.0.0.0.ru-2025-04.rur-2025-04.r1 for lançada, ela será automaticamente atualizada para essa RU. Da mesma forma, se a instância de banco de dados estiver executando a versão 19.0.0.0.ru-2025-01.spb-1.r1 quando 19.0.0.0.ru-2025-04.spb-1.r1 for lançada, ela será automaticamente atualizada para esse SPB. A instância que estiver executando a versão 19.0.0.0.ru-2025-01.rur-2025-01.r1, que é uma RU, não será atualizada automaticamente para 19.0.0.0.ru-2025-04.spb-1.r1, que é um SPB em um caminho de atualização separado. 

Você pode atualizar a instância de banco de dados para SPBs mesmo que ela não use patches espaciais, mas esses patches se aplicam somente ao Oracle Spatial. Você pode atualizar manualmente de uma RU para um SPB na mesma versão do mecanismo ou em uma versão posterior. Por exemplo, é possível atualizar a instância de 19.0.0.0.ru-2025-01.rur-2025-01.r1 para uma das seguintes versões do mecanismo:
+ 19.0.0.0.ru-2025-01.spb-1.r1
+ 19.0.0.0.ru-2025-04.spb-1.r1

Você pode atualizar a instância de um SPB para uma RU somente se a RU for uma versão posterior do mecanismo. Por exemplo, é possível atualizar do SPB 19.0.0.0.ru-2025-04.spb-1.r1 para a RU posterior 19.0.0.0.ru-2025-07.rur-2025-07.r1, mas não para a mesma RU 19.0.0.0.ru-2025-04.rur-2025-04.r1. 

Se a instância de banco de dados estiver configurada para atualizações automáticas de versões secundárias e você fizer a atualização manualmente de uma RU para um SPB ou de um SPB para uma RU, o caminho de atualização automática será alterado. Suponha que você atualize manualmente da RU 19.0.0.0.ru-2025-01.rur-2025-01.r1 para o SPB 19.0.0.0.ru-2025-01.spb-1.r1. Sua próxima atualização automática de versão secundária será para a versão 19.0.0.0.ru-2025-04.spb-1.r1 do SPB.

Como os SPBs funcionam como RUs, as APIs do RDS para atualizar a instância para RUs e SPBs são idênticas. Os comandos a seguir demonstram a atualização para uma RU e para um SPB.

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --engine-version 19.0.0.0.ru-2025-01.rur-2025-01.r1

aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --engine-version 19.0.0.0.ru-2025-01.spb-1.r1
```

Para ter mais informações sobre como especificar a opção Oracle Spatial, consulte [Como funcionam os pacotes de patches espaciais (SPBs)](Oracle.Options.Spatial.md#Oracle.Options.Spatial.SPBs). Para examinar uma lista de RUs e SPBs compatíveis com o Oracle Database 19c, consulte [Amazon RDS for Oracle Database 19c (19.0.0.0)](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html).

## Ativar as atualizações automáticas de versão secundária para Oracle
<a name="oracle-minor-version-upgrade-tuning-on"></a>

Em um upgrade automático de versão secundária, o RDS aplica a versão secundária mais recente disponível ao seu banco de dados Oracle sem intervenção manual. Uma instância de banco de dados do Amazon RDS para Oracle agenda seu upgrade durante a próxima janela de manutenção nas seguintes circunstâncias:
+ A instância de banco de dados está com a opção **Upgrade automático de versão secundária** ativada.
+ A instância de banco de dados não está executando a versão secundária mais recente do mecanismo de banco de dados.

Para saber como ativar upgrades automáticos, consulte [Atualizar automaticamente a versão do mecanismo espelho](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades).

## Usar a política de implementação de atualização do AWS Organizations para atualizações automáticas de versões secundárias
<a name="oracle-minor-version-upgrade-rollout"></a>

O Amazon RDS para Oracle comporta a política de implementação de atualizações do AWS Organizations para gerenciar atualizações automáticas de versões secundárias em vários recursos de banco de dados e Contas da AWS. Essa política elimina os custos operacionais indiretos de coordenar atualizações automáticas de versões secundárias manualmente ou por meio de ferramentas personalizadas, ao mesmo tempo em que garante que, antes de serem implementadas na produção, as atualizações sejam aplicadas primeiro em ambientes que não sejam de produção. Quando uma nova versão secundária do mecanismo é disponibilizada, o Amazon RDS atualiza as instâncias de banco de dados com base na ordem de implementação de atualizações configurada: 


| Ordem de implementação de atualizações | Caso de uso típico | Quando a atualização começa | 
| --- | --- | --- | 
| Primeira | Ambientes de teste e desenvolvimento | Inicial: ideal para validar novas versões | 
| Segunda | Ambientes de preparação e de produção não essenciais | Após a conclusão da “primeira” fase | 
| Última | Ambientes de produção essenciais | Após a conclusão da “segunda” fase | 

**Importante**  
Se você não configurar uma ordem de implementação de atualizações para a instância de banco de dados, o padrão será a segunda.

Para ter informações detalhadas sobre a programação e duração das fases, consulte [Como o RDS programa atualizações automáticas de versão secundária](#oracle-minor-version-upgrade-scheduled). Para ter informações sobre como configurar políticas de implementação de atualizações no AWS Organizations, consulte [Usar a política de implementação de atualização do AWS Organizations para atualizações automáticas de versões secundárias](RDS.Maintenance.AMVU.UpgradeRollout.md).

## Notificação de atualizações automáticas de versão secundária no RDS para Oracle
<a name="oracle-minor-version-upgrade-advance"></a>

Se a atualização automática de versões secundárias estiver habilitada na instância de banco de dados, o RDS para Oracle criará ações de manutenção pendentes para notificar você antes de aplicar as atualizações. É possível visualizar essas ações de manutenção pendentes na guia **Manutenção e backups** da página de detalhes do banco de dados no console do Amazon RDS.

Quando a nova versão secundária é disponibilizada, o RDS para Oracle publica uma notificação antecipada (ação de manutenção pendente). A notificação antecipada tem o seguinte formato:

```
An automatic minor version upgrade to engine-version will be applied during your maintenance window on apply-date based on the upgrade rollout order rollout-order. You can change the upgrade rollout order or apply this upgrade manually at any time before the scheduled date through the AWS console or AWS CLI.
```

`apply-date` na notificação antecipada é a data em que o Amazon RDS atualizará a instância de banco de dados. `rollout-order` é a ordem de implementação de atualizações (primeira, segunda ou última). Se você não configurou uma política de implementação de atualizações, esse valor será a segunda ordem por padrão. Para obter mais informações, consulte [Usar a política de implementação de atualização do AWS Organizations para atualizações automáticas de versões secundárias](RDS.Maintenance.AMVU.UpgradeRollout.md).

Quando a fase de implementação de atualizações começa, a mensagem de ação de manutenção pendente muda para o seguinte formato:

```
Automatic minor version upgrade to engine-version
```

Essa mensagem indica que a atualização foi programada e será aplicada durante a janela de manutenção na data de aplicação programada. É possível verificar a data de aplicação programada na guia **Manutenção e backups** da página de detalhes do banco de dados no console do Amazon RDS ou no campo `CurrentApplyDate` da resposta da API `describe-pending-maintenance-actions`.

O seguinte exemplo mostra que é possível obter os detalhes sobre as ações de manutenção pendentes usando o comando `describe-pending-maintenance-actions` na AWS CLI:

```
aws rds describe-pending-maintenance-actions 

    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:123456789012:db:orclinst1",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "db-upgrade",
                    "Description": "Automatic minor version upgrade to 21.0.0.0.ru-2024-07.rur-2024-07.r1",
                    "CurrentApplyDate": "2024-12-02T08:10:00Z"
                }
            ]
        }, ...
```

Para ter mais informações sobre [describe-pending-maintenance-actions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-pending-maintenance-actions.html), consulte a *Referência de comandos da AWS CLI*.

## Como o RDS programa atualizações automáticas de versão secundária
<a name="oracle-minor-version-upgrade-scheduled"></a>

Quando você usa a política de implementação de atualizações do AWS Organizations, o Amazon RDS atualiza as instâncias de banco de dados em fases com base na ordem de implementação configurada. Esta seção descreve a programação e a duração de cada fase.

**Fase 0: notificação antecipada**

Quando o RDS para Oracle lança uma nova versão secundária (normalmente de três a quatro semanas após o lançamento trimestral de atualização de versão da Oracle), todas as instâncias de banco de dados com atualização automática de versão secundária habilitada recebem uma notificação antecipada. Essa notificação aparece na guia **Manutenção e backups** da página de detalhes do banco de dados no console do Amazon RDS e na resposta da API `describe-pending-maintenance-actions`. A fase de notificação antecipada dura duas semanas. Durante essa fase, não ocorre nenhuma atualização automática.

**Fase 1: primeira ordem de implementação de atualizações**

No final da fase de notificação antecipada, o RDS para Oracle começa a atualizar as instâncias de banco de dados com a primeira ordem de implementação de atualizações. Essa fase dura de duas a três semanas para as versões secundárias trimestrais de janeiro, abril e julho e de sete a oito semanas para a versão secundária trimestral de outubro. O período estendido da versão secundária de outubro oferece tempo suficiente para testar a nova versão secundária durante as festas de fim de ano. As novas instâncias de banco de dados criadas durante essa fase com a primeira ordem de implementação de atualizações serão atualizadas automaticamente.

**Fase 2: segunda ordem de implementação de atualizações**

No final da fase 1, o RDS para Oracle começa a atualizar as instâncias de banco de dados com a segunda ordem de implementação de atualizações. Essa fase dura duas semanas para todas as versões secundárias trimestrais. As novas instâncias de banco de dados criadas durante essa fase com a primeira ou segunda ordem de implementação de atualizações serão atualizadas automaticamente.

**Fase 3: última ordem de implementação de atualizações**

No final da fase 2, o RDS para Oracle começa a atualizar as instâncias de banco de dados com a última ordem de implementação de atualizações. Essa fase dura até o próximo lançamento trimestral da versão secundária. As novas instâncias de banco de dados criadas durante essa fase com a primeira, segunda ou última ordem de implementação de atualizações serão atualizadas automaticamente.


| Fase | Quando começa | Duração | Mensagem de ação de manutenção pendente | 
| --- | --- | --- | --- | 
| Fase 0: notificação antecipada | Quando o RDS para Oracle lança uma nova versão secundária | Duas semanas | Uma atualização automática de uma versão secundária para a versão do mecanismo será aplicada durante a janela de manutenção na apply-date com base na ordem de implementação de atualizações rollout-order. É possível alterar a ordem de implementação de atualizações ou aplicar essa atualização manualmente a qualquer momento antes da data programada por meio do Console da AWS ou da AWS CLI. | 
| Fase 1: primeira ordem de implementação de atualizações | Fim da fase de notificação antecipada | De duas a quatro semanas para versões secundárias de janeiro/abril/julho e de sete a nove semanas para a versão secundária de outubro | Atualização automática da versão secundária para a versão do mecanismo | 
| Fase 2: segunda ordem de implementação de atualizações | Fim da fase 1 | Duas semanas | Atualização automática da versão secundária para a versão do mecanismo | 
| Fase 3: última ordem de implementação de atualizações | Fim da fase 2 | Até o próximo lançamento trimestral da versão secundária | Atualização automática da versão secundária para a versão do mecanismo | 

## Gerenciar uma atualização automática de versão secundária no RDS para Oracle
<a name="oracle-minor-version-upgrade-managing"></a>

Quando a atualização automática de versão secundária está habilitada na instância de banco de dados, o Amazon RDS atualiza automaticamente a instância de banco de dados para a última versão secundária durante a janela de manutenção. Mas você pode optar por aplicar a atualização manualmente antes da data programada usando a AWS CLI ou na guia **Manutenção e backups** da página de detalhes do banco de dados.

Para atualizar sua instância de banco de dados imediatamente, em vez de aguardar a janela de manutenção programada:

```
aws rds apply-pending-maintenance-action \
    --resource-identifier arn:aws:rds:us-east-1:123456789012:db:orclinst1 \
    --apply-action db-upgrade \
    --opt-in-type immediate
```

Para aplicar a atualização durante a próxima janela de manutenção, em vez de na data de aplicação programada:

```
aws rds apply-pending-maintenance-action \
    --resource-identifier arn:aws:rds:us-east-1:123456789012:db:orclinst1 \
    --apply-action db-upgrade \
    --opt-in-type next-maintenance
```

Para cancelar a atualização automática de versão secundária, modifique a instância de banco de dados e desative a opção de atualização automática de versão secundária. Isso cancela qualquer atualização automática pendente.

Para saber como desativar atualizações automáticas de versão secundária, consulte [Atualizar automaticamente a versão do mecanismo espelho](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.AutoMinorVersionUpgrades). Se precisar de ajuda para desativar a atualização automática de versões secundárias, entre em contato com o AWS Support.

Às vezes, uma nova versão secundária fica disponível antes que o RDS aplique uma versão secundária anterior. Por exemplo, a instância está sendo executada na `21.0.0.0.ru-2025-07.rur-2025-07.r1` quando `both 21.0.0.0.ru-2025-10.rur-2025-10.r1` e `21.0.0.0.ru-2026-01.rur-2026-01.r1` está disponível como destino de atualização. Nessa situação, para evitar tempo de inatividade desnecessário para as instâncias de banco de dados, o RDS programa o upgrade automático da versão secundária para a versão mais recente, ignorando o upgrade para a versão anterior. Neste exemplo, o RDS atualiza diretamente a instância da `21.0.0.0.ru-2025-07.rur-2025-07.r1` para a `21.0.0.0.ru-2026-01.rur-2026-01.r1`.

# Considerações sobre atualizações de bancos de dados Oracle
<a name="USER_UpgradeDBInstance.Oracle.OGPG"></a>

Antes de atualizar a instância Oracle, analise as informações a seguir.

**Topics**
+ [

## Considerações sobre o Oracle Multitenant
](#USER_UpgradeDBInstance.Oracle.multi)
+ [

## Considerações de grupos de opções
](#USER_UpgradeDBInstance.Oracle.OGPG.OG)
+ [

## Considerações de grupos de parâmetros
](#USER_UpgradeDBInstance.Oracle.OGPG.PG)
+ [

## Considerações sobre fuso horário
](#USER_UpgradeDBInstance.Oracle.OGPG.DST)
+ [

## Considerações sobre pacote de patches espaciais (SPB)
](#USER_UpgradeDBInstance.Oracle.SPB)

## Considerações sobre o Oracle Multitenant
<a name="USER_UpgradeDBInstance.Oracle.multi"></a>

A tabela a seguir descreve as arquiteturas do Oracle Database compatíveis em versões diferentes.


| Versão do Oracle Database | Status de suporte do RDS | Arquitetura | 
| --- | --- | --- | 
|  Oracle Database 21c  | Compatível |  Somente CDB  | 
|  Oracle Database 19c  | Compatível |  CDB ou não CDB  | 

A tabela a seguir descreve os caminhos de atualização compatíveis e incompatíveis.


| Caminho de atualização | Compatível? | 
| --- | --- | 
|  CDB para CDB  |  Sim  | 
|  Não CDB para CDB  |  Não, mas é possível converter uma arquitetura não CDB em CDB e depois atualizá-la  | 
|  CDB para não CDB  |  Não  | 

Para obter mais informações sobre o Oracle Multitenant no RDS for Oracle, consulte [Configuração de locatário único da arquitetura CDB](Oracle.Concepts.CDBs.md#Oracle.Concepts.single-tenant).

## Considerações de grupos de opções
<a name="USER_UpgradeDBInstance.Oracle.OGPG.OG"></a>

Se sua instância de banco de dados usa um grupo de opções personalizado, às vezes o Amazon RDS não pode atribuir automaticamente um novo grupo de opções. Por exemplo, isso ocorre quando você faz a atualização para uma nova versão principal. Nesses casos, especifique um novo grupo de opções ao atualizar. Recomendamos que você crie um novo grupo de opções e adicione a ele as mesmas opções que o seu grupo de opções personalizadas existente. 

Para obter mais informações, consulte [Criar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) ou [Copiar um grupo de opções](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy). 

Se a instância de banco de dados usar um grupo de opções personalizado que contenha a opção as opções `APEX` e `APEX-DEV`, você pode reduzir o tempo de atualização algumas vezes. Para fazer isso, atualize sua versão do Oracle APEX ao mesmo tempo que sua instância de banco de dados. Para obter mais informações, consulte [Atualizar a versão do Oracle APEX](Appendix.Oracle.Options.APEX.UpgradeandRemove.md#Appendix.Oracle.Options.APEX.Upgrade). 

## Considerações de grupos de parâmetros
<a name="USER_UpgradeDBInstance.Oracle.OGPG.PG"></a>

Se a sua instância de banco de dados usar um grupo de parâmetros personalizado, em alguns casos, o Amazon RDS não poderá atribuir automaticamente a ela um novo grupo de parâmetros. Por exemplo, isso ocorre quando você faz a atualização para uma nova versão principal. Nesses casos, certifique-se de especificar um novo grupo de parâmetros ao atualizar. Recomendamos que você crie um novo parameter group e configure os parâmetros como no seu parameter group personalizado existente.

Para obter mais informações, consulte [Criar um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Creating.md) ou [Copiar um grupo de parâmetros de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Copying.md). 

## Considerações sobre fuso horário
<a name="USER_UpgradeDBInstance.Oracle.OGPG.DST"></a>

É possível usar a opção de fuso horário para alterar o *fuso horário do sistema* usado pela sua instância de banco de dados Oracle. Por exemplo, é possível alterar o fuso horário de uma instância de banco de dados para que ele seja compatível com um ambiente local ou um aplicativo herdado. A opção de fuso horário altera o fuso horário no nível do host. O Amazon RDS for Oracle atualiza automaticamente o fuso horário do sistema ao longo do ano. Para obter mais informações sobre o fuso horário do sistema, consulte [Fuso horário da Oracle](Appendix.Oracle.Options.Timezone.md).

Quando uma instância de banco de dados Oracle é criada, o banco de dados define automaticamente o *fuso horário do banco de dados*. O fuso horário do banco de dados também é conhecido como fuso DST (horário de verão). O fuso horário do banco de dados é diferente do fuso horário do sistema.

Entre versões do Oracle Database, conjuntos de patches ou patches individuais podem incluir novas versões do DST. Esses patches refletem as alterações nas regras de transição para várias regiões de fuso horário. Por exemplo, um governo pode mudar a data de início do DST. Alterações às regras de DST podem afetar dados existentes do tipo de dados `TIMESTAMP WITH TIME ZONE`.

Se você atualizar uma instância do RDS for Oracle, o Amazon RDS não atualizará o fuso horário do banco de dados automaticamente. Para atualizar o arquivo de fuso horário automaticamente, você pode incluir a opção `TIMEZONE_FILE_AUTOUPGRADE` no grupo de opções associado à sua instância de banco de dados durante ou após a atualização da versão do mecanismo. Para obter mais informações, consulte [Atualização automática do arquivo de fuso horário do Oracle](Appendix.Oracle.Options.Timezone-file-autoupgrade.md).

Como alternativa, para atualizar o fuso horário do arquivo de banco de dados manualmente, crie uma nova instância de banco de dados Oracle que tenha o patch de DST desejado. No entanto, recomendamos atualizar o arquivo de fuso horário do banco de dados usando a opção `TIMEZONE_FILE_AUTOUPGRADE`.

Depois de atualizar o arquivo de fuso horário, migre os dados da instância atual para a nova instância. É possível migrar dados usando várias técnicas, incluindo as seguintes:
+ AWS Database Migration Service
+ Oracle GoldenGate
+ Oracle Data Pump
+ Exportação/importação original (suporte desativado para uso geral)

**nota**  
Quando dados são migrados usando o Oracle Data Pump, o utilitário gera o erro ORA-39405 quando a versão de fuso horário de destino é inferior à versão do fuso horário de origem.

Para obter mais informações, consulte [Restrições de TIMESTAMP WITH TIMEZONE](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html#GUID-9B6C92EE-860E-43DD-9728-735B17B9DA89) na documentação da Oracle. 

## Considerações sobre pacote de patches espaciais (SPB)
<a name="USER_UpgradeDBInstance.Oracle.SPB"></a>

No RDS para Oracle, uma atualização de versão (RU) é uma versão secundária do mecanismo que inclui correções de segurança, correções de erros e novos recursos para o Oracle Database. Um pacote de patches espaciais (SPB) é uma versão secundária do mecanismo que inclui patches projetados para a opção Oracle Spatial. Por exemplo, 19.0.0.0.ru-2025-01.spb-1.r1 é uma versão secundária do mecanismo que contém os patches de RU na versão do mecanismo 19.0.0.0.ru-2025-01.rur-2025-01.r1 e patches do Spatial.

Quando você atualizar seu banco de dados par SPBs, considere o seguinte:
+ Os SPBs são compatíveis somente com o Oracle Database 19c.
+ Normalmente, um SPB é lançado duas a três semanas após a RU trimestral correspondente.
+ Você pode atualizar a instância de banco de dados para um SPB mesmo que ela não use a opção Oracle Spatial, mas os patches espaciais na versão do mecanismo se aplicam somente ao Oracle Spatial. Você pode criar uma instância em um SPB e instalar a opção Oracle Spatial posteriormente.
+ Se você habilitar a atualização automática de versões secundárias para sua instância de banco de dados, o caminho da atualização dependerá de a instância estar usando um SPB ou uma RU naquele momento. Se a instância de banco de dados estiver usando um SPB, o RDS a atualizará automaticamente para o SPB mais recente. Se a instância de banco de dados estiver usando uma RU, o RDS a atualizará automaticamente para a RU mais recente.
+ Você pode atualizar manualmente a instância de banco de dados de uma RU para um SPB somente se a versão do SPB do mecanismo for igual ou posterior à RU atual.
+ Você pode atualizar manualmente sua instância de banco de dados de um SPB para uma RU somente se a RU for uma versão posterior.

# Testar uma atualização do Oracle DB
<a name="USER_UpgradeDBInstance.Oracle.UpgradeTesting"></a>

Antes de fazer upgrade da instância de banco de dados para uma versão principal, teste exaustivamente o banco de dados e todas as aplicações que o acessam para atestar a compatibilidade com a nova versão. Recomendamos que você use o procedimento a seguir. 

**Para testar um upgrade de versão principal**

1. Reveja a documentação de upgrade da Oracle para a nova versão do mecanismo de banco de dados para ver se existem problemas de compatibilidade que podem afetar seu banco de dados ou seus aplicativos. Para obter mais informações, consulte o [Database Upgrade Guide](https://docs.oracle.com/database/121/UPGRD/toc.htm), na documentação da Oracle. 

1. Se a sua instância de banco de dados usar um grupo de opções personalizado, crie um novo grupo de opções compatível com a nova versão para a qual você está atualizando. Para obter mais informações, consulte [Considerações de grupos de opções](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 

1. Se a sua instância de banco de dados usar um parameter group personalizado, crie um novo parameter group compatível com a nova versão para a qual você está atualizando. Para obter mais informações, consulte [Considerações de grupos de parâmetros](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.PG). 

1. Crie um snapshot de banco de dados da instância de banco de dados a ser atualizada. Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md). 

1. Restaure o snapshot de banco de dados para criar uma nova instância de banco de dados de teste. Para obter mais informações, consulte [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md). 

1. Modifique essa nova instância de banco de dados de teste para atualizá-la para a nova versão, usando um dos seguintes métodos: 
   + [Console](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.Console)
   + [AWS CLI](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.CLI)
   + [API do RDS](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.API)

1. Realize testes: 
   + Execute quantos testes de garantia de qualidade na instância de banco de dados atualizada forem necessários para garantir que o seu banco de dados e o seu aplicativo funcionem corretamente com a nova versão. 
   + Implemente os novos testes necessários para avaliar o impacto de problemas de compatibilidade que você identificou na etapa 1. 
   + Teste todos os procedimentos, funções e triggers armazenados. 
   + Direcione versões de teste dos seus aplicativos à instância de banco de dados atualizada. Verifique se os aplicativos funcionam corretamente com a nova versão. 
   + Avalie o armazenamento usado pela instância atualizada para determinar se o upgrade requer armazenamento adicional. Talvez você precise escolher uma classe de instância maior para dar suporte à nova versão em produção. Para obter mais informações, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md). 

1. Se todos os testes forem aprovados, atualize a instância de banco de dados de produção. Recomendamos que você confirme se a instância de banco de dados está funcionando corretamente antes de permitir operações de gravação na instância de banco de dados.

# Atualizar a versão de uma instância de banco de dados do RDS para Oracle
<a name="USER_UpgradeDBInstance.Oracle.Upgrading"></a>



Para atualizar manualmente a versão do mecanismo de banco de dados de uma instância de banco de dados do RDS para Oracle, use o Console de gerenciamento da AWS, a AWS CLI ou a API do RDS. Para ter informações gerais sobre atualizações de bancos de dados, consulte [Atualizar a versão de uma instância de banco de dados do RDS para Oracle](#USER_UpgradeDBInstance.Oracle.Upgrading). Para ter destinos de atualização válidos, use o comando [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) da AWS CLI.

## Console
<a name="USER_UpgradeDBInstance.Oracle.Upgrading.Manual.Console"></a>

**Como atualizar a versão do mecanismo de uma instância de banco de dados do RDS para Oracle usando o console**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases (Bancos de dados)** e a instância de banco de dados que você deseja atualizar. 

1. Selecione **Modify**.

1. Em **Versão do mecanismo de banco de dados**, escolha uma versão posterior do banco de dados.

1. Escolha **Continuar** e verifique o resumo de modificações. Entenda as implicações de uma atualização de versão de banco de dados. Não é possível converter uma instância de banco de dados atualizada na versão anterior. Antes de continuar, não se esqueça de testar o banco de dados e a aplicação com a nova versão. 

1. Decida quando agendar a atualização da instância de banco de dados. Para aplicar as alterações imediatamente, escolha **Apply immediately**. Escolher essa opção pode causar uma interrupção em alguns casos. Para ter mais informações, consulte [Usar a configuração de programação de modificações](USER_ModifyInstance.ApplyImmediately.md). 

1. Na página de confirmação, revise suas alterações. Se estiverem corretas, escolha **Modify DB Instance (Modificar instância de banco de dados)** para salvar suas alterações. 

   Como alternativa, escolha **Back (Voltar)** para editar suas alterações ou escolha **Cancel (Cancelar)** para cancelar as alterações. 

## AWS CLI
<a name="USER_UpgradeDBInstance.Oracle.Upgrading.Manual.CLI"></a>

Para atualizar a versão do mecanismo de uma instância de banco de dados do RDS para Oracle, use o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) da CLI. Especifique os seguintes parâmetros: 
+ `--db-instance-identifier`: o nome da instância de banco de dados do RDS para Oracle. 
+ `--engine-version` – o número da versão do mecanismo de banco de dados para a qual será feita a atualização. 

  Para obter informações sobre versões de mecanismo válidas, use o comando AWS CLI [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html).
+ `--allow-major-version-upgrade`: para atualizar a versão do mecanismo de banco de dados. 
+ `--no-apply-immediately` – para aplicar alterações durante a próxima janela de manutenção. Para aplicar as alterações imediatamente, use `--apply-immediately`. 

**Example**  
O exemplo a seguir atualiza uma instância do CDB denominada `myorainst` da versão atual de `19.0.0.0.ru-2024-01.rur-2024-01.r1` para a versão `21.0.0.0.ru-2024-04.rur-2024-04.r1`.  
Para Linux, macOS ou Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier myorainst \
3.     --engine-version 21.0.0.0.ru-2024-04.rur-2024-04.r1 \
4.     --allow-major-version-upgrade \
5.     --no-apply-immediately
```
Para Windows:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier myorainst ^
3.     --engine-version 21.0.0.0.ru-2024-04.rur-2024-04.r1 ^
4.     --allow-major-version-upgrade ^
5.     --no-apply-immediately
```

## API do RDS
<a name="USER_UpgradeDBInstance.Oracle.Upgrading.Manual.API"></a>

Para atualizar uma instância de banco de dados do RDS para Oracle, use a ação [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html). Especifique os seguintes parâmetros: 
+ `DBInstanceIdentifier` – o nome da instância de banco de dados. Por exemplo *`myorainst`*. 
+ `EngineVersion` – o número da versão do mecanismo de banco de dados para a qual será feita a atualização. Para obter informações sobre versões de mecanismo válidas, use a operação [ DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html).
+ `AllowMajorVersionUpgrade` – para permitir ou não uma atualização de versão principal. Para isso, defina o valor como `true`. 
+ `ApplyImmediately` – se desejar aplicar as alterações imediatamente ou durante a próxima janela de manutenção. Para aplicar as alterações imediatamente, defina o valor como `true`. Para aplicar alterações durante a próxima janela de manutenção, defina o valor como `false`. 

# Como atualizar para um snapshot de banco de dados Oracle
<a name="USER_UpgradeDBSnapshot.Oracle"></a>

A atualização dos snapshots de banco de dados do Oracle no Amazon RDS garante que o banco de dados permaneça seguro e totalmente suportado. À medida que as versões mais antigas do Oracle chegarem ao fim do suporte de patches, você poderá atualizar qualquer snapshot de banco de dados manual vinculado a essas versões para evitar possíveis vulnerabilidades ou limitações de serviço. Para obter mais informações, consulte [Oracle Engine Version Management](USER_UpgradeDBInstance.Oracle.Overview.md#Oracle.Concepts.Patching).

O Amazon RDS comporta a atualização de snapshots em todas as Regiões da AWS.

## Console
<a name="USER_UpgradeDBSnapshot.Oracle.Console"></a>

**Para atualizar para um snapshot de banco de dados Oracle**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Snapshots** e selecione o snapshot de banco de dados que você deseja atualizar.

1. Em **Actions (Ações)**, selecione **Upgrade snapshot (Atualizar snapshot)**. A página **Upgrade snapshot (Atualizar snapshot)** é exibida.

1. Escolha a **New engine version (Nova versão do mecanismo)** para a qual o snapshot será atualizado.

1. (Opcional) Em **Option group (Grupo de opções)**, escolha o grupo de opções para o snapshot de banco de dados atualizado. As mesmas considerações de grupo de opções se aplicam ao atualizar um snapshot de banco de dados e uma instância de banco de dados. Para obter mais informações, consulte [Considerações de grupos de opções](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 

1. Escolha **Save changes (Salvar alterações)** para salvar suas alterações.

   Durante o processo de atualização, todas as ações do snapshot serão desabilitadas para esse snapshot de banco de dados. Além disso, o status do snapshot de banco de dados muda de **available (disponível)** para **upgrading (atualizando)** e muda para **active (ativo)** após a conclusão. Se não for possível atualizar o snapshot de banco de dados devido a problemas de corrupção do snapshot, o status mudará para **unavailable (indisponível)**. Não é possível recuperar o snapshot desse estado. 
**nota**  
Se a atualização do snapshot de banco de dados falhar, o snapshot será revertido para o estado original com a versão original.

## AWS CLI
<a name="USER_UpgradeDBSnapshot.Oracle.CLI"></a>

Para atualizar um snapshot de banco de dados Oracle usando a AWS CLI, chame o comando [modify-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-snapshot.html) com os seguintes parâmetros: 
+ `--db-snapshot-identifier` – o nome do snapshot de banco de dados. 
+ `--engine-version` – a versão de atualização do snapshot. 

Talvez também seja necessário incluir o parâmetro a seguir. As mesmas considerações de grupo de opções se aplicam ao atualizar um snapshot de banco de dados e uma instância de banco de dados. Para obter mais informações, consulte [Considerações de grupos de opções](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG). 
+ `--option-group-name` – o grupo de opções para o snapshot de banco de dados atualizado. 

**Example**  
O exemplo a seguir atualiza um snapshot de banco de dados.   
Para Linux, macOS ou Unix:  

```
aws rds modify-db-snapshot \
    --db-snapshot-identifier mydbsnapshot \
    --engine-version 19.0.0.0.ru-2020-10.rur-2020-10.r1 \
    --option-group-name default:oracle-se2-19
```
Para Windows:  

```
aws rds modify-db-snapshot ^
    --db-snapshot-identifier mydbsnapshot ^
    --engine-version 19.0.0.0.ru-2020-10.rur-2020-10.r1 ^
    --option-group-name default:oracle-se2-19
```

## API do RDS
<a name="USER_UpgradeDBSnapshot.Oracle.API"></a>

Para atualizar um snapshot de banco de dados Oracle usando a API do Amazon RDS, chame a operação [ModifyDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshot.html) com os seguintes parâmetros: 
+ `DBSnapshotIdentifier` – o nome do snapshot de banco de dados. 
+ `EngineVersion` – a versão de atualização do snapshot. 

Você também pode precisar incluir o parâmetro `OptionGroupName`. As mesmas considerações de grupo de opções se aplicam ao atualizar um snapshot de banco de dados e uma instância de banco de dados. Para obter mais informações, consulte [Considerações de grupos de opções](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG).

# Usar software de terceiros com a instância de banco de dados do Oracle
<a name="Oracle.Resources"></a>

É possível hospedar uma instância de banco de dados do RDS para Oracle que seja compatível com ferramentas e software de terceiros.

**Topics**
+ [

# Usar o Oracle GoldenGate com o Amazon RDS para Oracle
](Appendix.OracleGoldenGate.md)
+ [

# Usar o Oracle Repository Creation Utility no RDS for Oracle
](Oracle.Resources.RCU.md)
+ [

# Configurando o Oracle Connection Manager em uma instância do Amazon EC2
](oracle-cman.md)
+ [

# Instalar um Siebel Database no Oracle no Amazon RDS
](Oracle.Resources.Siebel.md)

# Usar o Oracle GoldenGate com o Amazon RDS para Oracle
<a name="Appendix.OracleGoldenGate"></a>

O Oracle GoldenGate coleta, replica e gerencia dados transacionais entre bancos de dados. Ele é um processo de captura de dados de alterações (CDC) baseado em log e um pacote de software de replicação usado com bancos de dados para sistemas de processamento de transações online (OLTP). O Oracle GoldenGate cria arquivos de trilha que contêm os dados alterados mais recentes do banco de dados de origem. Depois, ele envia esses arquivos ao servidor, onde um processo converte o arquivo de trilha em SQL padrão para ser aplicado ao banco de dados de destino.

O Oracle GoldenGate com RDS para Oracle é compatível com seguintes recursos:
+ Replicação de banco de dados ativo-ativo
+ Recuperação de desastres
+ Proteção de dados
+ Replicação em regiões e entre regiões
+ Migração e upgrades com tempo de inatividade zero
+ Replicação de dados entre uma instância de banco de dados do RDS para Oracle e um banco de dados que não seja Oracle
**nota**  
Para obter uma lista de bancos de dados compatíveis, consulte [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) (Configurações do sistema compatíveis com o Oracle Fusion Middleware) na documentação da Oracle.

Você pode usar o Oracle GoldenGate com RDS para Oracle para atualizar para as versões principais do banco de dados Oracle. Por exemplo, é possível usar o Oracle GoldenGate para atualizar de um banco de dados on-premises do Oracle Database 11g para o Oracle Database 19c em uma instância de banco de dados do Amazon RDS.

**Topics**
+ [

## Versões e opções de licenciamento com suporte para o Oracle GoldenGate
](#Appendix.OracleGoldenGate.licensing)
+ [

## Requisitos e limitações do Oracle GoldenGate
](#Appendix.OracleGoldenGate.requirements)
+ [

# Arquitetura do Oracle GoldenGate
](Appendix.OracleGoldenGate.Overview.md)
+ [

# Configurar o Oracle GoldenGate
](Appendix.OracleGoldenGate.setting-up.md)
+ [

# Trabalhar com os utilitários EXTRACT e REPLICAT do Oracle GoldenGate
](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [

# Monitorar o Oracle GoldenGate
](Appendix.OracleGoldenGate.Monitoring.md)
+ [

# Solução de problemas do Oracle GoldenGate
](Appendix.OracleGoldenGate.Troubleshooting.md)

## Versões e opções de licenciamento com suporte para o Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.licensing"></a>

É possível usar a Standard Edition 2 (SE2) ou a Enterprise Edition (EE) do RDS para Oracle com Oracle GoldenGate versão 12c e posterior. É possível usar os seguintes recursos do Oracle GoldenGate:
+ O Oracle GoldenGate Remote Capture (extração) é compatível.
+ A captura (extração) é compatível com instâncias de banco de dados do RDS para Oracle que usam a arquitetura tradicional de banco de dados não CDB. A captura remota de PDB do Oracle GoldenGate é compatível com CDBs que executam o Oracle Database 21c ou o Oracle Database 19c versão 19.0.0.0.ru-2024-04.rur-2024-04.r1 ou posterior.
+ O Oracle GoldenGate Remote Delivery (replicat) é compatível com o RDS para instâncias de banco de dados Oracle que usam arquiteturas não CDB ou CDB. A entrega remota é compatível com a replicação integrada, replicação paralela, replicação coordenada e replicação clássica.
+ O RDS da Oracle é compatível com as arquiteturas Clássica e de Microsserviço do Oracle GoldenGate.
+ A replicação de valores do Oracle GoldenGate DDL e Sequence é compatível com o uso do modo de captura integrado.

Você é responsável por gerenciar o licenciamento (BYOL) do Oracle GoldenGate para usá-lo com o Amazon RDS em todas as Regiões da AWS. Para obter mais informações, consulte [Opções de licenciamento do RDS para Oracle](Oracle.Concepts.Licensing.md).

## Requisitos e limitações do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.requirements"></a>

Ao trabalhar do Oracle GoldenGate e RDS for Oracle, considere os seguintes requisitos e limitações: 
+ Você é responsável por configurar e gerenciar o Oracle GoldenGate para usar com o RDS para Oracle. 
+ Você é responsável por configurar uma versão do Oracle GoldenGate certificada com os bancos de dados de origem e de destino. Para obter mais informações, consulte [Configurações do sistema compatíveis com o Oracle Fusion Middleware](https://www.oracle.com/middleware/technologies/fusion-certification.html) na documentação da Oracle.
+ Você pode usar o Oracle GoldenGate em vários ambientes da AWSdiferentes para diversos casos de uso. Se você tiver um problema de suporte relacionado ao Oracle GoldenGate, entre em contato com os Serviços de Suporte da Oracle.
+ É possível usar o Oracle GoldenGate em instâncias de banco de dados do RDS para Oracle que usam a Oracle Transparent Data Encryption (TDE). Para manter a integridade dos dados replicados, configure a criptografia no hub do Oracle GoldenGate usando volumes criptografados do Amazon EBS ou criptografia de arquivos de trilha. Configure também a criptografia para dados enviados entre o hub do Oracle GoldenGate e as instâncias de banco de dados de fonte e destino. As instâncias de banco de dados do RDS for Oracle são compatíveis com a criptografia com [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md) ou [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

# Arquitetura do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Overview"></a>

A arquitetura do GoldenGate para uso com o Amazon RDS consiste nos seguintes módulos desacoplados:

Fonte do banco de dados  
A fonte do banco de dados pode ser um banco de dados Oracle no local, um banco de dados Oracle em uma instância do Amazon EC2 ou um banco de dados Oracle em uma instância de banco de dados do Amazon RDS.

Hub do Oracle GoldenGate  
Um hub do Oracle GoldenGate move as informações de transação da fonte do banco de dados para o banco de dados de destino. O hub pode ser um dos seguintes:  
+ Uma instância do Amazon EC2 com o Oracle Database e o Oracle GoldenGate instalados
+ Uma instalação da Oracle on-premises.
É possível ter mais de um hub do Amazon EC2. Recomendamos que você use dois hubs se utilizar o Oracle GoldenGate para replicação entre regiões.

Bancos de dados de destino:  
O banco de dados de destino pode estar em uma instância de banco de dados do Amazon RDS, em uma instância do Amazon EC2 ou no local.

As seções a seguir descrevem cenários comuns para o Oracle GoldenGate no Amazon RDS.

**Topics**
+ [

## Fonte do banco de dados on-premises e hub do Oracle GoldenGate
](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [

## Fonte do banco de dados on-premises e hub do Amazon EC2
](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [

## Fonte do banco de dados do Amazon RDS e hub do Amazon EC2
](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [

## Fonte do banco de dados do Amazon EC2 e hub do Amazon EC2
](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [

## Hubs do Amazon EC2 em diferentes regiões da AWS
](#Appendix.OracleGoldenGate.cross-region-hubs)

## Fonte do banco de dados on-premises e hub do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

Nesse cenário, uma fonte do banco de dados Oracle on-premises e um hub do Oracle GoldenGate on-premises fornecem dados para uma instância de banco de dados do Amazon RDS de destino. 

![\[Configuração 0 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## Fonte do banco de dados on-premises e hub do Amazon EC2
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

Nesse cenário, um banco de dados Oracle on-premises atua como a fonte do banco de dados. É conectado a um hub de instância do Amazon EC2. Este hub fornece dados para uma instância de banco de dados de destino do RDS for Oracle.

![\[Configuração 1 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Fonte do banco de dados do Amazon RDS e hub do Amazon EC2
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

Nesse cenário, uma instância de banco de dados do RDS for Oracle atua como fonte do banco de dados. É conectado a um hub de instância do Amazon EC2. Este hub fornece dados para uma instância de banco de dados de destino do RDS for Oracle.

![\[Configuração 2 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Fonte do banco de dados do Amazon EC2 e hub do Amazon EC2
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

Nesse cenário, um banco de dados Oracle em uma instância do Amazon EC2 atua como a fonte do banco de dados. É conectado a um hub de instância do Amazon EC2. Este hub fornece dados para uma instância de banco de dados de destino do RDS for Oracle.

![\[Configuração 3 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## Hubs do Amazon EC2 em diferentes regiões da AWS
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

Nesse cenário, um banco de dados Oracle em uma instância de banco de dados do Amazon RDS está conectado a um hub de instância do Amazon EC2 na mesma região da AWS. O hub está conectado a um hub da instância do Amazon EC2 em outra região da AWS. Esse segundo hub fornece dados para a instância de banco de dados de destino do RDS for Oracle na mesma região da AWS como o segundo hub da instância do Amazon EC2.

![\[Configuração 4 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**nota**  
Quaisquer problemas que afetem o funcionamento do Oracle GoldenGate em ambiente on-premises também afetarão a execução do Oracle GoldenGate na AWS. É altamente recomendável que você monitore o hub do Oracle GoldenGate para garantir que `EXTRACT` e `REPLICAT` sejam retomados se ocorrer um failover. Como o hub do Oracle GoldenGate é executado em uma instância do Amazon EC2, o Amazon RDS não gerencia o hub do Oracle GoldenGate e não pode garantir que ele esteja em execução.

# Configurar o Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.setting-up"></a>

Para configurar o Oracle GoldenGate usando o Amazon RDS, configure o hub em uma instância do Amazon EC2 e, depois, configure os bancos de dados de origem e de destino. As seções a seguir fornecem um exemplo de como configurar o Oracle GoldenGate para uso com o Amazon RDS para Oracle.

**Topics**
+ [

## Configurar um hub do Oracle GoldenGate no Amazon EC2
](#Appendix.OracleGoldenGate.Hub)
+ [

## Configurar um banco de dados de origem para uso com o Oracle GoldenGate no Amazon RDS
](#Appendix.OracleGoldenGate.Source)
+ [

## Configurar um banco de dados de destino para uso com o Oracle GoldenGate no Amazon RDS
](#Appendix.OracleGoldenGate.Target)

## Configurar um hub do Oracle GoldenGate no Amazon EC2
<a name="Appendix.OracleGoldenGate.Hub"></a>

Para criar um hub do Oracle GoldenGate em uma instância do Amazon EC2, crie primeiro uma instância do Amazon EC2 com uma instalação completa do cliente do Oracle RDBMS. A instância do Amazon EC2 também deve ter o software do Oracle GoldenGate instalado. As versões do software Oracle GoldenGate dependem das versões dos bancos de dados de origem e de destino. Para obter mais informações sobre a instalação do Oracle GoldenGate, consulte a [documentação do Oracle GoldenGate](https://docs.oracle.com/en/middleware/goldengate/core/index.html).

A instância do Amazon EC2 que serve como o hub do GoldenGate armazena e processa as informações de transação da fonte do banco de dados em arquivos de trilha. Para que esse processo seja aceito, atenda às seguintes condições:
+ Você alocou armazenamento suficiente para os arquivos de trilha.
+ A instância do Amazon EC2 tem poder de processamento suficiente para gerenciar a quantidade de dados.
+ Além disso, certifique-se de que a instância do EC2 tenha memória suficiente para armazenar as informações de transação antes delas serem gravadas no arquivo de trilha.

**Como definir um hub de configuração de arquitetura clássica do Oracle GoldenGate em uma instância do Amazon EC2**

1. Crie os subdiretórios no diretório do Oracle GoldenGate.

   No shell da linha de comando do Amazon EC2, inicie o `ggsci`, o interpretador de comandos do Oracle GoldenGate. O comando `CREATE SUBDIRS` cria subdiretórios no diretório `/gg` para arquivos de parâmetros, relatórios e ponto de verificação.

   ```
   prompt$ cd /gg
   prompt$ ./ggsci
   
   GGSCI> CREATE SUBDIRS
   ```

1. Configure o arquivo `mgr.prm`.

   O exemplo a seguir adiciona linhas ao arquivo `$GGHOME/dirprm/mgr.prm`.

   ```
   PORT 8199
   PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
   ```

1. Inicie o gerente.

   O exemplo a seguir inicia o `ggsci` e executa o comando `start mgr`.

   ```
   GGSCI> start mgr
   ```

O hub do Oracle GoldenGate agora está pronto para uso.

## Configurar um banco de dados de origem para uso com o Oracle GoldenGate no Amazon RDS
<a name="Appendix.OracleGoldenGate.Source"></a>

Conclua as tarefas a seguir para configurar um banco de dados de origem a ser usado com o Oracle GoldenGate.

**Topics**
+ [

### Etapa 1: Ativar o registro em log complementar no banco de dados de origem
](#Appendix.OracleGoldenGate.Source.Logging)
+ [

### Etapa 2: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true
](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [

### Etapa 3: Definir o período de retenção de log no banco de dados de origem
](#Appendix.OracleGoldenGate.Source.Retention)
+ [

### Etapa 4: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de origem
](#Appendix.OracleGoldenGate.Source.Account)
+ [

### Etapa 5: Conceder privilégios ao usuário no banco de dados de origem
](#Appendix.OracleGoldenGate.Source.Privileges)
+ [

### Etapa 6: Adicionar um alias TNS ao banco de dados de origem
](#Appendix.OracleGoldenGate.Source.TNS)

### Etapa 1: Ativar o registro em log complementar no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

Para ativar o registro complementar mínimo em nível de banco de dados, execute o seguinte procedimento PL/SQL: 

```
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
```

### Etapa 2: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

Quando você define o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` como `true`, ele permite que os serviços de banco de dados sejam compatíveis com a replicação lógica. Se o banco de dados de origem estiver em uma instância de banco de dados do Amazon RDS, tenha um grupo de parâmetros atribuído à instância de banco de dados com o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` definido como `true`. Para obter mais informações sobre o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION`, consulte a [documentação do banco de dados Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Etapa 3: Definir o período de retenção de log no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

Configure o banco de dados de origem para reter os redo logs arquivados. Considere as seguintes diretrizes:
+ Especifique a duração da retenção de log em horas. O valor mínimo é uma hora.
+ Defina a duração para exceder qualquer tempo de inatividade possível, qualquer período de comunicação possível e qualquer período de problemas de rede possível com a instância de origem. Essa duração permite que o Oracle GoldenGate recupere logs da instância de origem de acordo com a necessidade.
+ Verifique se você tem armazenamento suficiente na instância para os arquivos.

Por exemplo, defina o período de retenção para logs redo arquivados como 24 horas.

```
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
```

Se você não tiver a retenção de logs ativada, ou se o valor de retenção for muito pequeno, receberá uma mensagem de erro semelhante à seguinte.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

Como sua instância de banco de dados retém seus redo logs arquivados, verifique se você tem espaço suficiente para os arquivos. Para ver quanto espaço você usou nas últimas *num\$1hours* horas, use a consulta a seguir, substituindo *num\$1hours* pelo número de horas.

```
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG 
   WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;
```

### Etapa 4: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

O Oracle GoldenGate é executado como usuário de banco de dados e requer os privilégios apropriados para acessar os redo logs e redo logs arquivados do banco de dados de origem. Para concedê-los, crie uma conta do usuário no banco de dados de origem. Para obter mais informações sobre as permissões para uma conta de usuário do GoldenGate, consulte a [documentação do Oracle](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053).

As instruções a seguir criam uma conta do usuário denominada `oggadm1`. 

```
CREATE TABLESPACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password"
   DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

### Etapa 5: Conceder privilégios ao usuário no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

Nessa tarefa, você concede os privilégios de conta necessários para usuários do banco de dados em seu banco de dados de origem.

**Como conceder privilégios de conta no banco de dados de origem**

1. Conceda os privilégios necessários à conta de usuário do Oracle GoldenGate usando o comando SQL `grant` e o procedimento `grant_sys_object` do `rdsadmin.rdsadmin_util`. As instruções a seguir concedem privilégios a um usuário denominado `oggadm1`.

   ```
   GRANT CREATE SESSION, ALTER SESSION TO oggadm1;
   GRANT RESOURCE TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT FLASHBACK ANY TABLE TO oggadm1;
   GRANT SELECT ANY TABLE TO oggadm1;
   GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION;
   EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1');
   GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1;
   GRANT SELECT ON SYS.V_$DATABASE TO oggadm1;
   GRANT ALTER ANY TABLE TO oggadm1;
   ```

1. Conceda os privilégios necessários a uma conta do usuário para ser um administrador do Oracle GoldenGate. Execute o programa PL/SQL a seguir.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'capture',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Para revogar privilégios, use o procedimento `revoke_admin_privilege` no mesmo pacote.

### Etapa 6: Adicionar um alias TNS ao banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

Adicione a entrada a seguir a `$ORACLE_HOME/network/admin/tnsnames.ora` no Oracle Home para ser usada pelo processo `EXTRACT`. Para obter mais informações sobre o arquivo `tnsnames.ora`, consulte a [documentação da Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGSOURCE=
   (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

## Configurar um banco de dados de destino para uso com o Oracle GoldenGate no Amazon RDS
<a name="Appendix.OracleGoldenGate.Target"></a>

Nessa tarefa, você configura uma instância de banco de dados de destino para uso com o Oracle GoldenGate.

**Topics**
+ [

### Etapa 1: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true
](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [

### Etapa 2: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de destino
](#Appendix.OracleGoldenGate.Target.User)
+ [

### Etapa 3: Conceder privilégios de conta no banco de dados de destino
](#Appendix.OracleGoldenGate.Target.Privileges)
+ [

### Etapa 4: Adicionar um alias TNS ao banco de dados de destino
](#Appendix.OracleGoldenGate.Target.TNS)

### Etapa 1: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

Quando você define o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` como `true`, ele permite que os serviços de banco de dados sejam compatíveis com a replicação lógica. Se o banco de dados de origem estiver em uma instância de banco de dados do Amazon RDS, tenha um grupo de parâmetros atribuído à instância de banco de dados com o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` definido como `true`. Para obter mais informações sobre o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION`, consulte a [documentação do banco de dados Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Etapa 2: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de destino
<a name="Appendix.OracleGoldenGate.Target.User"></a>

O Oracle GoldenGate é executado como um usuário do banco de dados e requer os privilégios de banco de dados apropriados. Para garantir que ele tenha esses privilégios, crie uma conta do usuário no banco de dados de destino.

A instrução a seguir cria um usuário denominado `oggadm1`.

```
CREATE TABLESPSACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password" 
   DEFAULT TABLESPACE administrator 
   TEMPORARY TABLESPACE temp;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

### Etapa 3: Conceder privilégios de conta no banco de dados de destino
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

Nessa tarefa, você concede os privilégios de conta necessários para usuários do banco de dados em seu banco de dados de destino.

**Como conceder privilégios de conta no banco de dados de destino**

1. Conceda os privilégios necessários à conta do usuário do Oracle GoldenGate no banco de dados de destino. No exemplo a seguir, conceda privilégios a `oggadm1`.

   ```
   GRANT CREATE SESSION        TO oggadm1;
   GRANT ALTER SESSION         TO oggadm1;
   GRANT CREATE CLUSTER        TO oggadm1;
   GRANT CREATE INDEXTYPE      TO oggadm1;
   GRANT CREATE OPERATOR       TO oggadm1;
   GRANT CREATE PROCEDURE      TO oggadm1;
   GRANT CREATE SEQUENCE       TO oggadm1;
   GRANT CREATE TABLE          TO oggadm1;
   GRANT CREATE TRIGGER        TO oggadm1;
   GRANT CREATE TYPE           TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT CREATE ANY TABLE      TO oggadm1;
   GRANT ALTER ANY TABLE       TO oggadm1;
   GRANT LOCK ANY TABLE        TO oggadm1;
   GRANT SELECT ANY TABLE      TO oggadm1;
   GRANT INSERT ANY TABLE      TO oggadm1;
   GRANT UPDATE ANY TABLE      TO oggadm1;
   GRANT DELETE ANY TABLE      TO oggadm1;
   ```

1. Conceda os privilégios necessários a uma conta do usuário para ser um administrador do Oracle GoldenGate. Execute o programa PL/SQL a seguir.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'apply',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Para revogar privilégios, use o procedimento `revoke_admin_privilege` no mesmo pacote.

### Etapa 4: Adicionar um alias TNS ao banco de dados de destino
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

Adicione a entrada a seguir a `$ORACLE_HOME/network/admin/tnsnames.ora` no Oracle Home para ser usada pelo processo `REPLICAT`. Para bancos de dados multilocação Oracle, o alias TNS deve apontar para o nome do serviço do PDB. Para obter mais informações sobre o arquivo `tnsnames.ora`, consulte a [documentação da Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGTARGET=
    (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

# Trabalhar com os utilitários EXTRACT e REPLICAT do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Os utilitários `EXTRACT` e `REPLICAT` do Oracle GoldenGate trabalham juntos para manter os bancos de dados de origem e destino sincronizados via replicação de transações incrementais usando arquivos de trilha. Todas as alterações que ocorrem no banco de dados de origem são automaticamente detectadas por `EXTRACT`, depois formatadas e transferidas para arquivos de trilha no Oracle GoldenGate on-premises ou no hub de instâncias do Amazon EC2. Após a conclusão da carga inicial, os dados são lidos desses arquivos e replicados para o banco de dados de destino pelo utilitário `REPLICAT`.

## Executar o utilitário EXTRACT do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Extract"></a>

O utilitário `EXTRACT` recupera, converte e gera dados do banco de dados de origem para arquivos de trilha. O processo básico é o seguinte:

1. `EXTRACT` coloca os detalhes da transação em fila na memória ou em armazenamento de disco temporário.

1. O banco de dados de origem confirma a transação.

1. `EXTRACT` grava os detalhes da transação em um arquivo de trilha.

1. O arquivo de trilha roteia esses detalhes para o Oracle GoldenGate on-premises ou o hub da instância do Amazon EC2 e depois para o banco de dados de destino.

As etapas a seguir iniciam o utilitário `EXTRACT`, capturam os dados do `EXAMPLE.TABLE` no banco de dados de origem `OGGSOURCE` e criam os arquivos de trilha. 

**Como executar o utilitário EXTRACT**

1. Configure o arquivo de parâmetro `EXTRACT` no hub do Oracle GoldenGate (on-premises ou na instância do Amazon EC2). A listagem a seguir mostra um exemplo do arquivo de parâmetro `EXTRACT` denominado `$GGHOME/dirprm/eabc.prm`.

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. No hub do Oracle GoldenGate, faça login no banco de dados de origem e execute a interface de linha de comando do Oracle GoldenGate `ggsci`. O exemplo a seguir mostra o formato para login.

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. Adicione dados de transação para ativar o registro em log complementar para a tabela de banco de dados.

   ```
   add trandata EXAMPLE.TABLE
   ```

1. Usando a linha de comando `ggsci`, ative o utilitário `EXTRACT` usando os comandos a seguir.

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. Registre o utilitário `EXTRACT` no banco de dados para que os logs de arquivamento não sejam excluídos. Essa tarefa permite que você recupere transações antigas, não confirmadas, se necessário. Para registrar o utilitário `EXTRACT` no banco de dados, use o comando a seguir.

   ```
   register EXTRACT EABC, DATABASE
   ```

1. Inicie o utilitário `EXTRACT` com o comando a seguir.

   ```
   start EABC
   ```

## Executar o utilitário REPLICAT do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Replicat"></a>

O utilitário `REPLICAT` “envia por push” informações de transação nos arquivos de trilha ao banco de dados de destino.

As etapas a seguir ativam e iniciam o utilitário `REPLICAT` para que ele possa replicar os dados capturados na tabela `EXAMPLE.TABLE` no banco de dados de destino `OGGTARGET`.

**Como executar o utilitário REPLICATE**

1. Configure o arquivo de parâmetro `REPLICAT` no hub do Oracle GoldenGate (on-premises ou na instância do EC2). A listagem a seguir mostra um exemplo do arquivo de parâmetro `REPLICAT` denominado `$GGHOME/dirprm/rabc.prm`.

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

1. Faça login no banco de dados de destino e execute a interface de linha de comando do Oracle GoldenGate (`ggsci`). O exemplo a seguir mostra o formato para login.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Usando a linha de comando `ggsci`, adicione uma tabela de verificação. O usuário indicado deve ser a conta de usuário do Oracle GoldenGate, e não o proprietário do esquema da tabela de destino. O exemplo a seguir cria um ponto de verificação denominado `gg_checkpoint`.

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. Para habilitar o utilitário `REPLICAT`, use o seguinte comando:

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. Inicie o utilitário `REPLICAT` usando o comando a seguir.

   ```
   start RABC
   ```

# Monitorar o Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Ao usar o Oracle GoldenGate para replicação, certifique-se de que o processo do Oracle GoldenGate esteja ativo e em execução e que os bancos de dados de origem e destino estejam sincronizados. Você pode usar as seguintes ferramentas de monitoramento:
+ O [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) é um serviço de monitoramento usado nesse padrão para monitorar os logs de erros do GoldenGate.
+ O [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) é um serviço de notificação de mensagens usado nesse padrão para enviar notificações por e-mail.

Para obter instruções detalhadas, consulte [Monitorar os logs do Oracle GoldenGate usando o Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html).

# Solução de problemas do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

Esta seção explica os problemas mais comuns ao usar o Oracle GoldenGate com o Amazon RDS para Oracle.

**Topics**
+ [

## Erro ao abrir um redo log online
](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [

## O Oracle GoldenGate parece estar devidamente configurado, mas a replicação não está funcionando
](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [

## REPLICAT integrado lento devido a consulta no SYS. “\$1DBA\$1APPLY\$1CDR\$1INFO”
](#Appendix.OracleGoldenGate.IR)

## Erro ao abrir um redo log online
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

Configure os bancos de dados para reter os redo logs arquivados. Considere as seguintes diretrizes:
+ Especifique a duração da retenção de log em horas. O valor mínimo é uma hora.
+ Defina a duração para exceder qualquer tempo de inatividade possível, qualquer período de comunicação possível e qualquer período de problemas de rede possível com a instância de banco de dados de origem. Essa duração permite que o Oracle GoldenGate recupere logs da instância de banco de dados de origem de acordo com a necessidade.
+ Verifique se você tem armazenamento suficiente na instância para os arquivos.

Se você não tiver a retenção de logs ativada, ou se o valor de retenção for muito pequeno, receberá uma mensagem de erro semelhante à seguinte.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

## O Oracle GoldenGate parece estar devidamente configurado, mas a replicação não está funcionando
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

Para tabelas pré-existentes, você precisa especificar o SCN do qual o Oracle GoldenGate trabalha.

**Como corrigir esse problema**

1. Faça login no banco de dados de origem e execute a interface de linha de comando do Oracle GoldenGate (`ggsci`). O exemplo a seguir mostra o formato para login.

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. Usando a linha de comando `ggsci`, configure o SCN inicial para o processo `EXTRACT`. O exemplo a seguir define o SCN como 223274 para `EXTRACT`.

   ```
   ALTER EXTRACT EABC SCN 223274
   start EABC
   ```

1. Faça login no banco de dados de destino. O exemplo a seguir mostra o formato para login.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Usando a linha de comando `ggsci`, configure o SCN inicial para o processo `REPLICAT`. O exemplo a seguir define o SCN como 223274 para `REPLICAT`.

   ```
   start RABC atcsn 223274
   ```

## REPLICAT integrado lento devido a consulta no SYS. “\$1DBA\$1APPLY\$1CDR\$1INFO”
<a name="Appendix.OracleGoldenGate.IR"></a>

O Oracle GoldenGate Conflict Detection and Resolution (CDR) fornece rotinas básicas de resolução de conflitos. Por exemplo, o CDR pode resolver um conflito exclusivo para uma instrução `INSERT`.

Quando o CDR resolve um conflito, ele pode inserir registros na tabela de exceção `_DBA_APPLY_CDR_INFO` temporariamente. O `REPLICAT` integrado exclui esses registros posteriormente. Em um cenário raro, o `REPLICAT` integrado pode processar um grande número de colisões, mas um novo `REPLICAT` integrado não o substitui. Em vez de serem removidas, as linhas `_DBA_APPLY_CDR_INFO` existentes ficam órfãs. Todos os novos processos `REPLICAT` integrados abrandam porque estão consultando linhas órfãs no `_DBA_APPLY_CDR_INFO`.

Para remover todas as linhas de `_DBA_APPLY_CDR_INFO`, use o procedimento `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info` do Amazon RDS. Este procedimento é lançado como parte da versão de outubro de 2020 e atualização de patch. O procedimento está disponível nas seguintes versões do banco de dados:
+ [ Version 21.0.0.0.ru-2022-01.rur-2022-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-21-0.html#oracle-version-RU-RUR.21.0.0.0.ru-2022-01.rur-2022-01.r1) e posterior
+ [ Version 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) e posterior

O exemplo a seguir trunca a tabela `_DBA_APPLY_CDR_INFO`.

```
SET SERVEROUTPUT ON SIZE 2000
EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;
```

# Usar o Oracle Repository Creation Utility no RDS for Oracle
<a name="Oracle.Resources.RCU"></a>

Você pode usar o Amazon RDS para hospedar uma instância de banco de dados do RDS for Oracle que contém os esquemas para oferecer compatibilidade com seus componentes do Oracle Fusion Middleware. Para poder usar os componentes do Fusion Middleware, você deve criar e preencher esquemas para eles no seu banco de dados. Você cria e preenche os esquemas usando o Oracle Repository Creation Utility (RCU).

## Versões e opções de licenciamento compatíveis para RCU
<a name="Oracle.Resources.RCU.Versions"></a>

O Amazon RDS não oferece suporte para o Oracle Repository Creation Utility (RCU) versão 12c somente. Você pode usar o RCU nas seguintes configurações: 
+ RCU 12c com Oracle Database 21c
+ RCU 12c com Oracle Database 19c

Antes de poder usar o RCU, faça o seguinte:
+ Obtenha uma licença para o Oracle Fusion Middleware.
+ Siga as diretrizes de licenciamento da Oracle para o banco de dados Oracle que hospeda o repositório. Para obter mais informações, consulte o [Manual do usuário de informações sobre o licenciamento do Oracle Fusion Middleware](https://docs.oracle.com/en/middleware/fusion-middleware/fmwlc/) na documentação da Oracle.

O Fusion MiddleWare é compatível com repositórios no Oracle Database Enterprise Edition e Standard Edition 2. A Oracle recomenda a Enterprise Edition para instalações de produção que exigem particionamento e instalações que exigem a reconstrução do índice online.

Antes de criar sua instância do RDS for Oracle, confirme a versão do banco de dados Oracle que você precisa usar para oferecer compatibilidade com os componentes que deseja implantar. Para encontrar os requisitos para os componentes e as versões do Fusion Middleware que deseja implantar, use a Matriz de Certificação. Para obter mais informações, consulte [Configurações do sistema compatíveis com o Oracle Fusion Middleware](http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html) na documentação da Oracle. 

O Amazon RDS oferece suporte para atualizações de versões do banco de dados Oracle conforme necessário. Para obter mais informações, consulte [Atualizar a versão de mecanismo de uma instância de banco de dados ](USER_UpgradeDBInstance.Upgrading.md). 

## Requisitos e limitações do RCU
<a name="Oracle.Resources.RCU.BeforeYouBegin"></a>

Para usar o RCU, você precisa de um Amazon VPC. Sua instância de banco de dados do Amazon RDS precisa estar disponível somente para os componentes do Fusion Middleware, e não para a internet pública. Portanto, hospede sua instância de banco de dados do Amazon RDS em uma sub-rede privada, fornecendo melhor segurança. Você também precisa de uma instância de banco de dados do RDS for Oracle. Para obter mais informações, consulte [Criar uma instância de banco de dados Oracle e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.Oracle.md).

Você pode armazenar os esquemas para qualquer componente do Fusion Middleware na sua instância de banco de dados do Amazon RDS. Os esquemas a seguir foram verificados para instalar corretamente: 
+ Analytics (ACTIVITIES)
+ Audit Services (IAU)
+ Audit Services Append (IAU\$1APPEND)
+ Audit Services Viewer (IAU\$1VIEWER)
+ Discussions (DISCUSSIONS)
+ Metadata Services (MDS)
+ Oracle Business Intelligence (BIPLATFORM)
+ Oracle Platform Security Services (OPSS)
+ Portal and Services (WEBCENTER)
+ Portlet Producers (PORTLET)
+ Service Table (STB)
+ SOA Infrastructure (SOAINFRA)
+ User Messaging Service (UCSUMS)
+ WebLogic Services (WLS)

## Diretrizes para usar o RCU
<a name="Oracle.Resources.RCU.Recommendations"></a>

Veja a seguir algumas recomendações para trabalhar com a sua instância de banco de dados neste cenário: 
+ Recomendamos que você use o Multi-AZ para cargas de trabalho de produção. Para mais informações sobre como trabalhar com várias zonas de disponibilidade, consulte [Regiões, zonas de disponibilidade e Local Zones](Concepts.RegionsAndAvailabilityZones.md). 
+ Para segurança adicional, a Oracle recomenda que você use o Transparent Data Encryption (TDE) para criptografar seus dados em repouso. Se você possui uma licença do Enterprise Edition que inclui a opção de segurança avançada, poderá habilitar a criptografia em repouso usando a opção TDE. Para obter mais informações, consulte [Oracle Transparent Data Encryption](Appendix.Oracle.Options.AdvSecurity.md). 

  O Amazon RDS também fornece uma opção de criptografia em repouso para todas as edições de banco de dados. Para obter mais informações, consulte [Criptografar recursos do Amazon RDS](Overview.Encryption.md). 
+ Configure seus security groups de VPC para permitir a comunicação entre seus servidores de aplicativos e sua instância de banco de dados do Amazon RDS. Os servidores de aplicativos que hospedam os componentes do Fusion Middleware podem estar no Amazon EC2 ou no ambiente local. 

## Executando o RCU
<a name="Oracle.Resources.RCU.Installing"></a>

Para criar e preencher os esquemas para dar suporte aos seus componentes do Fusion Middleware, use o Oracle Repository Creation Utility (RCU). Você pode executar o RCU de diferentes maneiras.

**Topics**
+ [

### Executar RCU usando a linha de comando em uma etapa
](#Oracle.Resources.RCU.SilentSingle)
+ [

### Executar o RCU usando a linha de comando em várias etapas
](#Oracle.Resources.RCU.SilentMulti)
+ [

### Executar o RCU no modo interativo
](#Oracle.Resources.RCU.Interactive)

### Executar RCU usando a linha de comando em uma etapa
<a name="Oracle.Resources.RCU.SilentSingle"></a>

Se você não precisa editar nenhum dos seus esquemas antes de os preencher, pode executar o RCU em uma única etapa. Caso contrário, consulte a seção a seguir para executar o RCU em várias etapas. 

Você pode executar o RCU no modo silencioso usando o parâmetro da linha de comando `-silent`. Quando você executa o RCU no modo silencioso, pode evitar inserir senhas na linha de comando mediante a criação de um arquivo de texto contendo as senhas. Crie um arquivo de texto com a senha para `dbUser` na primeira linha e a senha para cada componente nas linhas subsequentes. Você especifica o nome do arquivo de senha como o último parâmetro para o comando RCU. 

**Example**  
O exemplo a seguir cria e preenche esquemas para o componente SOA Infrastructure (e suas dependências) em uma única etapa.   
Para Linux, macOS ou Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```

Para obter mais informações, consulte [Execução do utilitário de criação de repositórios a partir da linha de comando](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248) na documentação da Oracle. 

### Executar o RCU usando a linha de comando em várias etapas
<a name="Oracle.Resources.RCU.SilentMulti"></a>

Para editar manualmente seus scripts de esquema, execute o RCU em várias etapas: 

1. Execute o RCU no modo **Prepare Scripts for System Load (Preparar scripts para o carregamento do sistema)** usando o parâmetro da linha de comando `-generateScript` para criar os scripts para os seus esquemas. 

1. Edite e execute manualmente o script gerad `script_systemLoad.sql`. 

1. Execute o RCU novamente no modo **Perform Product Load (Realizar o carregamento do produto)** usando o parâmetro da linha de comando `-dataLoad` para preencher os esquemas. 

1. Execute o script de limpeza gerado `script_postDataLoad.sql`.

Para executar o RCU no modo silencioso, especifique o parâmetro da linha de comando `-silent`. Quando você executa o RCU no modo silencioso, pode evitar digitar senhas na linha de comando, criando um arquivo de texto contendo as senhas. Crie um arquivo de texto com a senha para `dbUser` na primeira linha e a senha para cada componente nas linhas subsequentes. Especifique o nome do arquivo de senha como o último parâmetro para o comando do RCU. 

**Example**  
O exemplo a seguir cria scripts de esquema para o componente SOA Infrastructure (e suas dependências).   
Para Linux, macOS ou Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-generateScript \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
[-encryptTablespace true] \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-scriptLocation /tmp/rcuscripts \
-f < /tmp/passwordfile.txt
```
Agora, você pode editar o script gerado, conectar-se à sua instância de banco de dados Oracle e executar o script. O script gerado se chama `script_systemLoad.sql`. Para obter informações sobre como se conectar à sua instância de banco de dados Oracle, consulte [Etapa 3: Conectar seu cliente SQL a uma instância de banco de dados Oracle.](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle).   
O exemplo a seguir preenche os esquemas do componente SOA Infrastructure (e suas dependências).   
Para Linux, macOS ou Unix:  

```
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-dataLoad \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```
Para terminar, você se conecta à sua instância de banco de dados Oracle e executa o script de limpeza. O nome do script é `script_postDataLoad.sql`. 

Para obter mais informações, consulte [Execução do utilitário de criação de repositórios a partir da linha de comando](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248) na documentação da Oracle. 

### Executar o RCU no modo interativo
<a name="Oracle.Resources.RCU.Interactive"></a>

Para usar a interface de usuário gráfica do RCU, execute o RCU no modo interativo. Inclua o parâmetro `-interactive` e omita o parâmetro `-silent`. Para obter mais informações, consulte [Noções básicas sobre as telas do utilitário de criação de repositórios](https://docs.oracle.com/middleware/1213/core/RCUUG/rcu_screens.htm#RCUUG143) na documentação da Oracle. 

**Example**  
O exemplo a seguir inicia o RCU no modo interativo e pré-preenche as informações de conexão.   
Para Linux, macOS ou Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-interactive \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal
```

## Solução de problemas do RCU
<a name="Oracle.Resources.RCU.KnownIssues"></a>

Esteja ciente dos seguintes problemas.

**Topics**
+ [

### Oracle Managed Files (OMF)
](#Oracle.Resources.RCU.KnownIssues.OMF)
+ [

### Privilégios de objeto
](#Oracle.Resources.RCU.KnownIssues.object-privs)
+ [

### Enterprise Scheduler Service
](#Oracle.Resources.RCU.KnownIssues.Scheduler)

### Oracle Managed Files (OMF)
<a name="Oracle.Resources.RCU.KnownIssues.OMF"></a>

O Amazon RDS usa arquivos de dados OMF para simplificar o gerenciamento do armazenamento. Você pode personalizar atributos de espaço de tabela, como o gerenciamento do tamanho e da extensão. No entanto, se você especificar um nome de arquivo de dados ao executar o RCU, o código do espaço de tabela falhará com `ORA-20900`. É possível usar o RCU com o OMF das seguintes maneiras: 
+ No RCU 12.2.1.0 e versões posteriores, use o parâmetro de linha de comando `-honorOMF`. 
+ No RCU 12.1.0.3 e versões posteriores, use várias etapas e edite o script gerado. Para obter mais informações, consulte [Executar o RCU usando a linha de comando em várias etapas](#Oracle.Resources.RCU.SilentMulti). 

### Privilégios de objeto
<a name="Oracle.Resources.RCU.KnownIssues.object-privs"></a>

Como o Amazon RDS é um serviço gerenciado, você não tem acesso completo `SYSDBA` à sua instância de banco de dados do RDS para Oracle. No entanto, o RCU 12c oferece suporte a usuários com privilégios menores. Na maioria dos casos, o privilégio de usuário mestre é suficiente para criar repositórios. 

A conta principal pode conceder diretamente privilégios que já foram concedidos `WITH GRANT OPTION`. Em alguns casos, ao tentar conceder privilégios de objeto `SYS`, o RCU pode falhar com `ORA-01031`. Você pode tentar novamente e executar o procedimento armazenado `rdsadmin_util.grant_sys_object`, conforme mostrado no exemplo a seguir:

```
BEGIN
  rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','MY_DBA','SELECT');
END;
/
```

Se você tentar conceder privilégios `SYS` no objeto `SCHEMA_VERSION_REGISTRY`, a operação poderá falhar com `ORA-20199: Error in rdsadmin_util.grant_sys_object`. Você pode qualificar a tabela `SCHEMA_VERSION_REGISTRY$` e a visualização `SCHEMA_VERSION_REGISTRY` com o nome do proprietário do esquema, que é `SYSTEM`, e repetir a operação. Como alternativa, você pode criar um sinônimo. Faça login como usuário principal e execute as seguintes instruções:

```
CREATE OR REPLACE VIEW SYSTEM.SCHEMA_VERSION_REGISTRY 
  AS SELECT * FROM SYSTEM.SCHEMA_VERSION_REGISTRY$;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY FOR SYSTEM.SCHEMA_VERSION_REGISTRY;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY$ FOR SCHEMA_VERSION_REGISTRY;
```

### Enterprise Scheduler Service
<a name="Oracle.Resources.RCU.KnownIssues.Scheduler"></a>

Quando você usa o RCU para remover um repositório do Enterprise Scheduler Service, o RCU pode falhar com `Error: Component drop check failed`.

# Configurando o Oracle Connection Manager em uma instância do Amazon EC2
<a name="oracle-cman"></a>

O Oracle Connection Manager (CMAN) é um servidor de proxy que encaminha solicitações de conexão para servidores de banco de dados ou outros servidores proxy. Você pode usar o CMAN para configurar o seguinte:

Controle de acesso  
Você pode criar regras que filtram solicitações de clientes especificadas pelo usuário e aceitam outras.

Multiplexing de sessão  
Você pode canalizar várias sessões de clientes por meio de uma conexão de rede para um destino de servidor compartilhado.

Normalmente, o CMAN reside em um host separado do servidor de banco de dados e dos hosts do cliente. Para obter mais informações, consulte [Configuring Oracle Connection Manager](https://docs.oracle.com/en/database/oracle/oracle-database/19/netag/configuring-oracle-connection-manager.html#GUID-AF8A511E-9AE6-4F4D-8E58-F28BC53F64E4) (Configurar o Oracle Connection Manager) na documentação do Oracle Database.

**Topics**
+ [

## Versões e opções de licenciamento compatíveis para CMAN
](#oracle-cman.Versions)
+ [

## Requisitos e limitações do CMAN
](#oracle-cman.requirements)
+ [

## Configurando o CMAN
](#oracle-cman.configuring-cman)

## Versões e opções de licenciamento compatíveis para CMAN
<a name="oracle-cman.Versions"></a>

O CMAN oferece suporte à Enterprise Edition de todas as versões do Oracle Database que o Amazon RDS oferece suporte. Para obter mais informações, consulte [Versões do RDS para Oracle](Oracle.Concepts.database-versions.md).

Você pode instalar o Oracle Connection Manager em um host separado do host em que o Oracle Database está instalado. Você não precisa de uma licença separada para o host que executa o CMAN.

## Requisitos e limitações do CMAN
<a name="oracle-cman.requirements"></a>

Para fornecer uma experiência totalmente gerenciada, o Amazon RDS restringe o acesso ao sistema operacional. Você não pode modificar parâmetros de banco de dados que exigem acesso ao sistema operacional. Assim, o Amazon RDS não oferece suporte a recursos do CMAN que exigem que você faça login no sistema operacional.

## Configurando o CMAN
<a name="oracle-cman.configuring-cman"></a>

Ao configurar o CMAN, você executa a maior parte do trabalho fora do banco de dados do RDS for Oracle.

**Topics**
+ [

### Etapa 1: configurar o CMAN em uma instância do Amazon EC2 na mesma VPC da instância do RDS for Oracle
](#oracle-cman.configuring-cman.vpc)
+ [

### Etapa 2: configurar parâmetros de banco de dados para o CMAN
](#oracle-cman.configuring-cman.parameters)
+ [

### Etapa 3: associar a sua instância de banco de dados ao grupo de parâmetros.
](#oracle-cman.configuring-cman.parameter-group)

### Etapa 1: configurar o CMAN em uma instância do Amazon EC2 na mesma VPC da instância do RDS for Oracle
<a name="oracle-cman.configuring-cman.vpc"></a>

Para saber como configurar o CMAN, siga as instruções detalhadas na postagem do blog [Configurando e usando o Oracle Connection Manager no Amazon EC2 para Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/configuring-and-using-oracle-connection-manager-on-amazon-ec2-for-amazon-rds-for-oracle/).

### Etapa 2: configurar parâmetros de banco de dados para o CMAN
<a name="oracle-cman.configuring-cman.parameters"></a>

Para recursos do CMAN, como Modo Traffic Director e multiplexação de sessão, defina o parâmetro `REMOTE_LISTENER` do endereço da instância do CMAN em um grupo de parâmetros de banco de dados. Considere o seguinte cenário:
+ A instância CMAN reside em um host com endereço IP `10.0.159.100` e usa porta `1521`.
+ Os bancos de dados `orcla`, `orclb`, e `orclc` residem em instâncias de banco de dados do RDS for Oracle separadas.

A tabela a seguir mostra como definir o valor `REMOTE_LISTENER`. O valor `LOCAL_LISTENER` é definido automaticamente pelo Amazon RDS.


| Nome da instância de banco de dados | IP da instância de banco de dados | Valor do ouvinte local (definido automaticamente) | Valor de ouvinte remoto (definido por usuário) | 
| --- | --- | --- | --- | 
| orcla | 10.0.159.200 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.200)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclb | 10.0.159.300 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.300)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclc | 10.0.159.400 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.400)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 

### Etapa 3: associar a sua instância de banco de dados ao grupo de parâmetros.
<a name="oracle-cman.configuring-cman.parameter-group"></a>

Crie ou modifique sua instância de banco de dados para usar o grupo de parâmetros configurado no [Etapa 2: configurar parâmetros de banco de dados para o CMAN](#oracle-cman.configuring-cman.parameters). Para obter mais informações, consulte [Associar um grupo de parâmetros de banco de dados a uma instância de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Associating.md).

# Instalar um Siebel Database no Oracle no Amazon RDS
<a name="Oracle.Resources.Siebel"></a>

Você pode usar o Amazon RDS para hospedar um Siebel Database em uma instância de banco de dados Oracle. O Siebel Database faz parte da arquitetura de aplicativos Siebel Customer Relationship Management (CRM). Para ver uma ilustração, consulte [Arquitetura genérica do Siebel Business Application](https://docs.oracle.com/cd/E63029_01/books/PerformTun/performtun_archinfra.htm#i1043361). 

Use o tópico a seguir para ajudar a configurar o Siebel Database em uma instância de banco de dados Oracle no Amazon RDS. Você também pode descobrir como usar a Amazon Web Services para dar suporte aos outros componentes exigidos pela arquitetura de aplicativos Siebel CRM. 

**nota**  
Para instalar um Siebel Database no Oracle no Amazon RDS, você precisa usar a conta de usuário mestre. Você não precisa do privilégio `SYSDBA`. O privilégio de usuário mestre é suficiente. Para obter mais informações, consulte [Privilégios da conta de usuário mestre](UsingWithRDS.MasterAccounts.md). 

## Licenciamento e versões
<a name="Oracle.Resources.Siebel.Versions"></a>

Para instalar um Siebel Database no Amazon RDS, você deve usar sua própria licença Oracle Database e sua própria licença Siebel. Você deve ter a licença Oracle Database apropriada (com with Software Update License and Support) para a classe da instância de banco de dados e a edição do Oracle Database. Para obter mais informações, consulte [Opções de licenciamento do RDS para Oracle](Oracle.Concepts.Licensing.md). 

O Oracle Database Enterprise Edition é a única edição certificada pela Siebel para esse cenário. O Amazon RDS oferece suporte ao Siebel CRM versão 15.0 ou 16.0.

O Amazon RDS oferece suporte para atualizações de versões do banco de dados. Para obter mais informações, consulte [Atualizar a versão de mecanismo de uma instância de banco de dados ](USER_UpgradeDBInstance.Upgrading.md). 

## Antes de começar
<a name="Oracle.Resources.Siebel.BeforeYouBegin"></a>

Antes de começar, você precisa de uma Amazon VPC. Como a instância de banco de dados do Amazon RDS precisa estar disponível somente para o Siebel Enterprise Server, e não para a Internet pública, a instância de banco de dados do Amazon RDS é hospedada em uma sub-rede privada, oferecendo maior segurança. Para obter informações sobre como criar uma Amazon VPC para uso com o Siebel CRM, consulte [Criar uma instância de banco de dados Oracle e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.Oracle.md). 

Antes de começar, você também precisa de uma instância de banco de dados Oracle. Para obter informações sobre como criar uma instância de banco de dados Oracle para uso com o Siebel CRM, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 

## Instalar e configurar um Siebel Database
<a name="Oracle.Resources.Siebel.Database.Siebel"></a>

Depois de criar sua instância de banco de dados Oracle, você pode instalar o Siebel Database. Você instala o banco de dados criando contas de proprietário e administrador de tabelas, instalando procedimentos armazenados e funções e executando o Siebel Database Configuration Wizard. Para obter mais informações, consulte [Instalação do Siebel Database no RDBMS](https://docs.oracle.com/cd/E63029_01/books/SiebInstWIN/SiebInstCOM_ConfigDB.html). 

Para executar o Siebel Database Configuration Wizard, você precisa usar a conta de usuário mestre. Você não precisa do privilégio `SYSDBA`. O privilégio de usuário mestre é suficiente. Para obter mais informações, consulte [Privilégios da conta de usuário mestre](UsingWithRDS.MasterAccounts.md). 

## Usar outros recursos do Amazon RDS com um Siebel Database
<a name="Oracle.Resources.Siebel.Miscellaneous"></a>

Depois de criar sua instância de banco de dados Oracle, você pode usar recursos adicionais do Amazon RDS para ajudá-lo a personalizar seu Siebel Database.

### Coletar estatísticas com a opção Oracle Statspack
<a name="Oracle.Resources.Siebel.Options"></a>

Você pode adicionar recursos à instância de banco de dados com o uso de opções em grupos de opções de banco de dados. Quando criou sua instância de banco de dados Oracle, você usou o grupo de opções de banco de dados padrão. Se quiser adicionar recursos ao seu banco de dados, você pode criar um novo grupo de opções para a sua instância de banco de dados. 

Se você deseja coletar estatísticas de desempenho sobre o seu Siebel Database, pode adicionar o recurso Oracle Statspack. Para obter mais informações, consulte [Oracle Statspack](Appendix.Oracle.Options.Statspack.md). 

Algumas alterações de opções são aplicadas imediatamente e outras são aplicadas durante a próxima janela de manutenção da instância de banco de dados. Para obter mais informações, consulte [Trabalhar com grupos de opções](USER_WorkingWithOptionGroups.md). Depois de criar um grupo de opções personalizado, modifique sua instância de banco de dados para anexá-lo. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

### Ajuste de performance com parâmetros
<a name="Oracle.Resources.Siebel.Parameters"></a>

Você gerencia sua configuração de mecanismo de banco de dados com o uso dos parâmetros em um parameter group de banco de dados. Quando criou sua instância de banco de dados Oracle, você usou o parameter group de banco de dados padrão. Se quiser personalizar sua configuração de banco de dados, você pode criar um novo parameter group para a sua instância de banco de dados. 

Quando você altera um parâmetro, dependendo do tipo de parâmetro, as alterações são aplicadas imediatamente ou após a reinicialização manual da instância de banco de dados. Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). Depois de criar um parameter group personalizado, modifique sua instância de banco de dados para anexá-lo. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

Para otimizar sua instância de banco de dados Oracle para o Siebel CRM, você pode personalizar determinados parâmetros. A tabela a seguir mostra algumas configurações de parâmetros recomendadas. Para obter mais informações sobre como ajustar a performance do Siebel CRM, consulte o [Siebel CRM Performance Tuning Guide](https://docs.oracle.com/cd/E63029_01/books/PerformTun/toc.htm) (Guia de ajuste da performance do Siebel CRM). 


****  

| Nome do parâmetro | Valor padrão | Orientação para a performance ideal do Siebel CRM | 
| --- | --- | --- | 
| \$1always\$1semi\$1join | `CHOOSE` | `OFF`  | 
| \$1b\$1tree\$1bitmap\$1plans | `TRUE` | `FALSE`  | 
| \$1like\$1with\$1bind\$1as\$1equality | `FALSE` | `TRUE`  | 
| \$1no\$1or\$1expansion | `FALSE` | `FALSE`  | 
| \$1optimizer\$1join\$1sel\$1sanity\$1check | `TRUE` | `TRUE`  | 
| \$1optimizer\$1max\$1permutations | 2000 | 100  | 
| \$1optimizer\$1sortmerge\$1join\$1enabled | `TRUE` | `FALSE`  | 
| \$1partition\$1view\$1enabled | `TRUE` | `FALSE`  | 
| open\$1cursors | `300` | No mínimo **2000**.  | 

### Criar snapshots
<a name="Oracle.Resources.Siebel.Snapshots"></a>

Depois de criar seu Siebel Database, você pode copiar o banco de dados usando os recursos de snapshot do Amazon RDS. Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md) e [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md). 

## Suporte para outros componentes do Siebel CRM
<a name="Oracle.Resources.Siebel.OtherComponents"></a>

Além do seu Siebel Database, você também pode usar a Amazon Web Services para dar suporte aos outros componentes da sua arquitetura de aplicativos Siebel CRM. Você pode encontrar mais informações sobre o suporte fornecido pela Amazon AWS para componentes adicionais do Siebel CRM na tabela a seguir. 


****  

| Componente do Siebel CRM | Amazon AWS Support | 
| --- | --- | 
| Siebel Enterprise(com um ou mais Siebel Servers) |  Você pode hospedar seus Siebel Servers em instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Você pode usar o Amazon EC2 para iniciar quantos servidores virtuais forem necessários. Usando o Amazon EC2, você pode escalar facilmente para cima ou para baixo de forma a lidar com mudanças nos requisitos. Para obter mais informações, consulte [O que é o Amazon EC2?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)  Você pode colocar seus servidores na mesma VPC com sua instância de banco de dados e usar o security group da VPC para acessar o banco de dados. Para obter mais informações, consulte [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md).   | 
| Servidores da web(com Siebel Web Server Extensions) |  Você pode instalar vários Servidores da Web em várias instâncias do EC2. Você pode usar o Elastic Load Balancing para distribuir o tráfego de entrada entre as instâncias. Para obter mais informações, consulte [O que é o Elastic Load Balancing?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elastic-load-balancing.html)   | 
| Siebel Gateway Name Server |  Você pode hospedar seu Siebel Gateway Name Server em uma instância do EC2. Em seguida, pode colocar seu servidor na mesma VPC com a instância de banco de dados e usar o security group da VPC para acessar o banco de dados. Para obter mais informações, consulte [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md).   | 

# Notas de lançamento do mecanismo Oracle Database
<a name="USER_Oracle_Releases"></a>

As atualizações feitas nas instâncias de banco de dados do Amazon RDS for Oracle as mantêm atualizadas. Caso aplique atualizações, fique tranquilo porque a instância de banco de dados está executando uma versão do software de banco de dados que foi submetida a testes pela Oracle e pela Amazon. Não oferecemos suporte à aplicação de patches únicos em instâncias de banco de dados individuais do RDS para Oracle.

Você pode especificar qualquer versão atualmente compatível do Oracle Database ao criar uma instância de banco de dados. Você pode especificar a versão principal, como o Oracle Database 19c, e qualquer versão secundária compatível para a versão principal especificada. Se nenhuma versão for especificada, o Amazon RDS usará uma versão compatível por padrão, geralmente a versão mais recente. Se uma versão principal for especificada, mas uma versão secundária não, o Amazon RDS usará por padrão um lançamento recente da versão principal que você especificou. Para ver uma lista de versões compatíveis e padrões para instâncias de banco de dados recém-criadas, use o comando da AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html).

Para obter detalhes sobre as versões do Oracle Database compatíveis com o Amazon RDS, consulte [https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html).