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.
Tópicos
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
-
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 comandoCREATE 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
-
Configure o arquivo
mgr.prm
.O exemplo a seguir adiciona linhas ao arquivo
$GGHOME/dirprm/mgr.prm
.PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
-
Inicie o gerente.
O exemplo a seguir inicia o
ggsci
e executa o comandostart 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.
Etapas de configuração
- Etapa 1: Ativar o registro em log complementar no banco de dados de origem
- Etapa 2: Definir o parâmetro de inicialização ENABLE_GOLDENGATE_REPLICATION como true
- Etapa 3: Definir o período de retenção de log no banco de dados de origem
- Etapa 4: Criar uma conta do usuário do Oracle GoldenGate no banco de dados de origem
- Etapa 5: Conceder privilégios ao usuário no banco de dados de origem
- Etapa 6: Adicionar um alias TNS ao banco de dados de origem
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
-
Conceda os privilégios necessários à conta de usuário do Oracle GoldenGate usando o comando SQL
grant
e o procedimentogrant_sys_object
dordsadmin.rdsadmin_util
. As instruções a seguir concedem privilégios a um usuário denominadooggadm1
.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; -
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.
Etapas de configuração
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
-
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;
-
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)) )