

# Usar software de terceiros com a instância de banco de dados do Oracle
<a name="Oracle.Resources"></a>

É possível hospedar uma instância de banco de dados do RDS para Oracle que seja compatível com ferramentas e software de terceiros.

**Topics**
+ [Usar o Oracle GoldenGate com o Amazon RDS para Oracle](Appendix.OracleGoldenGate.md)
+ [Usar o Oracle Repository Creation Utility no RDS for Oracle](Oracle.Resources.RCU.md)
+ [Configurando o Oracle Connection Manager em uma instância do Amazon EC2](oracle-cman.md)
+ [Instalar um Siebel Database no Oracle no Amazon RDS](Oracle.Resources.Siebel.md)

# Usar o Oracle GoldenGate com o Amazon RDS para Oracle
<a name="Appendix.OracleGoldenGate"></a>

O Oracle GoldenGate coleta, replica e gerencia dados transacionais entre bancos de dados. Ele é um processo de captura de dados de alterações (CDC) baseado em log e um pacote de software de replicação usado com bancos de dados para sistemas de processamento de transações online (OLTP). O Oracle GoldenGate cria arquivos de trilha que contêm os dados alterados mais recentes do banco de dados de origem. Depois, ele envia esses arquivos ao servidor, onde um processo converte o arquivo de trilha em SQL padrão para ser aplicado ao banco de dados de destino.

O Oracle GoldenGate com RDS para Oracle é compatível com seguintes recursos:
+ Replicação de banco de dados ativo-ativo
+ Recuperação de desastres
+ Proteção de dados
+ Replicação em regiões e entre regiões
+ Migração e upgrades com tempo de inatividade zero
+ Replicação de dados entre uma instância de banco de dados do RDS para Oracle e um banco de dados que não seja Oracle
**nota**  
Para obter uma lista de bancos de dados compatíveis, consulte [Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html) (Configurações do sistema compatíveis com o Oracle Fusion Middleware) na documentação da Oracle.

Você pode usar o Oracle GoldenGate com RDS para Oracle para atualizar para as versões principais do banco de dados Oracle. Por exemplo, é possível usar o Oracle GoldenGate para atualizar de um banco de dados on-premises do Oracle Database 11g para o Oracle Database 19c em uma instância de banco de dados do Amazon RDS.

