Tarefa 1: Configurar os Bancos de Dados de Origem e de Destino para o Oracle GoldenGate
Os bancos de dados do Oracle GoldenGate de origem e destino devem ser configurados usando as recomendações a seguir.
Execute as seguintes etapas para completar esta tarefa:
-
Etapa 1.1 - Configuração do Banco de Dados
-
Etapa 1.2 - Criar o Usuário Administrador de Replicação de Banco de Dados
-
Etapa 1.3 - Criar os Serviços de Banco de Dados
Etapa 1.1 - Configuração do Banco de Dados
Os bancos de dados de origem e destino do Oracle GoldenGate devem ser configurados usando as seguintes recomendações:
| Configuração | Escopo | Exemplo |
|---|---|---|
| Ativar Modo de Log de Arquivamento | Origem e Destino | SQL> ARCHIVE LOG LIST Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 110 Next log sequence to archive 113 Current log sequence 113 |
Ativar FORCE LOGGING |
Origem e Destino | ALTER DATABASE FORCE LOGGING; |
ENABLE_GOLDENGATE_REPLICATION |
Origem, Destino e Stand-by | ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH SID='*'; |
| Log Complementar | Origem Obrigatório no Destino para casos em que a replicação é revertida |
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; |
| Adicionar registro em log em nível de esquema ou tabela para objetos replicados | Origem Obrigatório no Destino para casos em que a replicação é revertida |
ADD SCHEMATRANDATA ou ADD TRANDATA |
STREAMS_POOL_SIZE |
Origem Obrigatório no Destino para casos em que a replicação é revertida |
O valor de
Por exemplo, em um banco de dados com 2 Extracts e 2 Replicats integrados:
ALTER SYSTEM SET STREAMS_POOL_SIZE=5G SCOPE=BOTH SID='*'; |
Para obter as etapas sobre como preparar o banco de dados para o Oracle GoldenGate, consulte Preparando o Banco de Dados para o Oracle GoldenGate.
Etapa 1.2 - Criar o Usuário Administrador de Replicação de Banco de Dados
Os bancos de dados de origem e destino precisam de um usuário administrador GoldenGate criado, com privilégios apropriados designados da seguinte forma:
-
Para o banco de dados contêiner (CDB) multilocatário:
-
O banco de dados de origem, Extract GoldenGate, deve ser configurado para estabelecer conexão com um usuário no banco de dados contêiner raiz, usando um c##
-
O banco de dados de destino, um usuário administrador GoldenGate separado, é necessário para cada banco de dados plugável (PDB).
-
Para obter mais detalhes sobre como criar um administrador GoldenGate em um Banco de Dados Oracle Multitenant, consulte Configurando o Oracle GoldenGate em um Banco de Dados Contêiner Multitenant.
-
-
Para bancos de dados não CDB, consulte Preparar Usuários e Privilégios do Banco de Dados para a Oracle
Como o usuário do SO oracle no sistema de banco de dados de origem, execute as seguintes instruções SQL para criar o usuário do banco de dados para o Oracle GoldenGate e designar OS privilégios necessários:
[opc@exadb1_node1 ~]$ sudo su - oracle
[oracle@exadb1_node1 ~]$ source dbName.env
[oracle@exadb1_node1 ~]$ sqlplus / as sysdba
# Source CDB
SQL>
alter session set container=cdb$root;
create user c##ggadmin identified by "ggadmin_password" container=all default tablespace USERS temporary tablespace temp;
alter user c##ggadmin quota unlimited on users;
grant set container to c##ggadmin container=all;
grant alter system to c##ggadmin container=all;
grant create session to c##ggadmin container=all;
grant alter any table to c##ggadmin container=all;
grant resource to c##ggadmin container=all;
exec dbms_goldengate_auth.grant_admin_privilege('c##ggadmin',container=>'all');
# Source PDB
SQL>
alter session set container=pdbName;
create user ggadmin identified by "ggadmin_password" container=current;
grant create session to ggadmin container=current;
grant alter any table to ggadmin container=current;
grant resource to ggadmin container=current;
exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');
Como o usuário do sistema operacional oracle no sistema de destino, execute as seguintes instruções SQL para criar o usuário do banco de dados para o Oracle GoldenGate e designar OS privilégios necessários:
[opc@exadb2_node1 ~]$ sudo su - oracle
[oracle@exadb2_node1 ~]$ source dbName.env
[oracle@exadb2_node1 ~]$ sqlplus / as sysdba
# Target PDB
SQL>
alter session set container=pdbName;
create user ggadmin identified by "ggadmin_password" container=current;
grant alter system to ggadmin container=current;
grant create session to ggadmin container=current;
grant alter any table to ggadmin container=current;
grant resource to ggadmin container=current;
grant dv_goldengate_admin, dv_goldengate_redo_access to ggadmin container=current;
exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');
Etapa 1.3 - Criar os Serviços de Banco de Dados
Se os bancos de dados de origem e de destino estiverem executando a configuração recomendada em um cluster do Oracle RAC com o Oracle Data Guard, será necessário criar um serviço baseado em atribuição que permita que os processos Extract ou Replicat estabeleçam conexão com a instância correta do banco de dados principal do Data Guard.
Ao usar um banco de dados multitenant de origem, é necessário um serviço separado para o banco de dados contêiner raiz (CDB) e o banco de dados plugável (PDB) que contém o esquema que está sendo replicado. Para um banco de dados multitenant de destino, é necessário um único serviço para o PDB.
Como o usuário do SO oracle no sistema de banco de dados principal, use dbaascli para localizar o nome do CDB e do PDB, conforme mostrado aqui:
[opc@exadb1_node1 ~]$ sudo su - oracle
[oracle@exadb1_node1 ~]$ source dbName.env
[oracle@exadb1_node1 ~]$ dbaascli database getDetails
--dbname dbName |egrep 'dbName|pdbName'
"dbName" : "dbName",
"pdbName" : "pdbName",
Como usuário do SO oracle nos sistemas de banco de dados principal e stand-by, crie e inicie o serviço de banco de dados CDB usando o seguinte comando:
[opc@exadb1_node1 ~]$ sudo su - oracle
[oracle@exadb1_node1 ~]$ source dbName.env
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -role PRIMARY
Como o usuário do SO oracle nos sistemas de banco de dados principal e stand-by, crie e inicie o serviço de banco de dados PDB usando o seguinte comando:
[oracle@exadb1_node1 ~]$ srvctl add service -db $ORACLE_UNQNAME
-service dbName.pdbName.ggoraclevcn.com -preferred ORACLE_SID1
-available ORACLE_SID2 -pdb pdbName -role PRIMARY
Como o usuário do SO oracle nos sistemas de banco de dados principal e stand-by, inicie e verifique se OS serviços estão em execução, conforme mostrado aqui:
[oracle@exadb1_node1 ~]$ srvctl start service -db $ORACLE_UNQNAME -role
[oracle@exadb1_node1 ~]$ srvctl status service -d $ORACLE_UNQNAME |grep goldengate
Service dbName.ggoraclevcn.com is running on instance(s) SID1
Service dbName.pdbName.ggoraclevcn.com is running on instance(s) SID1
Observação: repita a etapa 1.3 no sistema de banco de dados de origem e de destino.