Configurar o Oracle GoldenGate - Amazon Relational Database Service

Configurar o Oracle GoldenGate

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.

Configurar um hub do Oracle GoldenGate no Amazon EC2

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.

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
  2. Configure o arquivo mgr.prm.

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

    PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
  3. 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

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

Etapa 1: Ativar o registro em log complementar no banco de dados de origem

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_GOLDENGATE_REPLICATION como true

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.

Etapa 3: Definir o período de retenção de log no banco de dados de origem

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_hours horas, use a consulta a seguir, substituindo num_hours 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

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.

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

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;
  2. 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

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.

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

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

Etapa 1: Definir o parâmetro de inicialização ENABLE_GOLDENGATE_REPLICATION como true

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.

Etapa 2: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de destino

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

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;
  2. 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

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.

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