

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