Instanciação Precisa de MySQL para MySQL Usando Utilitários de Shell MySQL e Oracle GoldenGate
O método de instanciação preciso permite a carga inicial de dados de um banco de dados de origem para um banco de dados de destino, enquanto o banco de dados de origem permanece on-line para atualizações de aplicativos. Esse método garante o posicionamento preciso dos processos de captura e entrega de dados de alteração sem ter dados duplicados no banco de dados de destino e sem a necessidade de usar HANDLECOLLISIONS no processo Replicat.
A instanciação precisa do Oracle GoldenGate for MySQL usa os utilitários de carregamento de dump e dump do Shell MySQL e só há suporte entre uma origem MySQL e um banco de dados de destino MySQL.
Esse método requer que o Shell MySQL seja instalado. As etapas de instalação estão disponíveis no seguinte link:
<https://dev.mysql.com/doc/mysql-shell/ 8.0/en/mysql-shell-install.html>
Para obter informações detalhadas e limitações dos utilitários de carregamento de dump e dump do shell MySQL, consulte os seguintes links:
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-dump-instance-schema.html
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-load-dump.html
Você usará o utilitário de dump do Shell MySQL para exportar a instância, o esquema ou as tabelas MySQL, dependendo dos seus requisitos. Em seguida, você usará o utilitário de carregamento de dump MySQL para carregar os objetos no banco de dados de destino e depois configurará um Extract e Replicat GoldenGate para replicar dados de alteração contínua da origem para o banco de dados de destino.
O utilitário de dump do Shell MySQL cria vários arquivos de exportação, um dos quais é um arquivo @.json. Esse arquivo é necessário para determinar o posicionamento do Extract ao adicioná-lo ao banco de dados de origem.
Veja a seguir um método de instanciação preciso de amostra usando um dump de esquema da instância de origem e, em seguida, carregado na instância de destino, seguido pela configuração do Oracle GoldenGate para replicação de dados de alteração: 1. Conecte-se ao Shell MySQL. Para obter detalhes sobre as opções de conexão suportadas com o Shell MySQL, consulte este link: https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-connections.html
<pre class="copy"><code>mysqlsh -mysqlx -u *username* -h *hostname* -P *port*</code></pre>
-
Depois de estabelecer conexão com o Shell MySQL, certifique-se de estar no modo JavaScript. Você deverá ver um prompt
JS >. Se estiver no modo SQL, alterne para o modo JavaScript usando a chave\js:MySQL sourcehost:33060+ ssl SQL > \js -
Verifique se a Variável Global
local_infileestá definida comoON.MySQL sourcehost:33060+ ssl JS > \sql SHOW GLOBAL VARIABLES LIKE 'local_infile';Se a variável
local_infilefor definida comoOFF, ative-a com o seguinte comando:MySQL sourcehost:33060+ ssl JS > \sql SET GLOBAL local_infile = ON; -
Em seguida, use uma das funções a seguir para exportar a instância, o esquema ou as tabelas que você deseja exportar.
util.dumpInstance(outputUrl[, options]) util.dumpSchemas(schemas, outputUrl[, options]) util.dumpTables(schema, tables, outputUrl[, options])Neste exemplo, vamos fazer dump do esquema hr, na pasta
~/dumps/hr-schema-src:MySQL sourcehost:33060+ ssl JS >util.dumpSchemas(["hr"], "~/dumps/hr-schema-src") -
Após a conclusão da exportação, use o utilitário
util.loadDumppara importar o esquema para a instância de destino. Observação: Se a sua instância de destino estiver em um sistema diferente da origem, você precisará copiar os arquivos exportados para o sistema de destino.
<pre class="copy"><code>MySQL targethost:33060+ ssl JS >util.loadDump("~/dumps/hr-schema-tgt", {schema: "tgt-hr"})</code></pre>
-
Quando o utilitário de carregamento de dados for concluído, abra o arquivo
@.jsonna pasta de dump de origem. Este arquivo contém a última transação confirmada contida no dump e será necessário configurar um Extract de dados de alteração usando esse valor de transação. Veja a seguir um exemplo das informações da transação no arquivo @.json:"binlogFile": "binlog.000005", "binlogPosition": 1289, "gtidExecuted": "1174b383-3441-11e8-b90a-c80aa9429920:1-9,\n1174b383-3441-11e8-b90a-c80aa9429921:1-9" -
Adicione um Extract ao banco de dados de origem usando o valor
gtidExecutedou os valoresbinlogFileebinlogPosition, com base na configuração do banco de dados.-
Se o banco de dados de origem estiver configurado com o
gtid_modedefinido comoON, use o valorgtidExecuteddo arquivo@.jsonpara adicionar o Extract.Um exemplo usando o posicionamento
GTIDSET, com base no valorgtidExecuted:ADD EXTRACT extsrc, TRANLOG GTIDSET "1174b383-3441-11e8-b90a-c80aa9429920:1-9,\n1174b383-3441-11e8-b90a-c80aa9429921:1-9" -
Se o banco de dados de origem tiver o valor
gtid_modedefinido comoOFF, use os valoresbinlogFileebinlogPositiondo arquivo@.jsonao adicionar o Extract.Um exemplo usando o posicionamento
LOGNUMeLOGPOS, com base nos valoresbinlogFileebinlogPosition:ADD EXTRACT extsrc, TRANLOG, LOGNUM 5 LOGPOS 1289
-
-
Por fim, conclua a configuração do Oracle GoldenGate adicionando os seguintes processos:
-
Trilha correspondente do Extract
-
Um caminho de distribuição, se necessário
-
Um Replicat para entrega ao banco de dados de destino
-
-
Iniciar os processos do Oracle GoldenGate e monitorar os processos Extract e Replicat para confirmar se eles estão sendo executados corretamente, e esse atraso é reduzido para quase em tempo real.