Replicar dados do PostgreSQL para o MySQL
Aprenda a replicar dados do PostgreSQL para o MySQL usando o OCI GoldenGate.
Antes de começar
Para concluir este início rápido com sucesso, você deve ter o seguinte:
-
Uma instalação do PostgreSQL para servir como banco de dados de origem (Consulte Configuração do ambiente)
-
Abra a porta 5432 na lista de segurança da sua VCN
-
Um Banco de Dados HeatWave para servir de banco de dados de destino.
Configuração do ambiente: PostgreSQL
Para configurar o ambiente para esse Início Rápido:
-
Execute os comandos a seguir para instalar o PostgreSQL.
-
Instale o servidor PostgreSQL:
sudo yum install postgresql-server -
Instale o módulo postgresql-contrib para evitar esta exceção SQL:
sudo yum install postgresql-contrib -
Crie um novo cluster de banco de dados PostgreSQL:
sudo postgresql-setup --initdb -
Ative o postgresql.service:
sudo systemctl enable postgresql.service -
Inicie o postgresql.service:
sudo systemctl start postgresql.service
-
-
Por padrão, o PostgreSQL só permite conexões locais. Permitir conectividade remota com o PostgreSQL.
-
No
/var/lib/pgsql/data/postgresql.conf, prepare o banco de dados para replicação. -
Localize e remova o comentário de
listen_addresses = 'localhost'e altere o localhost para um asterisco (`):listen_addresses = '*' -
Defina os seguintes parâmetros da seguinte forma:
-
wal_level = logical -
max_replication_slots = 1 -
max_wal_senders = 1 -
track_commit_timestamp = on
Observação:
Configure o
/var/lib/pgsql/data/pg_hba.confpara garantir que a autenticação do cliente seja definida para permitir conexões de um host do Oracle GoldenGate. Por exemplo, adicione o seguinte:#Allow connections from remote hosts host all all 0.0.0.0/0 md5Consulte O arquivo pg_hba.conf para obter mais informações.
- Reinicie o servidor PostgreSQL:
sudo systemctl restart postgresql.service- Se estiver usando o Oracle Cloud Compute para hospedar o PostgreSQL, abra a porta 5432:
sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload sudo firewall-cmd --list-all -
-
Abra a porta 5432 na lista de segurança da sua VCN.
-
Estabeleça Conexão com o PostgreSQL.
> sudo su - postgres > psqlObservação: Se preferir, você poderá informar
sudo su - postgres psqlse o exemplo acima não funcionar. -
Configure o PostgreSQL.
-
Faça download do seedSRCOCIGGLL_PostgreSQL.sql e execute-o para configurar o banco de dados e carregar os dados de amostra.
-
Execute os seguintes comandos para configurar o usuário (certifique-se de substituir
<password>por uma senha real):
create user ggadmin with password '<password>'; alter user ggadmin with SUPERUSER; GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin; -
-
Configuração do ambiente: MySQL
-
Abra a Porta 3306, por meio da qual o OCI GoldenGate pode se conectar.
-
Na console do Oracle Cloud, localize a sub-rede que o banco de dados HeatWave usa.
-
Na lista de segurança da sub-rede, crie uma regra de Entrada para a Porta TCP/3306.
-
-
Crie um usuário
ggadminusando o script a seguir. Lembre-se de substituir o<ggadmin-password>por uma senha válida:CREATE USER 'ggadmin' IDENTIFIED BY '<ggadmin-password>'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT, CREATE,CREATE VIEW, EVENT, INSERT, UPDATE, DROP,EXECUTE, DELETE ON *.* TO 'ggadmin'; -
Crie tabelas de destino usando o esquema de amostra.
Verifique se as tabelas e o usuário foram criados com sucesso.
Tarefa 1: Criar os Recursos do OCI GoldenGate
Este exemplo de início rápido exige implantações e conexões para a origem e o destino.
-
Crie uma implantação para o banco de dados PostgreSQL de origem.
-
Crie uma implantação do MySQL para o Banco de Dados HeatWave de destino.
-
-
Para Tipo, selecione PostgreSQL Server no menu suspenso.
-
Para Nome do banco de dados, digite
ociggll. -
Para Host, informe o IP público da instância do serviço Compute na qual o PostgreSQL é executado.
-
Para Porta, informe
5432. -
Para Username, digite
ggadmin. -
Em Senha, informe a sua senha.
-
Para Protocolo de Segurança, selecione Simples na lista drop-down.
-
-
(Opcional) Se o seu Banco de Dados HeatWave não tiver um ponto final público, crie uma conexão com o GoldenGate e designe essa conexão à implantação do PostgreSQL de origem.
-
Designe a conexão de Origem à implantação do PostgreSQL de Origem.
-
Atribua a conexão de destino à implantação do MySQL de alvo.
Tarefa 2: Ativar log complementar
Para ativar o registro em log complementar:
-
Inicie a console de implantação do PostgreSQL GoldenGate do:
-
Na página Implantações, selecione a implantação do PostgreSQL para ver os detalhes.
-
Na página Detalhes da implantação do PostgreSQL, selecione Iniciar console.
-
Na página de acesso da console de implantação, informe as credenciais de administrador do GoldenGate fornecidas na Tarefa 1, etapa 1.
Observação: O acesso será obrigatório se o IAM não tiver sido selecionado como o armazenamento de credenciais ao criar uma implantação.
-
-
Na console de implantação, selecione Conexões de BD na navegação esquerda, depois o banco de dados PostgreSQL de origem e, em seguida, Trandata.
-
Na página TRANDATA, ao lado de Informações TRANDATA, selecione Adicionar TRANDATA (ícone de mais).
-
No painel Trandata, para Nome do Esquema, digite
src_ocigglle selecione Enviar.Observação: Use o campo de pesquisa para procurar
src_ocigglle verificar se as tabelas foram adicionadas.
Tarefa 3: Criar os processos de Extract
-
Adicionar a Extração da Captura de Dados de Alteração:
-
Na navegação esquerda, selecione Extrações,
-
Na página Extracts, selecione Adicionar Extract (ícone de mais) e preencha os campos da seguinte forma:
-
Na página Informações da Extração:
-
Para Tipo de extração, selecione Alterar Extração de Captura de Dados.
-
Para Nome do Processo, informe um nome para o processo Extract, como
ECDC. -
Selecione Próximo.
-
-
Na página Opções de Extração:
-
Para credenciais de Origem, selecione Oracle GoldenGate na lista drop-down Domínio
-
Selecione o banco de dados PostgreSQL de origem na lista drop-down Alias.
-
Para Extrair Nome da Trilha, informe um nome de trilha de dois caracteres, como
C1. -
Selecione Próximo.
-
-
Na página Parâmetros de Extração, substitua
MAP *.*, TARGET *.*;pelo seguinte:TABLE SRC_OCIGGLL.*;
-
-
Selecione Criar e Executar.
-
-
Adicione a Extração de Carga Inicial:
-
Na página Extracts, selecione Adicionar Extract e preencha o formulário Adicionar Extract da seguinte forma:
-
Na página Informações da Extração:
-
Para o tipo de Extração, selecione Extração de Carga Inicial.
-
Para Nome do Processo, informe um nome, como
EIL. -
Selecione Próximo.
-
-
Na página Opções de Extração:
-
Para credenciais de Origem, selecione Oracle GoldenGate na lista drop-down Domínio.
-
Selecione o banco de dados PostgreSQL na lista drop-down Alias.
-
Para Nome da Trilha de Extração, informe um nome de trilha de dois caracteres, como
I1. -
Selecione Próximo.
-
-
Na página Parâmetros de Extração, substitua o conteúdo da área de texto pelo seguinte:
EXTRACT EIL USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate EXTFILE I1, PURGE TABLE src_ociggll.*;Observação: certifique-se de remover o parâmetro
SOURCEDBna frente deUSERIDALIASantes de seguir em frente.
-
-
Selecione Criar e Executar.
-
Você retorna à página Extracts, na qual é possível observar o início do processo Extract.
Tarefa 4: Criar o Caminho de Distribuição para Extract de Carga Inicial
Para criar um Caminho de Distribuição para Extração de Carga Inicial, faça o seguinte:
-
Na console do Oracle Cloud, na página Implantações, selecione a implantação do MySQL de destino.
-
Na página de detalhes da implantação, selecione Iniciar Console e, em seguida, faça log-in como usuário administrador.
-
Se estiver usando o armazenamento de credenciais do IAM, prossiga para a etapa Criar um Caminho de Distribuição. Se estiver usando o armazenamento de credenciais do GoldenGate, crie um usuário com o qual o GoldenGate de origem use para estabelecer conexão com o GoldenGate de destino.
-
No menu de navegação, selecione Administração de Usuários.
-
Selecione Adicionar Novo Usuário (ícone de adição), preencha os campos da seguinte forma e selecione Submeter:
-
Para Username, informe
ggsnet. -
Para Atribuição, selecione Operador.
-
Digite a senha duas vezes para verificação.
-
-
-
No console de implantação do PostgreSQL de origem, crie uma Conexão de Caminho para o usuário criado na etapa anterior.
-
No menu de navegação, selecione Conexões de Caminho.
-
Selecione Adicionar Conexão de Caminho (ícone de mais), preencha os campos da seguinte forma e selecione Submeter:
-
Para o Alias de Credencial, digite
dpuser. -
Para ID do Usuário, digite
ggsnet -
Para Senha, digite a mesma senha usada na etapa anterior.
-
-
-
Criar um Caminho de Distribuição.
-
Na barra de menus do serviço, selecione Caminhos e, em seguida, selecione Adicionar Caminho de Distribuição (ícone de mais).
-
Preencha o formulário Adicionar Caminho da seguinte forma:
-
Na página Informações do Caminho:
-
Para Nome do Caminho, informe um nome para este caminho.
-
Selecione Próximo.
-
-
Na página Opções de Origem:
-
Para Extração de Origem, deixe em branco.
-
Para Nome da Trilha, informe o nome de trilha de Extração da Carga Inicial (
I1). -
Selecione Próximo.
-
-
Na página Opções de Destino:
-
Para Destino, selecione wss.
-
Para o Host do Destino, informe o URL da implantação do destino, sem https:// ou qualquer barra à esquerda.
-
Para o Número de Porta, informe
443. -
Para Nome da Trilha, informe
I1. -
Para Método de Autenticação de Destino, selecione Alias de ID de Usuário.
-
Para Domínio, informe o nome do domínio criado na etapa anterior.
-
Para Alias, informe o alias criado na etapa anterior (
dpuser). -
Selecione Próximo.
-
-
-
Selecione Criar e Executar.
Você retorna à página Serviço de Distribuição, na qual pode revisar o caminho criado.
-
-
Na console de implantação de destino, verifique o caminho do Receptor criado como resultado do caminho de Distribuição:
-
Selecione Caminhos.
-
Verifique os detalhes do Caminho.
-
Tarefa 5: Adicionar o Processo de Replicat para Carga Inicial
-
No console de implantação do MySQL de destino, adicione uma tabela de Checkpoint.
-
No menu de navegação, selecione Conexões de BD, o Banco de Dados HeatWave de destino e, em seguida, Pontos de Verificação.
-
Selecione Adicionar Ponto de Verificação (ícone de adição).
-
No painel Checkpoint, Para Tabela de Esquema, informe
SRCMIRROR_OCIGGLL.CHECKTABLE. -
Selecione Enviar.
-
-
Adicione o processo Replicat de Carga Inicial.
-
No menu de navegação, selecione Replicações e, em seguida, Adicionar Replicat (ícone de mais).
-
Na página Replicats, preencha os campos Adicionar Replicat da seguinte forma:
-
Na página Informações do Replicat:
-
Para Tipo de replicado, selecione Paralelo ou Coordenado.
-
Para Nome do Processo, informe um nome, como
RIL. -
Selecione Próximo.
-
-
Na página Opções de Replicat:
-
Para Nome da Trilha de Replicação, informe o nome da Trilha da Tarefa 2 (
I1). -
Para Credenciais de Destino, selecione o Domínio e o Alias para a conexão do Banco de Dados HeatWave.
-
Para Tabela de Checkpoint, selecione a tabela de Checkpoint que você criou na Etapa 1.
-
Selecione Próximo.
-
-
Na página Arquivo de Parâmetros, adicione o seguinte mapeamento:
MAP src_ociggll.*, TARGET SRCMIRROR_OCIGGLL.*;
-
-
Selecione Criar e Executar.
Você retorna à página Replicats, na qual pode revisar os detalhes do Replicat.
-
-
Verifique a Carga Inicial:
-
No Cloud Shell, conecte-se à VCN e à sub-rede usadas pela sua instância do HeatWave.
-
Após se conectar, execute o seguinte comando:
mysqlsh <user>@<MySQL DB Private IP>:3306 --sql -
Execute o seguinte script para verificar os dados:
select * from SRCMIRROR_OCIGGLL.SRC_CITY; select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
A saída deve retornar os dados que foram carregados nas tabelas do banco de dados de destino como resultado da Carga Inicial.
-
Tarefa 6: Criar o Caminho de Distribuição para a Captura de Dados de Alteração
-
No console de implantação do PostgreSQL de origem, selecione Serviço de Distribuição.
-
Selecione Adicionar Caminho de Distribuição.
-
Preencha o formulário Adicionar Caminho da seguinte forma:
-
Na página Informações do Caminho:
-
Para Nome do Caminho, informe um nome.
-
Selecione Próximo.
-
-
Na página Opções de Origem:
-
Para Extração de Origem, selecione a Extração da Captura de Dados de Alteração (
ECDC). -
Para Nome da Trilha, selecione o arquivo da trilha de Captura de Dados de Alteração (
C1). -
Selecione Próximo.
-
-
Na página Opções de Destino:
-
Para Destino, selecione wss.
-
Para Host de Destino, informe o URL da console de implantação de destino (você pode encontrar isso na página de detalhes da implantação, sem https:// ou qualquer barra à direita).
-
Para o Número de Porta, informe
443. -
Para Nome da Trilha, informe
C1. -
Para Método de Autenticação de Destino, selecione Alias de ID de Usuário.
-
Em Domínio, digite o nome do domínio.
-
Para Alias, informe o alias.
-
-
Selecione Criar Caminho e Executar.
-
-
No console de implantação do MySQL de destino, selecione Serviço do Receptor e revise o Caminho do Receptor criado.
Tarefa 7: Adicionar um processo de Replicat para Captura de Dados de Alteração
Execute atualizações no banco de dados PostgreSQL de origem para verificar a replicação no Banco de Dados HeatWave de destino.
-
Adicionar Replicação:
-
Na console de implantação de destino, selecione Serviço de Administração e, em seguida, no menu de navegação, selecione Replicatos.
-
Na página Replicatos, selecione Adicionar Replicat (ícone de mais) e preencha o form Adicionar Replicat da seguinte forma:
- Na página Informações do Replicat:
-
Para Tipo de replicat, selecione Replicat Não Integrado.
-
Para Nome do Processo, informe um nome, como
RCDC. -
Selecione Próximo.
-
- Na página Opções de Replicat:
-
Para Nome da Trilha de Replicat, informe o nome da Trilha da Tarefa 3 (
C1). -
Para Credenciais de Destino, selecione o Domínio e o Alias da conexão do HeatWave.
-
Para Tabela de Checkpoint, selecione a tabela de Checkpoint.
-
- Na página Informações do Replicat:
-
Na página Parâmetros de Replicat, substitua
MAP *.*, TARGET *.*;pelo seguinte mapeamento:MAP src_ociggll.*, TARGET SRCMIRROR_OCIGGLL.*; -
Selecione Criar e Executar.
Você retorna à página Replicats, na qual pode revisar os detalhes do Replicat.
-
-
Verificar Captura de Dados de Alteração:
-
Execute atualizações no banco de dados PostgreSQL de origem para verificar a replicação no Banco de Dados HeatWave de destino. Execute o seguinte script para executar inserções no banco de dados PostgreSQL:
Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581); Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002); -
No console de implantação do PostgreSQL de origem, selecione o nome do Extract de Captura de Dados de Alteração (
ECDC), selecione Detalhes e, em seguida, selecione Estatísticas. Verifique se osrc_ociggll.src_citytem 10 inserções.Observação: Se o Extract não tiver inserções capturadas, reinicie o Extract
ECDC. -
Na implantação do MySQL de destino, selecione o processo Replicat
RCDC, revise seus Detalhes e Estatísticas para verificar o número de Inserções.
-