**Topics**
+ [Versões e opções de licenciamento com suporte para o Oracle GoldenGate](#Appendix.OracleGoldenGate.licensing)
+ [Requisitos e limitações do Oracle GoldenGate](#Appendix.OracleGoldenGate.requirements)
+ [Arquitetura do Oracle GoldenGate](Appendix.OracleGoldenGate.Overview.md)
+ [Configurar o Oracle GoldenGate](Appendix.OracleGoldenGate.setting-up.md)
+ [Trabalhar com os utilitários EXTRACT e REPLICAT do Oracle GoldenGate](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [Monitorar o Oracle GoldenGate](Appendix.OracleGoldenGate.Monitoring.md)
+ [Solução de problemas do Oracle GoldenGate](Appendix.OracleGoldenGate.Troubleshooting.md)

## Versões e opções de licenciamento com suporte para o Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.licensing"></a>

É possível usar a Standard Edition 2 (SE2) ou a Enterprise Edition (EE) do RDS para Oracle com Oracle GoldenGate versão 12c e posterior. É possível usar os seguintes recursos do Oracle GoldenGate:
+ O Oracle GoldenGate Remote Capture (extração) é compatível.
+ A captura (extração) é compatível com instâncias de banco de dados do RDS para Oracle que usam a arquitetura tradicional de banco de dados não CDB. A captura remota de PDB do Oracle GoldenGate é compatível com CDBs que executam o Oracle Database 21c ou o Oracle Database 19c versão 19.0.0.0.ru-2024-04.rur-2024-04.r1 ou posterior.
+ O Oracle GoldenGate Remote Delivery (replicat) é compatível com o RDS para instâncias de banco de dados Oracle que usam arquiteturas não CDB ou CDB. A entrega remota é compatível com a replicação integrada, replicação paralela, replicação coordenada e replicação clássica.
+ O RDS da Oracle é compatível com as arquiteturas Clássica e de Microsserviço do Oracle GoldenGate.
+ A replicação de valores do Oracle GoldenGate DDL e Sequence é compatível com o uso do modo de captura integrado.

Você é responsável por gerenciar o licenciamento (BYOL) do Oracle GoldenGate para usá-lo com o Amazon RDS em todas as Regiões da AWS. Para obter mais informações, consulte [Opções de licenciamento do RDS para Oracle](Oracle.Concepts.Licensing.md).

## Requisitos e limitações do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.requirements"></a>

Ao trabalhar do Oracle GoldenGate e RDS for Oracle, considere os seguintes requisitos e limitações: 
+ Você é responsável por configurar e gerenciar o Oracle GoldenGate para usar com o RDS para Oracle. 
+ Você é responsável por configurar uma versão do Oracle GoldenGate certificada com os bancos de dados de origem e de destino. Para obter mais informações, consulte [Configurações do sistema compatíveis com o Oracle Fusion Middleware](https://www.oracle.com/middleware/technologies/fusion-certification.html) na documentação da Oracle.
+ Você pode usar o Oracle GoldenGate em vários ambientes da AWSdiferentes para diversos casos de uso. Se você tiver um problema de suporte relacionado ao Oracle GoldenGate, entre em contato com os Serviços de Suporte da Oracle.
+ É possível usar o Oracle GoldenGate em instâncias de banco de dados do RDS para Oracle que usam a Oracle Transparent Data Encryption (TDE). Para manter a integridade dos dados replicados, configure a criptografia no hub do Oracle GoldenGate usando volumes criptografados do Amazon EBS ou criptografia de arquivos de trilha. Configure também a criptografia para dados enviados entre o hub do Oracle GoldenGate e as instâncias de banco de dados de fonte e destino. As instâncias de banco de dados do RDS for Oracle são compatíveis com a criptografia com [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md) ou [Oracle Native Network Encryption](Appendix.Oracle.Options.NetworkEncryption.md).

# Arquitetura do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Overview"></a>

A arquitetura do GoldenGate para uso com o Amazon RDS consiste nos seguintes módulos desacoplados:

Fonte do banco de dados  
A fonte do banco de dados pode ser um banco de dados Oracle no local, um banco de dados Oracle em uma instância do Amazon EC2 ou um banco de dados Oracle em uma instância de banco de dados do Amazon RDS.

Hub do Oracle GoldenGate  
Um hub do Oracle GoldenGate move as informações de transação da fonte do banco de dados para o banco de dados de destino. O hub pode ser um dos seguintes:  
+ Uma instância do Amazon EC2 com o Oracle Database e o Oracle GoldenGate instalados
+ Uma instalação da Oracle on-premises.
É possível ter mais de um hub do Amazon EC2. Recomendamos que você use dois hubs se utilizar o Oracle GoldenGate para replicação entre regiões.

Bancos de dados de destino:  
O banco de dados de destino pode estar em uma instância de banco de dados do Amazon RDS, em uma instância do Amazon EC2 ou no local.

As seções a seguir descrevem cenários comuns para o Oracle GoldenGate no Amazon RDS.

**Topics**
+ [Fonte do banco de dados on-premises e hub do Oracle GoldenGate](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [Fonte do banco de dados on-premises e hub do Amazon EC2](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [Fonte do banco de dados do Amazon RDS e hub do Amazon EC2](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [Fonte do banco de dados do Amazon EC2 e hub do Amazon EC2](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [Hubs do Amazon EC2 em diferentes regiões da AWS](#Appendix.OracleGoldenGate.cross-region-hubs)

## Fonte do banco de dados on-premises e hub do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

Nesse cenário, uma fonte do banco de dados Oracle on-premises e um hub do Oracle GoldenGate on-premises fornecem dados para uma instância de banco de dados do Amazon RDS de destino. 

![\[Configuração 0 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## Fonte do banco de dados on-premises e hub do Amazon EC2
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

Nesse cenário, um banco de dados Oracle on-premises atua como a fonte do banco de dados. É conectado a um hub de instância do Amazon EC2. Este hub fornece dados para uma instância de banco de dados de destino do RDS for Oracle.

![\[Configuração 1 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Fonte do banco de dados do Amazon RDS e hub do Amazon EC2
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

Nesse cenário, uma instância de banco de dados do RDS for Oracle atua como fonte do banco de dados. É conectado a um hub de instância do Amazon EC2. Este hub fornece dados para uma instância de banco de dados de destino do RDS for Oracle.

![\[Configuração 2 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Fonte do banco de dados do Amazon EC2 e hub do Amazon EC2
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

Nesse cenário, um banco de dados Oracle em uma instância do Amazon EC2 atua como a fonte do banco de dados. É conectado a um hub de instância do Amazon EC2. Este hub fornece dados para uma instância de banco de dados de destino do RDS for Oracle.

![\[Configuração 3 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## Hubs do Amazon EC2 em diferentes regiões da AWS
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

Nesse cenário, um banco de dados Oracle em uma instância de banco de dados do Amazon RDS está conectado a um hub de instância do Amazon EC2 na mesma região da AWS. O hub está conectado a um hub da instância do Amazon EC2 em outra região da AWS. Esse segundo hub fornece dados para a instância de banco de dados de destino do RDS for Oracle na mesma região da AWS como o segundo hub da instância do Amazon EC2.

![\[Configuração 4 do Oracle GoldenGate usando o Amazon RDS\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**nota**  
Quaisquer problemas que afetem o funcionamento do Oracle GoldenGate em ambiente on-premises também afetarão a execução do Oracle GoldenGate na AWS. É altamente recomendável que você monitore o hub do Oracle GoldenGate para garantir que `EXTRACT` e `REPLICAT` sejam retomados se ocorrer um failover. Como o hub do Oracle GoldenGate é executado em uma instância do Amazon EC2, o Amazon RDS não gerencia o hub do Oracle GoldenGate e não pode garantir que ele esteja em execução.

# Configurar o Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.setting-up"></a>

Para configurar o Oracle GoldenGate usando o Amazon RDS, configure o hub em uma instância do Amazon EC2 e, depois, configure os bancos de dados de origem e de destino. As seções a seguir fornecem um exemplo de como configurar o Oracle GoldenGate para uso com o Amazon RDS para Oracle.

**Topics**
+ [Configurar um hub do Oracle GoldenGate no Amazon EC2](#Appendix.OracleGoldenGate.Hub)
+ [Configurar um banco de dados de origem para uso com o Oracle GoldenGate no Amazon RDS](#Appendix.OracleGoldenGate.Source)
+ [Configurar um banco de dados de destino para uso com o Oracle GoldenGate no Amazon RDS](#Appendix.OracleGoldenGate.Target)

## Configurar um hub do Oracle GoldenGate no Amazon EC2
<a name="Appendix.OracleGoldenGate.Hub"></a>

Para criar um hub do Oracle GoldenGate em uma instância do Amazon EC2, crie primeiro uma instância do Amazon EC2 com uma instalação completa do cliente do Oracle RDBMS. A instância do Amazon EC2 também deve ter o software do Oracle GoldenGate instalado. As versões do software Oracle GoldenGate dependem das versões dos bancos de dados de origem e de destino. Para obter mais informações sobre a instalação do Oracle GoldenGate, consulte a [documentação do Oracle GoldenGate](https://docs.oracle.com/en/middleware/goldengate/core/index.html).

A instância do Amazon EC2 que serve como o hub do GoldenGate armazena e processa as informações de transação da fonte do banco de dados em arquivos de trilha. Para que esse processo seja aceito, atenda às seguintes condições:
+ Você alocou armazenamento suficiente para os arquivos de trilha.
+ A instância do Amazon EC2 tem poder de processamento suficiente para gerenciar a quantidade de dados.
+ Além disso, certifique-se de que a instância do EC2 tenha memória suficiente para armazenar as informações de transação antes delas serem gravadas no arquivo de trilha.

**Como definir um hub de configuração de arquitetura clássica do Oracle GoldenGate em uma instância do Amazon EC2**

1. Crie os subdiretórios no diretório do Oracle GoldenGate.

   No shell da linha de comando do Amazon EC2, inicie o `ggsci`, o interpretador de comandos do Oracle GoldenGate. O comando `CREATE SUBDIRS` cria subdiretórios no diretório `/gg` para arquivos de parâmetros, relatórios e ponto de verificação.

   ```
   prompt$ cd /gg
   prompt$ ./ggsci
   
   GGSCI> CREATE SUBDIRS
   ```

1. Configure o arquivo `mgr.prm`.

   O exemplo a seguir adiciona linhas ao arquivo `$GGHOME/dirprm/mgr.prm`.

   ```
   PORT 8199
   PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
   ```

1. Inicie o gerente.

   O exemplo a seguir inicia o `ggsci` e executa o comando `start mgr`.

   ```
   GGSCI> start mgr
   ```

O hub do Oracle GoldenGate agora está pronto para uso.

## Configurar um banco de dados de origem para uso com o Oracle GoldenGate no Amazon RDS
<a name="Appendix.OracleGoldenGate.Source"></a>

Conclua as tarefas a seguir para configurar um banco de dados de origem a ser usado com o Oracle GoldenGate.

**Topics**
+ [Etapa 1: Ativar o registro em log complementar no banco de dados de origem](#Appendix.OracleGoldenGate.Source.Logging)
+ [Etapa 2: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [Etapa 3: Definir o período de retenção de log no banco de dados de origem](#Appendix.OracleGoldenGate.Source.Retention)
+ [Etapa 4: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de origem](#Appendix.OracleGoldenGate.Source.Account)
+ [Etapa 5: Conceder privilégios ao usuário no banco de dados de origem](#Appendix.OracleGoldenGate.Source.Privileges)
+ [Etapa 6: Adicionar um alias TNS ao banco de dados de origem](#Appendix.OracleGoldenGate.Source.TNS)

### Etapa 1: Ativar o registro em log complementar no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

Para ativar o registro complementar mínimo em nível de banco de dados, execute o seguinte procedimento PL/SQL: 

```
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
```

### Etapa 2: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

Quando você define o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` como `true`, ele permite que os serviços de banco de dados sejam compatíveis com a replicação lógica. Se o banco de dados de origem estiver em uma instância de banco de dados do Amazon RDS, tenha um grupo de parâmetros atribuído à instância de banco de dados com o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` definido como `true`. Para obter mais informações sobre o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION`, consulte a [documentação do banco de dados Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Etapa 3: Definir o período de retenção de log no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

Configure o banco de dados de origem para reter os redo logs arquivados. Considere as seguintes diretrizes:
+ Especifique a duração da retenção de log em horas. O valor mínimo é uma hora.
+ Defina a duração para exceder qualquer tempo de inatividade possível, qualquer período de comunicação possível e qualquer período de problemas de rede possível com a instância de origem. Essa duração permite que o Oracle GoldenGate recupere logs da instância de origem de acordo com a necessidade.
+ Verifique se você tem armazenamento suficiente na instância para os arquivos.

Por exemplo, defina o período de retenção para logs redo arquivados como 24 horas.

```
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
```

Se você não tiver a retenção de logs ativada, ou se o valor de retenção for muito pequeno, receberá uma mensagem de erro semelhante à seguinte.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

Como sua instância de banco de dados retém seus redo logs arquivados, verifique se você tem espaço suficiente para os arquivos. Para ver quanto espaço você usou nas últimas *num\$1hours* horas, use a consulta a seguir, substituindo *num\$1hours* pelo número de horas.

```
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG 
   WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;
```

### Etapa 4: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

O Oracle GoldenGate é executado como usuário de banco de dados e requer os privilégios apropriados para acessar os redo logs e redo logs arquivados do banco de dados de origem. Para concedê-los, crie uma conta do usuário no banco de dados de origem. Para obter mais informações sobre as permissões para uma conta de usuário do GoldenGate, consulte a [documentação do Oracle](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053).

As instruções a seguir criam uma conta do usuário denominada `oggadm1`. 

```
CREATE TABLESPACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password"
   DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

### Etapa 5: Conceder privilégios ao usuário no banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

Nessa tarefa, você concede os privilégios de conta necessários para usuários do banco de dados em seu banco de dados de origem.

**Como conceder privilégios de conta no banco de dados de origem**

1. Conceda os privilégios necessários à conta de usuário do Oracle GoldenGate usando o comando SQL `grant` e o procedimento `grant_sys_object` do `rdsadmin.rdsadmin_util`. As instruções a seguir concedem privilégios a um usuário denominado `oggadm1`.

   ```
   GRANT CREATE SESSION, ALTER SESSION TO oggadm1;
   GRANT RESOURCE TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT FLASHBACK ANY TABLE TO oggadm1;
   GRANT SELECT ANY TABLE TO oggadm1;
   GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION;
   EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1');
   GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1;
   GRANT SELECT ON SYS.V_$DATABASE TO oggadm1;
   GRANT ALTER ANY TABLE TO oggadm1;
   ```

1. Conceda os privilégios necessários a uma conta do usuário para ser um administrador do Oracle GoldenGate. Execute o programa PL/SQL a seguir.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'capture',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Para revogar privilégios, use o procedimento `revoke_admin_privilege` no mesmo pacote.

### Etapa 6: Adicionar um alias TNS ao banco de dados de origem
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

Adicione a entrada a seguir a `$ORACLE_HOME/network/admin/tnsnames.ora` no Oracle Home para ser usada pelo processo `EXTRACT`. Para obter mais informações sobre o arquivo `tnsnames.ora`, consulte a [documentação da Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGSOURCE=
   (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

## Configurar um banco de dados de destino para uso com o Oracle GoldenGate no Amazon RDS
<a name="Appendix.OracleGoldenGate.Target"></a>

Nessa tarefa, você configura uma instância de banco de dados de destino para uso com o Oracle GoldenGate.

**Topics**
+ [Etapa 1: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [Etapa 2: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de destino](#Appendix.OracleGoldenGate.Target.User)
+ [Etapa 3: Conceder privilégios de conta no banco de dados de destino](#Appendix.OracleGoldenGate.Target.Privileges)
+ [Etapa 4: Adicionar um alias TNS ao banco de dados de destino](#Appendix.OracleGoldenGate.Target.TNS)

### Etapa 1: Definir o parâmetro de inicialização ENABLE\$1GOLDENGATE\$1REPLICATION como true
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

Quando você define o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` como `true`, ele permite que os serviços de banco de dados sejam compatíveis com a replicação lógica. Se o banco de dados de origem estiver em uma instância de banco de dados do Amazon RDS, tenha um grupo de parâmetros atribuído à instância de banco de dados com o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION` definido como `true`. Para obter mais informações sobre o parâmetro de inicialização `ENABLE_GOLDENGATE_REPLICATION`, consulte a [documentação do banco de dados Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html).

### Etapa 2: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de destino
<a name="Appendix.OracleGoldenGate.Target.User"></a>

O Oracle GoldenGate é executado como um usuário do banco de dados e requer os privilégios de banco de dados apropriados. Para garantir que ele tenha esses privilégios, crie uma conta do usuário no banco de dados de destino.

A instrução a seguir cria um usuário denominado `oggadm1`.

```
CREATE TABLESPSACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password" 
   DEFAULT TABLESPACE administrator 
   TEMPORARY TABLESPACE temp;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

### Etapa 3: Conceder privilégios de conta no banco de dados de destino
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

Nessa tarefa, você concede os privilégios de conta necessários para usuários do banco de dados em seu banco de dados de destino.

**Como conceder privilégios de conta no banco de dados de destino**

1. Conceda os privilégios necessários à conta do usuário do Oracle GoldenGate no banco de dados de destino. No exemplo a seguir, conceda privilégios a `oggadm1`.

   ```
   GRANT CREATE SESSION        TO oggadm1;
   GRANT ALTER SESSION         TO oggadm1;
   GRANT CREATE CLUSTER        TO oggadm1;
   GRANT CREATE INDEXTYPE      TO oggadm1;
   GRANT CREATE OPERATOR       TO oggadm1;
   GRANT CREATE PROCEDURE      TO oggadm1;
   GRANT CREATE SEQUENCE       TO oggadm1;
   GRANT CREATE TABLE          TO oggadm1;
   GRANT CREATE TRIGGER        TO oggadm1;
   GRANT CREATE TYPE           TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT CREATE ANY TABLE      TO oggadm1;
   GRANT ALTER ANY TABLE       TO oggadm1;
   GRANT LOCK ANY TABLE        TO oggadm1;
   GRANT SELECT ANY TABLE      TO oggadm1;
   GRANT INSERT ANY TABLE      TO oggadm1;
   GRANT UPDATE ANY TABLE      TO oggadm1;
   GRANT DELETE ANY TABLE      TO oggadm1;
   ```

1. Conceda os privilégios necessários a uma conta do usuário para ser um administrador do Oracle GoldenGate. Execute o programa PL/SQL a seguir.

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'apply',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   Para revogar privilégios, use o procedimento `revoke_admin_privilege` no mesmo pacote.

### Etapa 4: Adicionar um alias TNS ao banco de dados de destino
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

Adicione a entrada a seguir a `$ORACLE_HOME/network/admin/tnsnames.ora` no Oracle Home para ser usada pelo processo `REPLICAT`. Para bancos de dados multilocação Oracle, o alias TNS deve apontar para o nome do serviço do PDB. Para obter mais informações sobre o arquivo `tnsnames.ora`, consulte a [documentação da Oracle](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA).

```
OGGTARGET=
    (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

# Trabalhar com os utilitários EXTRACT e REPLICAT do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Os utilitários `EXTRACT` e `REPLICAT` do Oracle GoldenGate trabalham juntos para manter os bancos de dados de origem e destino sincronizados via replicação de transações incrementais usando arquivos de trilha. Todas as alterações que ocorrem no banco de dados de origem são automaticamente detectadas por `EXTRACT`, depois formatadas e transferidas para arquivos de trilha no Oracle GoldenGate on-premises ou no hub de instâncias do Amazon EC2. Após a conclusão da carga inicial, os dados são lidos desses arquivos e replicados para o banco de dados de destino pelo utilitário `REPLICAT`.

## Executar o utilitário EXTRACT do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Extract"></a>

O utilitário `EXTRACT` recupera, converte e gera dados do banco de dados de origem para arquivos de trilha. O processo básico é o seguinte:

1. `EXTRACT` coloca os detalhes da transação em fila na memória ou em armazenamento de disco temporário.

1. O banco de dados de origem confirma a transação.

1. `EXTRACT` grava os detalhes da transação em um arquivo de trilha.

1. O arquivo de trilha roteia esses detalhes para o Oracle GoldenGate on-premises ou o hub da instância do Amazon EC2 e depois para o banco de dados de destino.

As etapas a seguir iniciam o utilitário `EXTRACT`, capturam os dados do `EXAMPLE.TABLE` no banco de dados de origem `OGGSOURCE` e criam os arquivos de trilha. 

**Como executar o utilitário EXTRACT**

1. Configure o arquivo de parâmetro `EXTRACT` no hub do Oracle GoldenGate (on-premises ou na instância do Amazon EC2). A listagem a seguir mostra um exemplo do arquivo de parâmetro `EXTRACT` denominado `$GGHOME/dirprm/eabc.prm`.

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. No hub do Oracle GoldenGate, faça login no banco de dados de origem e execute a interface de linha de comando do Oracle GoldenGate `ggsci`. O exemplo a seguir mostra o formato para login.

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. Adicione dados de transação para ativar o registro em log complementar para a tabela de banco de dados.

   ```
   add trandata EXAMPLE.TABLE
   ```

1. Usando a linha de comando `ggsci`, ative o utilitário `EXTRACT` usando os comandos a seguir.

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. Registre o utilitário `EXTRACT` no banco de dados para que os logs de arquivamento não sejam excluídos. Essa tarefa permite que você recupere transações antigas, não confirmadas, se necessário. Para registrar o utilitário `EXTRACT` no banco de dados, use o comando a seguir.

   ```
   register EXTRACT EABC, DATABASE
   ```

1. Inicie o utilitário `EXTRACT` com o comando a seguir.

   ```
   start EABC
   ```

## Executar o utilitário REPLICAT do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Replicat"></a>

O utilitário `REPLICAT` “envia por push” informações de transação nos arquivos de trilha ao banco de dados de destino.

As etapas a seguir ativam e iniciam o utilitário `REPLICAT` para que ele possa replicar os dados capturados na tabela `EXAMPLE.TABLE` no banco de dados de destino `OGGTARGET`.

**Como executar o utilitário REPLICATE**

1. Configure o arquivo de parâmetro `REPLICAT` no hub do Oracle GoldenGate (on-premises ou na instância do EC2). A listagem a seguir mostra um exemplo do arquivo de parâmetro `REPLICAT` denominado `$GGHOME/dirprm/rabc.prm`.

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**nota**  
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

1. Faça login no banco de dados de destino e execute a interface de linha de comando do Oracle GoldenGate (`ggsci`). O exemplo a seguir mostra o formato para login.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Usando a linha de comando `ggsci`, adicione uma tabela de verificação. O usuário indicado deve ser a conta de usuário do Oracle GoldenGate, e não o proprietário do esquema da tabela de destino. O exemplo a seguir cria um ponto de verificação denominado `gg_checkpoint`.

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. Para habilitar o utilitário `REPLICAT`, use o seguinte comando:

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. Inicie o utilitário `REPLICAT` usando o comando a seguir.

   ```
   start RABC
   ```

# Monitorar o Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Ao usar o Oracle GoldenGate para replicação, certifique-se de que o processo do Oracle GoldenGate esteja ativo e em execução e que os bancos de dados de origem e destino estejam sincronizados. Você pode usar as seguintes ferramentas de monitoramento:
+ O [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) é um serviço de monitoramento usado nesse padrão para monitorar os logs de erros do GoldenGate.
+ O [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) é um serviço de notificação de mensagens usado nesse padrão para enviar notificações por e-mail.

Para obter instruções detalhadas, consulte [Monitorar os logs do Oracle GoldenGate usando o Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html).

# Solução de problemas do Oracle GoldenGate
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

Esta seção explica os problemas mais comuns ao usar o Oracle GoldenGate com o Amazon RDS para Oracle.

**Topics**
+ [Erro ao abrir um redo log online](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [O Oracle GoldenGate parece estar devidamente configurado, mas a replicação não está funcionando](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [REPLICAT integrado lento devido a consulta no SYS. “\$1DBA\$1APPLY\$1CDR\$1INFO”](#Appendix.OracleGoldenGate.IR)

## Erro ao abrir um redo log online
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

Configure os bancos de dados para reter os redo logs arquivados. Considere as seguintes diretrizes:
+ Especifique a duração da retenção de log em horas. O valor mínimo é uma hora.
+ Defina a duração para exceder qualquer tempo de inatividade possível, qualquer período de comunicação possível e qualquer período de problemas de rede possível com a instância de banco de dados de origem. Essa duração permite que o Oracle GoldenGate recupere logs da instância de banco de dados de origem de acordo com a necessidade.
+ Verifique se você tem armazenamento suficiente na instância para os arquivos.

Se você não tiver a retenção de logs ativada, ou se o valor de retenção for muito pequeno, receberá uma mensagem de erro semelhante à seguinte.

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

## O Oracle GoldenGate parece estar devidamente configurado, mas a replicação não está funcionando
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

Para tabelas pré-existentes, você precisa especificar o SCN do qual o Oracle GoldenGate trabalha.

**Como corrigir esse problema**

1. Faça login no banco de dados de origem e execute a interface de linha de comando do Oracle GoldenGate (`ggsci`). O exemplo a seguir mostra o formato para login.

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. Usando a linha de comando `ggsci`, configure o SCN inicial para o processo `EXTRACT`. O exemplo a seguir define o SCN como 223274 para `EXTRACT`.

   ```
   ALTER EXTRACT EABC SCN 223274
   start EABC
   ```

1. Faça login no banco de dados de destino. O exemplo a seguir mostra o formato para login.

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. Usando a linha de comando `ggsci`, configure o SCN inicial para o processo `REPLICAT`. O exemplo a seguir define o SCN como 223274 para `REPLICAT`.

   ```
   start RABC atcsn 223274
   ```

## REPLICAT integrado lento devido a consulta no SYS. “\$1DBA\$1APPLY\$1CDR\$1INFO”
<a name="Appendix.OracleGoldenGate.IR"></a>

O Oracle GoldenGate Conflict Detection and Resolution (CDR) fornece rotinas básicas de resolução de conflitos. Por exemplo, o CDR pode resolver um conflito exclusivo para uma instrução `INSERT`.

Quando o CDR resolve um conflito, ele pode inserir registros na tabela de exceção `_DBA_APPLY_CDR_INFO` temporariamente. O `REPLICAT` integrado exclui esses registros posteriormente. Em um cenário raro, o `REPLICAT` integrado pode processar um grande número de colisões, mas um novo `REPLICAT` integrado não o substitui. Em vez de serem removidas, as linhas `_DBA_APPLY_CDR_INFO` existentes ficam órfãs. Todos os novos processos `REPLICAT` integrados abrandam porque estão consultando linhas órfãs no `_DBA_APPLY_CDR_INFO`.

Para remover todas as linhas de `_DBA_APPLY_CDR_INFO`, use o procedimento `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info` do Amazon RDS. Este procedimento é lançado como parte da versão de outubro de 2020 e atualização de patch. O procedimento está disponível nas seguintes versões do banco de dados:
+ [ Version 21.0.0.0.ru-2022-01.rur-2022-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-21-0.html#oracle-version-RU-RUR.21.0.0.0.ru-2022-01.rur-2022-01.r1) e posterior
+ [ Version 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) e posterior

O exemplo a seguir trunca a tabela `_DBA_APPLY_CDR_INFO`.

```
SET SERVEROUTPUT ON SIZE 2000
EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;
```

# Usar o Oracle Repository Creation Utility no RDS for Oracle
<a name="Oracle.Resources.RCU"></a>

Você pode usar o Amazon RDS para hospedar uma instância de banco de dados do RDS for Oracle que contém os esquemas para oferecer compatibilidade com seus componentes do Oracle Fusion Middleware. Para poder usar os componentes do Fusion Middleware, você deve criar e preencher esquemas para eles no seu banco de dados. Você cria e preenche os esquemas usando o Oracle Repository Creation Utility (RCU).

## Versões e opções de licenciamento compatíveis para RCU
<a name="Oracle.Resources.RCU.Versions"></a>

O Amazon RDS não oferece suporte para o Oracle Repository Creation Utility (RCU) versão 12c somente. Você pode usar o RCU nas seguintes configurações: 
+ RCU 12c com Oracle Database 21c
+ RCU 12c com Oracle Database 19c

Antes de poder usar o RCU, faça o seguinte:
+ Obtenha uma licença para o Oracle Fusion Middleware.
+ Siga as diretrizes de licenciamento da Oracle para o banco de dados Oracle que hospeda o repositório. Para obter mais informações, consulte o [Manual do usuário de informações sobre o licenciamento do Oracle Fusion Middleware](https://docs.oracle.com/en/middleware/fusion-middleware/fmwlc/) na documentação da Oracle.

O Fusion MiddleWare é compatível com repositórios no Oracle Database Enterprise Edition e Standard Edition 2. A Oracle recomenda a Enterprise Edition para instalações de produção que exigem particionamento e instalações que exigem a reconstrução do índice online.

Antes de criar sua instância do RDS for Oracle, confirme a versão do banco de dados Oracle que você precisa usar para oferecer compatibilidade com os componentes que deseja implantar. Para encontrar os requisitos para os componentes e as versões do Fusion Middleware que deseja implantar, use a Matriz de Certificação. Para obter mais informações, consulte [Configurações do sistema compatíveis com o Oracle Fusion Middleware](http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html) na documentação da Oracle. 

O Amazon RDS oferece suporte para atualizações de versões do banco de dados Oracle conforme necessário. Para obter mais informações, consulte [Atualizar a versão de mecanismo de uma instância de banco de dados ](USER_UpgradeDBInstance.Upgrading.md). 

## Requisitos e limitações do RCU
<a name="Oracle.Resources.RCU.BeforeYouBegin"></a>

Para usar o RCU, você precisa de um Amazon VPC. Sua instância de banco de dados do Amazon RDS precisa estar disponível somente para os componentes do Fusion Middleware, e não para a internet pública. Portanto, hospede sua instância de banco de dados do Amazon RDS em uma sub-rede privada, fornecendo melhor segurança. Você também precisa de uma instância de banco de dados do RDS for Oracle. Para obter mais informações, consulte [Criar uma instância de banco de dados Oracle e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.Oracle.md).

Você pode armazenar os esquemas para qualquer componente do Fusion Middleware na sua instância de banco de dados do Amazon RDS. Os esquemas a seguir foram verificados para instalar corretamente: 
+ Analytics (ACTIVITIES)
+ Audit Services (IAU)
+ Audit Services Append (IAU\$1APPEND)
+ Audit Services Viewer (IAU\$1VIEWER)
+ Discussions (DISCUSSIONS)
+ Metadata Services (MDS)
+ Oracle Business Intelligence (BIPLATFORM)
+ Oracle Platform Security Services (OPSS)
+ Portal and Services (WEBCENTER)
+ Portlet Producers (PORTLET)
+ Service Table (STB)
+ SOA Infrastructure (SOAINFRA)
+ User Messaging Service (UCSUMS)
+ WebLogic Services (WLS)

## Diretrizes para usar o RCU
<a name="Oracle.Resources.RCU.Recommendations"></a>

Veja a seguir algumas recomendações para trabalhar com a sua instância de banco de dados neste cenário: 
+ Recomendamos que você use o Multi-AZ para cargas de trabalho de produção. Para mais informações sobre como trabalhar com várias zonas de disponibilidade, consulte [Regiões, zonas de disponibilidade e Local Zones](Concepts.RegionsAndAvailabilityZones.md). 
+ Para segurança adicional, a Oracle recomenda que você use o Transparent Data Encryption (TDE) para criptografar seus dados em repouso. Se você possui uma licença do Enterprise Edition que inclui a opção de segurança avançada, poderá habilitar a criptografia em repouso usando a opção TDE. Para obter mais informações, consulte [Oracle Transparent Data Encryption](Appendix.Oracle.Options.AdvSecurity.md). 

  O Amazon RDS também fornece uma opção de criptografia em repouso para todas as edições de banco de dados. Para obter mais informações, consulte [Criptografar recursos do Amazon RDS](Overview.Encryption.md). 
+ Configure seus security groups de VPC para permitir a comunicação entre seus servidores de aplicativos e sua instância de banco de dados do Amazon RDS. Os servidores de aplicativos que hospedam os componentes do Fusion Middleware podem estar no Amazon EC2 ou no ambiente local. 

## Executando o RCU
<a name="Oracle.Resources.RCU.Installing"></a>

Para criar e preencher os esquemas para dar suporte aos seus componentes do Fusion Middleware, use o Oracle Repository Creation Utility (RCU). Você pode executar o RCU de diferentes maneiras.

**Topics**
+ [Executar RCU usando a linha de comando em uma etapa](#Oracle.Resources.RCU.SilentSingle)
+ [Executar o RCU usando a linha de comando em várias etapas](#Oracle.Resources.RCU.SilentMulti)
+ [Executar o RCU no modo interativo](#Oracle.Resources.RCU.Interactive)

### Executar RCU usando a linha de comando em uma etapa
<a name="Oracle.Resources.RCU.SilentSingle"></a>

Se você não precisa editar nenhum dos seus esquemas antes de os preencher, pode executar o RCU em uma única etapa. Caso contrário, consulte a seção a seguir para executar o RCU em várias etapas. 

Você pode executar o RCU no modo silencioso usando o parâmetro da linha de comando `-silent`. Quando você executa o RCU no modo silencioso, pode evitar inserir senhas na linha de comando mediante a criação de um arquivo de texto contendo as senhas. Crie um arquivo de texto com a senha para `dbUser` na primeira linha e a senha para cada componente nas linhas subsequentes. Você especifica o nome do arquivo de senha como o último parâmetro para o comando RCU. 

**Example**  
O exemplo a seguir cria e preenche esquemas para o componente SOA Infrastructure (e suas dependências) em uma única etapa.   
Para Linux, macOS ou Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```

Para obter mais informações, consulte [Execução do utilitário de criação de repositórios a partir da linha de comando](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248) na documentação da Oracle. 

### Executar o RCU usando a linha de comando em várias etapas
<a name="Oracle.Resources.RCU.SilentMulti"></a>

Para editar manualmente seus scripts de esquema, execute o RCU em várias etapas: 

1. Execute o RCU no modo **Prepare Scripts for System Load (Preparar scripts para o carregamento do sistema)** usando o parâmetro da linha de comando `-generateScript` para criar os scripts para os seus esquemas. 

1. Edite e execute manualmente o script gerad `script_systemLoad.sql`. 

1. Execute o RCU novamente no modo **Perform Product Load (Realizar o carregamento do produto)** usando o parâmetro da linha de comando `-dataLoad` para preencher os esquemas. 

1. Execute o script de limpeza gerado `script_postDataLoad.sql`.

Para executar o RCU no modo silencioso, especifique o parâmetro da linha de comando `-silent`. Quando você executa o RCU no modo silencioso, pode evitar digitar senhas na linha de comando, criando um arquivo de texto contendo as senhas. Crie um arquivo de texto com a senha para `dbUser` na primeira linha e a senha para cada componente nas linhas subsequentes. Especifique o nome do arquivo de senha como o último parâmetro para o comando do RCU. 

**Example**  
O exemplo a seguir cria scripts de esquema para o componente SOA Infrastructure (e suas dependências).   
Para Linux, macOS ou Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-generateScript \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
[-encryptTablespace true] \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-scriptLocation /tmp/rcuscripts \
-f < /tmp/passwordfile.txt
```
Agora, você pode editar o script gerado, conectar-se à sua instância de banco de dados Oracle e executar o script. O script gerado se chama `script_systemLoad.sql`. Para obter informações sobre como se conectar à sua instância de banco de dados Oracle, consulte [Etapa 3: Conectar seu cliente SQL a uma instância de banco de dados Oracle.](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle).   
O exemplo a seguir preenche os esquemas do componente SOA Infrastructure (e suas dependências).   
Para Linux, macOS ou Unix:  

```
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-dataLoad \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```
Para terminar, você se conecta à sua instância de banco de dados Oracle e executa o script de limpeza. O nome do script é `script_postDataLoad.sql`. 

Para obter mais informações, consulte [Execução do utilitário de criação de repositórios a partir da linha de comando](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248) na documentação da Oracle. 

### Executar o RCU no modo interativo
<a name="Oracle.Resources.RCU.Interactive"></a>

Para usar a interface de usuário gráfica do RCU, execute o RCU no modo interativo. Inclua o parâmetro `-interactive` e omita o parâmetro `-silent`. Para obter mais informações, consulte [Noções básicas sobre as telas do utilitário de criação de repositórios](https://docs.oracle.com/middleware/1213/core/RCUUG/rcu_screens.htm#RCUUG143) na documentação da Oracle. 

**Example**  
O exemplo a seguir inicia o RCU no modo interativo e pré-preenche as informações de conexão.   
Para Linux, macOS ou Unix:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-interactive \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal
```

## Solução de problemas do RCU
<a name="Oracle.Resources.RCU.KnownIssues"></a>

Esteja ciente dos seguintes problemas.

**Topics**
+ [Oracle Managed Files (OMF)](#Oracle.Resources.RCU.KnownIssues.OMF)
+ [Privilégios de objeto](#Oracle.Resources.RCU.KnownIssues.object-privs)
+ [Enterprise Scheduler Service](#Oracle.Resources.RCU.KnownIssues.Scheduler)

### Oracle Managed Files (OMF)
<a name="Oracle.Resources.RCU.KnownIssues.OMF"></a>

O Amazon RDS usa arquivos de dados OMF para simplificar o gerenciamento do armazenamento. Você pode personalizar atributos de espaço de tabela, como o gerenciamento do tamanho e da extensão. No entanto, se você especificar um nome de arquivo de dados ao executar o RCU, o código do espaço de tabela falhará com `ORA-20900`. É possível usar o RCU com o OMF das seguintes maneiras: 
+ No RCU 12.2.1.0 e versões posteriores, use o parâmetro de linha de comando `-honorOMF`. 
+ No RCU 12.1.0.3 e versões posteriores, use várias etapas e edite o script gerado. Para obter mais informações, consulte [Executar o RCU usando a linha de comando em várias etapas](#Oracle.Resources.RCU.SilentMulti). 

### Privilégios de objeto
<a name="Oracle.Resources.RCU.KnownIssues.object-privs"></a>

Como o Amazon RDS é um serviço gerenciado, você não tem acesso completo `SYSDBA` à sua instância de banco de dados do RDS para Oracle. No entanto, o RCU 12c oferece suporte a usuários com privilégios menores. Na maioria dos casos, o privilégio de usuário mestre é suficiente para criar repositórios. 

A conta principal pode conceder diretamente privilégios que já foram concedidos `WITH GRANT OPTION`. Em alguns casos, ao tentar conceder privilégios de objeto `SYS`, o RCU pode falhar com `ORA-01031`. Você pode tentar novamente e executar o procedimento armazenado `rdsadmin_util.grant_sys_object`, conforme mostrado no exemplo a seguir:

```
BEGIN
  rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','MY_DBA','SELECT');
END;
/
```

Se você tentar conceder privilégios `SYS` no objeto `SCHEMA_VERSION_REGISTRY`, a operação poderá falhar com `ORA-20199: Error in rdsadmin_util.grant_sys_object`. Você pode qualificar a tabela `SCHEMA_VERSION_REGISTRY$` e a visualização `SCHEMA_VERSION_REGISTRY` com o nome do proprietário do esquema, que é `SYSTEM`, e repetir a operação. Como alternativa, você pode criar um sinônimo. Faça login como usuário principal e execute as seguintes instruções:

```
CREATE OR REPLACE VIEW SYSTEM.SCHEMA_VERSION_REGISTRY 
  AS SELECT * FROM SYSTEM.SCHEMA_VERSION_REGISTRY$;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY FOR SYSTEM.SCHEMA_VERSION_REGISTRY;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY$ FOR SCHEMA_VERSION_REGISTRY;
```

### Enterprise Scheduler Service
<a name="Oracle.Resources.RCU.KnownIssues.Scheduler"></a>

Quando você usa o RCU para remover um repositório do Enterprise Scheduler Service, o RCU pode falhar com `Error: Component drop check failed`.

# Configurando o Oracle Connection Manager em uma instância do Amazon EC2
<a name="oracle-cman"></a>

O Oracle Connection Manager (CMAN) é um servidor de proxy que encaminha solicitações de conexão para servidores de banco de dados ou outros servidores proxy. Você pode usar o CMAN para configurar o seguinte:

Controle de acesso  
Você pode criar regras que filtram solicitações de clientes especificadas pelo usuário e aceitam outras.

Multiplexing de sessão  
Você pode canalizar várias sessões de clientes por meio de uma conexão de rede para um destino de servidor compartilhado.

Normalmente, o CMAN reside em um host separado do servidor de banco de dados e dos hosts do cliente. Para obter mais informações, consulte [Configuring Oracle Connection Manager](https://docs.oracle.com/en/database/oracle/oracle-database/19/netag/configuring-oracle-connection-manager.html#GUID-AF8A511E-9AE6-4F4D-8E58-F28BC53F64E4) (Configurar o Oracle Connection Manager) na documentação do Oracle Database.

**Topics**
+ [Versões e opções de licenciamento compatíveis para CMAN](#oracle-cman.Versions)
+ [Requisitos e limitações do CMAN](#oracle-cman.requirements)
+ [Configurando o CMAN](#oracle-cman.configuring-cman)

## Versões e opções de licenciamento compatíveis para CMAN
<a name="oracle-cman.Versions"></a>

O CMAN oferece suporte à Enterprise Edition de todas as versões do Oracle Database que o Amazon RDS oferece suporte. Para obter mais informações, consulte [Versões do RDS para Oracle](Oracle.Concepts.database-versions.md).

Você pode instalar o Oracle Connection Manager em um host separado do host em que o Oracle Database está instalado. Você não precisa de uma licença separada para o host que executa o CMAN.

## Requisitos e limitações do CMAN
<a name="oracle-cman.requirements"></a>

Para fornecer uma experiência totalmente gerenciada, o Amazon RDS restringe o acesso ao sistema operacional. Você não pode modificar parâmetros de banco de dados que exigem acesso ao sistema operacional. Assim, o Amazon RDS não oferece suporte a recursos do CMAN que exigem que você faça login no sistema operacional.

## Configurando o CMAN
<a name="oracle-cman.configuring-cman"></a>

Ao configurar o CMAN, você executa a maior parte do trabalho fora do banco de dados do RDS for Oracle.

**Topics**
+ [Etapa 1: configurar o CMAN em uma instância do Amazon EC2 na mesma VPC da instância do RDS for Oracle](#oracle-cman.configuring-cman.vpc)
+ [Etapa 2: configurar parâmetros de banco de dados para o CMAN](#oracle-cman.configuring-cman.parameters)
+ [Etapa 3: associar a sua instância de banco de dados ao grupo de parâmetros.](#oracle-cman.configuring-cman.parameter-group)

### Etapa 1: configurar o CMAN em uma instância do Amazon EC2 na mesma VPC da instância do RDS for Oracle
<a name="oracle-cman.configuring-cman.vpc"></a>

Para saber como configurar o CMAN, siga as instruções detalhadas na postagem do blog [Configurando e usando o Oracle Connection Manager no Amazon EC2 para Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/configuring-and-using-oracle-connection-manager-on-amazon-ec2-for-amazon-rds-for-oracle/).

### Etapa 2: configurar parâmetros de banco de dados para o CMAN
<a name="oracle-cman.configuring-cman.parameters"></a>

Para recursos do CMAN, como Modo Traffic Director e multiplexação de sessão, defina o parâmetro `REMOTE_LISTENER` do endereço da instância do CMAN em um grupo de parâmetros de banco de dados. Considere o seguinte cenário:
+ A instância CMAN reside em um host com endereço IP `10.0.159.100` e usa porta `1521`.
+ Os bancos de dados `orcla`, `orclb`, e `orclc` residem em instâncias de banco de dados do RDS for Oracle separadas.

A tabela a seguir mostra como definir o valor `REMOTE_LISTENER`. O valor `LOCAL_LISTENER` é definido automaticamente pelo Amazon RDS.


| Nome da instância de banco de dados | IP da instância de banco de dados | Valor do ouvinte local (definido automaticamente) | Valor de ouvinte remoto (definido por usuário) | 
| --- | --- | --- | --- | 
| orcla | 10.0.159.200 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.200)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclb | 10.0.159.300 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.300)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclc | 10.0.159.400 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.400)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 

### Etapa 3: associar a sua instância de banco de dados ao grupo de parâmetros.
<a name="oracle-cman.configuring-cman.parameter-group"></a>

Crie ou modifique sua instância de banco de dados para usar o grupo de parâmetros configurado no [Etapa 2: configurar parâmetros de banco de dados para o CMAN](#oracle-cman.configuring-cman.parameters). Para obter mais informações, consulte [Associar um grupo de parâmetros de banco de dados a uma instância de banco de dados no Amazon RDS](USER_WorkingWithParamGroups.Associating.md).

# Instalar um Siebel Database no Oracle no Amazon RDS
<a name="Oracle.Resources.Siebel"></a>

Você pode usar o Amazon RDS para hospedar um Siebel Database em uma instância de banco de dados Oracle. O Siebel Database faz parte da arquitetura de aplicativos Siebel Customer Relationship Management (CRM). Para ver uma ilustração, consulte [Arquitetura genérica do Siebel Business Application](https://docs.oracle.com/cd/E63029_01/books/PerformTun/performtun_archinfra.htm#i1043361). 

Use o tópico a seguir para ajudar a configurar o Siebel Database em uma instância de banco de dados Oracle no Amazon RDS. Você também pode descobrir como usar a Amazon Web Services para dar suporte aos outros componentes exigidos pela arquitetura de aplicativos Siebel CRM. 

**nota**  
Para instalar um Siebel Database no Oracle no Amazon RDS, você precisa usar a conta de usuário mestre. Você não precisa do privilégio `SYSDBA`. O privilégio de usuário mestre é suficiente. Para obter mais informações, consulte [Privilégios da conta de usuário mestre](UsingWithRDS.MasterAccounts.md). 

## Licenciamento e versões
<a name="Oracle.Resources.Siebel.Versions"></a>

Para instalar um Siebel Database no Amazon RDS, você deve usar sua própria licença Oracle Database e sua própria licença Siebel. Você deve ter a licença Oracle Database apropriada (com with Software Update License and Support) para a classe da instância de banco de dados e a edição do Oracle Database. Para obter mais informações, consulte [Opções de licenciamento do RDS para Oracle](Oracle.Concepts.Licensing.md). 

O Oracle Database Enterprise Edition é a única edição certificada pela Siebel para esse cenário. O Amazon RDS oferece suporte ao Siebel CRM versão 15.0 ou 16.0.

O Amazon RDS oferece suporte para atualizações de versões do banco de dados. Para obter mais informações, consulte [Atualizar a versão de mecanismo de uma instância de banco de dados ](USER_UpgradeDBInstance.Upgrading.md). 

## Antes de começar
<a name="Oracle.Resources.Siebel.BeforeYouBegin"></a>

Antes de começar, você precisa de uma Amazon VPC. Como a instância de banco de dados do Amazon RDS precisa estar disponível somente para o Siebel Enterprise Server, e não para a Internet pública, a instância de banco de dados do Amazon RDS é hospedada em uma sub-rede privada, oferecendo maior segurança. Para obter informações sobre como criar uma Amazon VPC para uso com o Siebel CRM, consulte [Criar uma instância de banco de dados Oracle e conectar-se a ela](CHAP_GettingStarted.CreatingConnecting.Oracle.md). 

Antes de começar, você também precisa de uma instância de banco de dados Oracle. Para obter informações sobre como criar uma instância de banco de dados Oracle para uso com o Siebel CRM, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md). 

## Instalar e configurar um Siebel Database
<a name="Oracle.Resources.Siebel.Database.Siebel"></a>

Depois de criar sua instância de banco de dados Oracle, você pode instalar o Siebel Database. Você instala o banco de dados criando contas de proprietário e administrador de tabelas, instalando procedimentos armazenados e funções e executando o Siebel Database Configuration Wizard. Para obter mais informações, consulte [Instalação do Siebel Database no RDBMS](https://docs.oracle.com/cd/E63029_01/books/SiebInstWIN/SiebInstCOM_ConfigDB.html). 

Para executar o Siebel Database Configuration Wizard, você precisa usar a conta de usuário mestre. Você não precisa do privilégio `SYSDBA`. O privilégio de usuário mestre é suficiente. Para obter mais informações, consulte [Privilégios da conta de usuário mestre](UsingWithRDS.MasterAccounts.md). 

## Usar outros recursos do Amazon RDS com um Siebel Database
<a name="Oracle.Resources.Siebel.Miscellaneous"></a>

Depois de criar sua instância de banco de dados Oracle, você pode usar recursos adicionais do Amazon RDS para ajudá-lo a personalizar seu Siebel Database.

### Coletar estatísticas com a opção Oracle Statspack
<a name="Oracle.Resources.Siebel.Options"></a>

Você pode adicionar recursos à instância de banco de dados com o uso de opções em grupos de opções de banco de dados. Quando criou sua instância de banco de dados Oracle, você usou o grupo de opções de banco de dados padrão. Se quiser adicionar recursos ao seu banco de dados, você pode criar um novo grupo de opções para a sua instância de banco de dados. 

Se você deseja coletar estatísticas de desempenho sobre o seu Siebel Database, pode adicionar o recurso Oracle Statspack. Para obter mais informações, consulte [Oracle Statspack](Appendix.Oracle.Options.Statspack.md). 

Algumas alterações de opções são aplicadas imediatamente e outras são aplicadas durante a próxima janela de manutenção da instância de banco de dados. Para obter mais informações, consulte [Trabalhar com grupos de opções](USER_WorkingWithOptionGroups.md). Depois de criar um grupo de opções personalizado, modifique sua instância de banco de dados para anexá-lo. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

### Ajuste de performance com parâmetros
<a name="Oracle.Resources.Siebel.Parameters"></a>

Você gerencia sua configuração de mecanismo de banco de dados com o uso dos parâmetros em um parameter group de banco de dados. Quando criou sua instância de banco de dados Oracle, você usou o parameter group de banco de dados padrão. Se quiser personalizar sua configuração de banco de dados, você pode criar um novo parameter group para a sua instância de banco de dados. 

Quando você altera um parâmetro, dependendo do tipo de parâmetro, as alterações são aplicadas imediatamente ou após a reinicialização manual da instância de banco de dados. Para obter mais informações, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). Depois de criar um parameter group personalizado, modifique sua instância de banco de dados para anexá-lo. Para obter mais informações, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md). 

Para otimizar sua instância de banco de dados Oracle para o Siebel CRM, você pode personalizar determinados parâmetros. A tabela a seguir mostra algumas configurações de parâmetros recomendadas. Para obter mais informações sobre como ajustar a performance do Siebel CRM, consulte o [Siebel CRM Performance Tuning Guide](https://docs.oracle.com/cd/E63029_01/books/PerformTun/toc.htm) (Guia de ajuste da performance do Siebel CRM). 


****  

| Nome do parâmetro | Valor padrão | Orientação para a performance ideal do Siebel CRM | 
| --- | --- | --- | 
| \$1always\$1semi\$1join | `CHOOSE` | `OFF`  | 
| \$1b\$1tree\$1bitmap\$1plans | `TRUE` | `FALSE`  | 
| \$1like\$1with\$1bind\$1as\$1equality | `FALSE` | `TRUE`  | 
| \$1no\$1or\$1expansion | `FALSE` | `FALSE`  | 
| \$1optimizer\$1join\$1sel\$1sanity\$1check | `TRUE` | `TRUE`  | 
| \$1optimizer\$1max\$1permutations | 2000 | 100  | 
| \$1optimizer\$1sortmerge\$1join\$1enabled | `TRUE` | `FALSE`  | 
| \$1partition\$1view\$1enabled | `TRUE` | `FALSE`  | 
| open\$1cursors | `300` | No mínimo **2000**.  | 

### Criar snapshots
<a name="Oracle.Resources.Siebel.Snapshots"></a>

Depois de criar seu Siebel Database, você pode copiar o banco de dados usando os recursos de snapshot do Amazon RDS. Para obter mais informações, consulte [Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS](USER_CreateSnapshot.md) e [Restaurar uma instância de banco de dados](USER_RestoreFromSnapshot.md). 

## Suporte para outros componentes do Siebel CRM
<a name="Oracle.Resources.Siebel.OtherComponents"></a>

Além do seu Siebel Database, você também pode usar a Amazon Web Services para dar suporte aos outros componentes da sua arquitetura de aplicativos Siebel CRM. Você pode encontrar mais informações sobre o suporte fornecido pela Amazon AWS para componentes adicionais do Siebel CRM na tabela a seguir. 


****  

| Componente do Siebel CRM | Amazon AWS Support | 
| --- | --- | 
| Siebel Enterprise(com um ou mais Siebel Servers) |  Você pode hospedar seus Siebel Servers em instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Você pode usar o Amazon EC2 para iniciar quantos servidores virtuais forem necessários. Usando o Amazon EC2, você pode escalar facilmente para cima ou para baixo de forma a lidar com mudanças nos requisitos. Para obter mais informações, consulte [O que é o Amazon EC2?](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)  Você pode colocar seus servidores na mesma VPC com sua instância de banco de dados e usar o security group da VPC para acessar o banco de dados. Para obter mais informações, consulte [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md).   | 
| Servidores da web(com Siebel Web Server Extensions) |  Você pode instalar vários Servidores da Web em várias instâncias do EC2. Você pode usar o Elastic Load Balancing para distribuir o tráfego de entrada entre as instâncias. Para obter mais informações, consulte [O que é o Elastic Load Balancing?](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elastic-load-balancing.html)   | 
| Siebel Gateway Name Server |  Você pode hospedar seu Siebel Gateway Name Server em uma instância do EC2. Em seguida, pode colocar seu servidor na mesma VPC com a instância de banco de dados e usar o security group da VPC para acessar o banco de dados. Para obter mais informações, consulte [Trabalhar com uma instância de banco de dados em uma VPC](USER_VPC.WorkingWithRDSInstanceinaVPC.md).   | 