

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