Implementar o Oracle Golden Gate em uma máquina virtual (VM) Linux do Azure
Aplica-se a: ✔️ Linux VMs
A CLI do Azure é utilizada para criar e gerir recursos do Azure a partir da linha de comandos ou em scripts. Este guia detalha como usar a CLI do Azure para implantar um banco de dados Oracle 19c a partir da imagem da galeria do Azure Marketplace.
Este documento mostra passo a passo como criar, instalar e configurar o Oracle Golden Gate em uma VM do Azure. Neste tutorial, duas máquinas virtuais são configuradas em um conjunto de disponibilidade em uma única região. O mesmo tutorial pode ser usado para configurar o OracleGolden Gate para VMs em diferentes zonas de disponibilidade em uma única região do Azure ou para VMs configuradas em duas regiões diferentes.
Antes de começar, verifique se a CLI do Azure está instalada. Para obter mais informações, veja Guia de instalação da CLI do Azure.
Introdução
GoldenGate é um software de replicação lógica que permite replicação, filtragem e transformação em tempo real de dados de um banco de dados de origem para um banco de dados de destino. Esse recurso garante que as alterações no banco de dados de origem sejam replicadas em tempo real, possibilitando que o banco de dados de destino esteja atualizado com os dados mais recentes.
Use o GoldenGate principalmente para casos de replicação heterogêneos, como a replicação de dados de bancos de dados de origem diferentes para um único banco de dados. Por exemplo, um armazém de dados. Você também pode usá-lo para migrações entre plataformas, como de ambientes SPARC e AIX para Linux x86, e cenários avançados de alta disponibilidade e escalabilidade.
Além disso, o GoldenGate também é adequado para migrações de tempo de inatividade quase zero, uma vez que suporta migrações on-line com o mínimo de interrupção para os sistemas de origem.
Embora o GoldenGate facilite a replicação bidirecional, o aplicativo deve ser configurado de acordo. Além disso, o software permite a filtragem e transformação de dados para atender a requisitos de negócios específicos, permitindo que os usuários façam uso dos dados replicados para vários fins.
Preparar o ambiente
Para executar a instalação do Oracle Golden Gate, você precisa criar duas VMs do Azure no mesmo conjunto de disponibilidade. A imagem do Marketplace usada para criar as VMs é Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.
Você também precisa estar familiarizado com o editor Unix vi e ter uma compreensão básica do X Server.
A tabela a seguir é um resumo da configuração do ambiente:
Site primário | Replicar site | |
---|---|---|
Versão Oracle | Banco de dados Oracle 19.3.1.0 | Banco de dados Oracle 19.3.1.0 |
Nome da máquina | ggVM1 | ggVM2 |
Sistema Operativo | Oracle Linux 7.x [en] | Oracle Linux 7.x [en] |
Oracle SID | CDB1 | CDB1 |
Esquema de replicação | TESTAR | TESTAR |
Proprietário/replicante Golden Gate | C##GGADMIN | REPUSER |
Processo Golden Gate | EXTORA | REPORA |
Iniciar sessão no Azure
Abra seu shell preferido no Windows, Linux ou Azure Shell.
Entre na sua assinatura do Azure com o comando az login . Em seguida, siga as instruções na tela.
$ az login
Certifique-se de que está ligado à subscrição correta verificando o nome e/ou ID da subscrição.
$ az account show
{ "environmentName": "XXXXX", "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "id": "<SUBSCRIPTION_ID>", "isDefault": true, "managedByTenants": [], "name": "<SUBSCRIPTION_NAME>", "state": "Enabled", "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "user": { "cloudShellID": true, "name": "aaaaa@bbbbb.com", "type": "user" } }
Gerar chaves de autenticação
Usamos autenticação baseada em arquivo de chave com ssh para nos conectarmos à VM do Oracle Database. Certifique-se de que seus arquivos de chave privada (nomeada id_rsa
) e pública (nomeada id_rsa.pub
) sejam criados em seu shell.
A localização dos principais arquivos depende do seu sistema de origem.
Windows: %USERPROFILE%.ssh Linux: ~/.ssh
Se eles não existirem, você pode criar um novo par de arquivos de chave.
ssh-keygen -m PEM -t rsa -b 4096
O diretório .ssh e os arquivos de chave são criados. Para obter mais informações, consulte Criar e gerenciar chaves SSH para autenticação em uma VM Linux no Azure
Criar um grupo de recursos
Para criar um grupo de recursos, utilize o comando az group create. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.
$ az group create --name GoldenGateOnAzureLab --location westus
Criar e configurar rede
Criar a rede virtual
Use o comando seguinte para criar a rede virtual que hospeda os recursos que criamos neste laboratório.
$ az network vnet create \
--name ggVnet \
--resource-group GoldenGateOnAzureLab \
--address-prefixes "10.0.0.0/16" \
--subnet-name ggSubnet1 \
--subnet-prefixes "10.0.0.0/24"
Criar um NSG (Grupo de Segurança de Rede)
Crie um grupo de segurança de rede (NSG) para bloquear sua rede virtual.
$ az network nsg create \ --resource-group GoldenGateOnAzureLab \ --name ggVnetNSG
Crie uma regra NSG para permitir a comunicação dentro da rede virtual.
$ az network nsg rule create --resource-group GoldenGateOnAzureLab --nsg-name ggVnetNSG \ --name ggAllowVnet \ --protocol '*' --direction inbound --priority 3400 \ --source-address-prefix 'VirtualNetwork' --source-port-range '*' \ --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
Crie uma regra NSG para negar todas as conexões de entrada.
$ az network nsg rule create \ --resource-group GoldenGateOnAzureLab \ --nsg-name ggVnetNSG \ --name ggDenyAllInBound \ --protocol '*' --direction inbound --priority 3500 \ --source-address-prefix '*' --source-port-range '*' \ --destination-address-prefix '*' --destination-port-range '*' --access deny
Atribua NSG à Sub-rede onde hospedamos nossos servidores.
$ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
Criar Rede de Bastiões
Criar sub-rede Bastion. O nome da sub-rede deve ser AzureBastionSubnet.
$ az network vnet subnet create \ --resource-group GoldenGateOnAzureLab \ --name AzureBastionSubnet \ --vnet-name ggVnet \ --address-prefixes 10.0.1.0/24
Crie IP público para Bastion.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
Crie o recurso Azure Bastion. Leva cerca de 10 minutos para que o recurso seja implantado.
$ az network bastion create \ --resource-group GoldenGateOnAzureLab \ --name ggBastion \ --public-ip-address ggBastionIP \ --vnet-name ggVnet \ --sku Standard \ --enable-tunneling \ --enable-ip-connect true
Criar VM de servidor X (ggXServer)
Substitua sua senha e execute o seguinte comando para criar uma VM de estação de trabalho Windows onde implantamos o X Server.
$ az vm create \
--resource-group GoldenGateOnAzureLab \
--name ggXServer \
--image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
--size Standard_DS1_v2 \
--vnet-name ggVnet \
--subnet ggSubnet1 \
--public-ip-sku Standard \
--nsg "" \
--data-disk-delete-option Delete \
--os-disk-delete-option Delete \
--nic-delete-option Delete \
--admin-username azureuser \
--admin-password <ENTER_YOUR_PASSWORD_HERE>
Conecte-se ao ggXServer através do Bastion
Conecte-se ao ggXServer usando Bastion.
- Navegue até ggXServer a partir do portal do Azure
- Localize Visão geral no painel de navegação esquerdo
- Selecione Connect>Bastion no menu na parte superior
- Selecione a guia Bastion
- Clique em Usar bastião
Preparar ggXServer para executar o X Server
O X Server é necessário para etapas posteriores deste laboratório. Execute as seguintes etapas para instalar e iniciar o X Server.
Baixe Xming X Server para Windows para ggXServer e instale com todas as opções padrão.
Certifique-se de que não selecionou Iniciar no final da instalação
Inicie o aplicativo "XLAUNCH" no menu Iniciar.
Selecionar várias janelas
Selecione Iniciar sem cliente
Selecione Sem controle de acesso
Selecione Permitir acesso para permitir o X Server através do Firewall do Windows
Se você reiniciar sua VM ggXServer , siga as etapas 2 a 6 acima para reiniciar o aplicativo X Server.
Criar máquinas virtuais de banco de dados Oracle
Para este laboratório, criamos máquinas ggVM1
virtuais e ggVM2
a partir da imagem do Oracle Database 19c. Se ainda não existirem no local da chave padrão, esse comando também criará chaves SSH. Para utilizar um conjunto específico de chaves, utilize a opção --ssh-key-value
. Se você já criou suas chaves SSH na seção Gerar chaves de autenticação, essas chaves serão usadas.
Quando você cria uma nova máquina virtual, o size
parâmetro indica o tamanho e o tipo de máquina virtual criada. Dependendo da região do Azure que você selecionou para criar a máquina virtual e suas configurações de assinatura, alguns tamanhos e tipos de máquina virtual podem não estar disponíveis para uso. O exemplo a seguir usa o tamanho mínimo necessário para este laboratório Standard_DS1_v2
. Se quiser alterar as especificações da máquina virtual, selecione um dos tamanhos disponíveis em Tamanhos de VM do Azure. Para fins de teste, você pode escolher entre os tipos de máquina virtual de uso geral (série D). Para implantações piloto ou de produção, a memória otimizada (série E e série M) é mais adequada.
Criar ggVM1 (principal)
$ az vm create \
--resource-group GoldenGateOnAzureLab \
--name ggVM1 \
--image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
--size Standard_DS1_v2 \
--generate-ssh-keys \
--admin-username azureuser \
--vnet-name ggVnet \
--subnet ggSubnet1 \
--public-ip-address "" \
--nsg "" \
--zone 1
Criar ggVM2 (replicar)
$ az vm create \
--resource-group GoldenGateOnAzureLab \
--name ggVM2 \
--image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
--size Standard_DS1_v2 \
--generate-ssh-keys \
--admin-username azureuser \
--vnet-name ggVnet \
--subnet ggSubnet1 \
--public-ip-address "" \
--nsg "" \
--zone 2
Conectar-se ao ggVM1 (principal)
Conecte-se ao ggVM1 usando Bastion.
- Navegue até ggVM1 a partir do portal do Azure.
- Vá para Visão geral no painel esquerdo.
- Selecione Connect>Bastion no menu na parte superior
- Selecione a guia Bastião
- Selecione Usar bastião
Criar o banco de dados em ggVM1 (primário)
O software Oracle já está instalado na imagem do Marketplace, portanto, o próximo passo é criar o banco de dados.
- Execute o software como o
oracle
usuário.
$ sudo su - oracle
- Crie o banco de dados usando o seguinte comando. Este comando pode levar de 30 a 40 minutos para ser concluído.
$ dbca -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 \
-sid cdb1 \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword OraPasswd1 \
-systemPassword OraPasswd1 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName pdb1 \
-pdbAdminPassword OraPasswd1 \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-storageType FS \
-datafileDestination "/u01/app/oracle/oradata/" \
-ignorePreReqs
A saída deve ser semelhante à resposta a seguir.
Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for more details.
- Defina as variáveis ORACLE_SID e LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Execute a seguir para adicionar ORACLE_SID e LD_LIBRARY_PATH ao arquivo .bashrc, para que essas configurações sejam salvas para entradas futuras. ORACLE_HOME variável já deve estar definida no arquivo .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Iniciar ouvinte Oracle
$ lsnrctl start
Conectar-se ao ggVM2 (replicar)
Conecte-se ao ggVM2 usando Bastion.
- Navegue até ggVM2 a partir do portal do Azure.
- Vá para Visão geral no painel esquerdo.
- Selecione Connect>Bastion no menu na parte superior
- Selecione a guia Bastião
- Selecione Usar bastião
Abra portas de firewall para ggVM1
Configure o firewall para permitir conexões do ggVM1. O seguinte comando é executado em ggVM2.
$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit
Criar o banco de dados no ggVM2 (replicar)
- Mudar para utilizador,
oracle
se necessário
$ sudo su - oracle
- Criar a base de dados
$ dbca -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 \
-sid cdb1 \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword OraPasswd1 \
-systemPassword OraPasswd1 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName pdb1 \
-pdbAdminPassword OraPasswd1 \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-storageType FS \
-datafileDestination "/u01/app/oracle/oradata/" \
-ignorePreReqs
- Defina as variáveis ORACLE_SID e ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Execute a seguir para adicionar ORACLE_SID e LD_LIBRARY_PATH ao arquivo .bashrc, para que essas configurações sejam salvas para entradas futuras. ORACLE_HOME variável já deve estar definida no arquivo .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Iniciar ouvinte Oracle
$ lsnrctl start
Configurar Golden Gate em ggVM1
Siga as etapas nesta seção para instalar e configurar o Golden Gate.
Ativar o modo de log de arquivamento no ggVM1 (principal)
- Ligue-se a
sqlplus
$ sqlplus / as sysdba
- Ativar log de arquivamento
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
- Habilite o log de força e verifique se pelo menos um arquivo de log está presente.
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER SYSTEM set enable_goldengate_replication=true;
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SESSION SET CONTAINER=PDB1;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> EXIT;
Baixar Golden Gate software
Faça o download do arquivo 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip na página de download do Oracle Golden Gate, sob o título de download Oracle GoldenGate 21.3.0.0.0 for Oracle on Linux x86-64.
Depois de baixar o arquivo .zip para o computador cliente, você pode usar o protocolo SCP (Secure Copy Protocol) para copiar os arquivos para suas máquinas virtuais (ggVM1 e ggVM2). Certifique-se de que
scp
o comando aponta para o caminho correto de .zip arquivo.Copiar para ggVM1
Entre e verifique se você está usando a assinatura correta, conforme necessário, conforme descrito em Entrar no Azure
Abra o túnel para sua VM de destino usando o seguinte comando do PowerShell:
$ggVM1id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM1 --query 'id' --output tsv) az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM1id --resource-port 22 --port 57500
Para se conectar à VM de destino através do túnel, deixe o primeiro prompt de comando em execução e abra um segundo prompt de comando. Nesta segunda janela de prompt de comando, você pode carregar arquivos de sua máquina local para sua VM de destino usando o seguinte comando. O arquivo de chave correto
id_rsa
para acessar a máquina virtual deve residir no.ssh
diretório ou você pode apontar para um arquivo de chave diferente usando-i
parâmetro parascp
comando.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Copiar para ggVM2
Abra o túnel para sua VM de destino usando o seguinte comando do PowerShell:
$ggVM2id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM2 --query 'id' --output tsv) az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM2id --resource-port 22 --port 57501
Deixe o primeiro prompt de comando em execução e abra um segundo prompt de comando para se conectar à VM de destino através do túnel. Nesta segunda janela de prompt de comando, você pode carregar arquivos de sua máquina local para sua VM de destino usando o seguinte comando. O arquivo de chave correto
id_rsa
para acessar a máquina virtual deve residir no.ssh
diretório ou você pode apontar para um arquivo de chave diferente usando-i
parâmetro parascp
comando.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Instale o software Golden Gate
Conecte-se ao ggVM1 usando Bastion.
- Navegue até ggVM1 a partir do portal do Azure.
- Ir para Visão geral no painel esquerdo
- Selecione Connect>Bastion no menu na parte superior
- Selecione a guia Bastião
- Selecione Usar bastião
Mova o arquivo .zip para a pasta /opt e altere o proprietário
$ sudo su - $ mv /home/azureuser/*.zip /opt
Descompacte os arquivos (instale o utilitário de descompactação se ainda não estiver instalado)
$ yum install unzip $ cd /opt $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
Alterar permissão
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
Inicie o instalador Golden Gate
$ sudo su - oracle $ export DISPLAY=10.0.0.4:0.0 $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
O instalador abre no ggXServer.
Selecione 'Oracle GoldenGate for Oracle Database 21c'. Em seguida, selecione Avançar para continuar.
Defina a localização do software como /u01/app/oracle/product/19.0.0/oggcore_1, certifique-se de que a caixa Iniciar Gestor está selecionada e selecione Seguinte para continuar.
Na tela Resumo, selecione Instalar para continuar.
Aguarde a conclusão da instalação.
Selecione Fechar para continuar.
Conecte-se ao ggVM2 usando Bastion.
- Navegue até ggVM2 a partir do portal do Azure.
- Ir para Visão geral no painel esquerdo
- Selecione Connect>Bastion no menu na parte superior
- Selecione a guia Bastião
- Selecione Usar bastião
Repita os passos 2-10 acima no ggVM2
Configurar serviço no ggVM1 (principal)
Crie ou atualize o arquivo tnsnames.ora.
$ sudo su - oracle $ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Quando o editor vi abre você tem que pressionar
i
para mudar para o modo de inserção, em seguida, copiar e colar o conteúdo do arquivo e pressioneEsc
a tecla ,:wq!
para salvar o arquivo.cdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=cdb1) ) ) pdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=pdb1) ) )
Crie as contas de proprietário e usuário do Golden Gate.
Nota
A conta de proprietário deve ter o prefixo C##.
$ sqlplus / as sysdba
SQL> CREATE USER C##GGADMIN identified by ggadmin; SQL> EXEC dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL'); SQL> GRANT DBA to C##GGADMIN container=all; SQL> connect C##GGADMIN/ggadmin SQL> ALTER SESSION SET CONTAINER=PDB1; SQL> EXIT;
Criar a conta de utilizador de teste Golden Gate
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ sqlplus system/OraPasswd1@pdb1
SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; SQL> GRANT connect, resource, dba TO test; SQL> ALTER USER test QUOTA 100M on USERS; SQL> connect test/test@pdb1 SQL> @demo_ora_create SQL> @demo_ora_insert SQL> EXIT;
Configure o arquivo de parâmetro extract.
Inicie a interface de linha de comando Golden gate (ggsci):
$ sudo su - oracle $ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> DBLOGIN USERID test@pdb1, PASSWORD test Successfully logged into database pdb1 GGSCI> ADD SCHEMATRANDATA pdb1.test 2017-05-23 15:44:25 INFO OGG-01788 SCHEMATRANDATA has been added on schema test. 2017-05-23 15:44:25 INFO OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema test. GGSCI> EDIT PARAMS EXTORA
Pressione
i
a tecla para alternar para o modo de inserção e copie e cole (clique com o botão direito na janela SSH) seguindo para o arquivo de parâmetro EXTRACT. Pressione a tecla:wq!
Esc para salvar o arquivo.EXTRACT EXTORA USERID C##GGADMIN@cdb1, PASSWORD ggadmin RMTHOST 10.0.0.5, MGRPORT 7809 RMTTRAIL ./dirdat/rt DDL INCLUDE MAPPED DDLOPTIONS REPORT LOGALLSUPCOLS UPDATERECORDFORMAT COMPACT TABLE pdb1.test.TCUSTMER; TABLE pdb1.test.TCUSTORD;
Registrar extrato - extrato integrado.
GGSCI> dblogin userid C##GGADMIN@cdb1, password ggadmin Successfully logged into database CDB$ROOT. GGSCI> REGISTER EXTRACT EXTORA DATABASE CONTAINER(pdb1) 2023-03-03 19:37:01 INFO OGG-02003 Extract group EXTORA successfully registered with database at SCN 2142014. GGSCI> exit
Configure pontos de verificação de extração e inicie a extração em tempo real
$ ./ggsci
GGSCI> ADD EXTRACT EXTORA, INTEGRATED TRANLOG, BEGIN NOW EXTRACT (Integrated) added. GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT EXTORA, MEGABYTES 10 RMTTRAIL added. GGSCI> START EXTRACT EXTORA Sending START request to MANAGER ... EXTRACT EXTORA starting GGSCI > INFO ALL Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXTORA 00:00:11 00:00:04 GGSCI > EXIT
Nesta etapa, você encontra o SCN inicial, que é usado posteriormente, em uma seção diferente.
$ sqlplus / as sysdba
SQL> alter session set container = pdb1; SQL> SELECT current_scn from v$database; CURRENT_SCN ----------- 2172191 SQL> EXIT;
$ ./ggsci GGSCI> EDIT PARAMS INITEXT
Quando o editor vi abre você tem que pressionar
i
para mudar para o modo de inserção, em seguida, copiar e colar o conteúdo do arquivo e pressioneEsc
a tecla ,:wq!
para salvar o arquivo.EXTRACT INITEXT USERID C##GGADMIN@cdb1, PASSWORD ggadmin RMTHOST 10.0.0.6, MGRPORT 7809 RMTTASK REPLICAT, GROUP INITREP TABLE pdb1.test.*, SQLPREDICATE 'AS OF SCN 2172191';
GGSCI> ADD EXTRACT INITEXT, SOURCEISTABLE Extract added. GGSCI> EXIT
Configurar serviço no ggVM2 (replicar)
Crie ou atualize o arquivo tnsnames.ora.
$ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Quando o editor vi abre você tem que pressionar
i
para mudar para o modo de inserção, em seguida, copiar e colar o conteúdo do arquivo e pressioneEsc
a tecla ,:wq!
para salvar o arquivo.cdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=cdb1) ) ) pdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=pdb1) ) )
Crie uma conta replicada.
$ sqlplus / as sysdba
SQL> ALTER SYSTEM set enable_goldengate_replication=true; SQL> ALTER SESSION SET CONTAINER = pdb1; SQL> CREATE USER REPUSER IDENTIFIED BY REP_PASS CONTAINER=CURRENT; SQL> GRANT DBA TO REPUSER; SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('REPUSER',CONTAINER=>'PDB1'); SQL> CONNECT REPUSER/REP_PASS@PDB1 SQL> EXIT;
Crie uma conta de usuário de teste Golden Gate.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ sqlplus system/OraPasswd1@pdb1
SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; SQL> GRANT connect, resource, dba TO test; SQL> ALTER USER test QUOTA 100M on USERS; SQL> CONNECT test/test@pdb1 SQL> @demo_ora_create SQL> EXIT;
Arquivo de parâmetro REPLICAT para replicar alterações.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> EDIT PARAMS REPORA
Quando o editor vi abre você tem que pressionar
i
para mudar para o modo de inserção, em seguida, copiar e colar o conteúdo do arquivo e pressioneEsc
a tecla ,:wq!
para salvar o arquivo.REPLICAT REPORA ASSUMETARGETDEFS DISCARDFILE ./dirrpt/repora.dsc, PURGE, MEGABYTES 100 DDL INCLUDE MAPPED DDLOPTIONS REPORT DBOPTIONS INTEGRATEDPARAMS(parallelism 6) USERID repuser@pdb1, PASSWORD REP_PASS MAP pdb1.test.*, TARGET pdb1.test.*;
Configure um ponto de verificação de replicação.
GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt GGSCI> EDIT PARAMS INITREP
Quando o editor vi abre você tem que pressionar
i
para mudar para o modo de inserção, em seguida, copiar e colar o conteúdo do arquivo e pressioneEsc
a tecla ,:wq!
para salvar o arquivo.REPLICAT INITREP ASSUMETARGETDEFS DISCARDFILE ./dirrpt/tcustmer.dsc, APPEND USERID repuser@pdb1, PASSWORD REP_PASS MAP pdb1.test.*, TARGET pdb1.test.*;
GGSCI> ADD REPLICAT INITREP, SPECIALRUN GGSCI> EXIT
Configurar replicação (ggVM1 e ggVM2)
1. Configurar a replicação no ggVM2 (replicar)
Iniciar sessão para ggsci
.
$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR
Atualize o arquivo com o seguinte.
PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW
Reinicie o serviço Manager.
GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT
2. Configurar a replicação no ggVM1 (principal)
Inicie o carregamento inicial e verifique se há erros.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT
3. Configurar a replicação no ggVM2 (replicar)
Altere o número SCN com o número obtido anteriormente.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191
A replicação foi iniciada, você pode testá-la inserindo novos registros em tabelas TEST.
Exibir status do trabalho e solução de problemas
Ver relatórios
Para exibir relatórios no ggVM1, execute os seguintes comandos.
GGSCI> VIEW REPORT EXTORA
Para exibir relatórios no ggVM2, execute os seguintes comandos.
GGSCI> VIEW REPORT REPORA
Ver estado e histórico
Para exibir o status e o histórico no ggVM1, execute os seguintes comandos.
GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin GGSCI> INFO EXTRACT EXTORA, DETAIL
Para exibir o status e o histórico no ggVM2, execute os seguintes comandos.
GGSCI> DBLOGIN USERID REPUSER@PDB1 PASSWORD REP_PASS GGSCI> INFO REP REPORA, DETAIL
$ sqlplus test/test@pdb1
SQL> select * from TCUSTMER; SQL> select * from TCUSTORD;
Observar a replicação de dados
Conectar-se ao banco de dados primário no ggVM1
$ sqlplus test/test@pdb1
Selecionar registros existentes na tabela
SQL> select * from TCUSTORD;
Criar um registro de teste
SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102); SQL> COMMIT; SQL> EXIT;
Observe a transação captada pela Golden Gate (Nota Total insere valor)
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> STATS EXTORA
Sending STATS request to Extract group EXTORA ...
Start of statistics at 2023-03-24 19:41:54.
DDL replication statistics (for all trails):
*** Total statistics since extract started ***
Operations 0.00
Mapped operations 0.00
Unmapped operations 0.00
Other operations 0.00
Excluded operations 0.00
Output to ./dirdat/rt:
Extracting from PDB1.TEST.TCUSTORD to PDB1.TEST.TCUSTORD:
*** Total statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
*** Daily statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
*** Hourly statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
*** Latest statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
End of statistics.
Conectar-se ao banco de dados primário no ggVM2
$ sqlplus test/test@pdb1
Verificar se o novo registro foi replicado
SQL> select * from TCUSTORD;
CUST ORDER_DAT PRODUCT_ ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ---- --------- -------- ---------- ------------- -------------- -------------- OLLJ 11-APR-99 CYCLE 400 16000 1 102 WILL 30-SEP-94 CAR 144 17520 3 100 JANE 11-NOV-95 PLANE 256 133300 1 100
A instalação e configuração do Golden Gate no Oracle linux está concluída.
Excluir a VM ggXServer
ggXServer VM só é usado durante a instalação. Você pode excluí-lo com segurança depois de concluir este documento de laboratório, mas manter sua configuração de laboratório do GoldenGate no Azure intacta.
$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes
$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP
Excluir Golden Gate na configuração do Azure Lab
Quando não for mais necessário, o comando a seguir pode ser usado para remover o grupo de recursos, a VM e todos os recursos relacionados para este laboratório.
$ az group delete --name GoldenGateOnAzureLab
Próximos passos
Tutorial sobre a criação de máquinas virtuais altamente disponíveis