Ao iniciar uma tarefa de migração incremental de dados entre bancos de dados MySQL, o Data Transmission Service (DTS) pré-verifica as configurações de binary log do banco de dados source. Este tópico descreve cada item de verificação de binary log e como resolver falhas.
Habilitação de binary log
Verifique se o registro em binary log está habilitado no banco de dados source. Em caso de falha, resolva o problema da seguinte forma.
Solução:
Faça login no servidor que hospeda seu banco de dados MySQL autogerenciado.
-
Use
vimpara edite os seguintes parâmetros no arquivo de configuração my.cnf.NotaO caminho padrão do my.cnf é /etc/my.cnf. O caminho real pode variar.
log_bin=mysql_bin binlog_format=row server_id=2 # An integer greater than 1. The value is for example purposes only. binlog_row_image=full # Required if the source database is MySQL 5.6 or later. -
Reinicie o serviço MySQL:
/etc/init.d/mysqld restartNotaOutros métodos de reinicialização podem ser aplicáveis dependendo da sua configuração.
-
Acesse o banco de dados MySQL source autogerenciado e execute esta instrução SQL para verifique se o registro em binary log está habilitado.
show variables like '%log_bin%';Saída esperada:
MariaDB [pro1]> show variables like '%log_bin%'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | log_bin | ON | | log_bin_trust_function_creators | OFF | | sql_log_bin | ON | +----------------------------------+-------+ 3 rows in set (0.00 sec) Execute a pré-verificação do DTS novamente.
Formato de binary log
Verifique se o formato de registro em binary log do banco de dados source está definido como ROW. Em caso de falha, resolva o problema conforme descrito abaixo.
Solução:
Faça login no servidor que hospeda seu banco de dados MySQL autogerenciado.
-
No arquivo de configuração my.cnf, defina o parâmetro binlog_format como
ROW.NotaO caminho padrão do my.cnf é /etc/my.cnf. O caminho real pode variar.
log_bin=mysql_bin binlog_format=row # Set the binary logging format to row. server_id=2 # An integer greater than 1. The value is for example purposes only. binlog_row_image=full # Required if the source database is MySQL 5.6 or later. -
Reinicie o serviço MySQL:
/etc/init.d/mysqld restartNotaOutros métodos de reinicialização podem ser aplicáveis dependendo da sua configuração.
-
Acesse o banco de dados MySQL source autogerenciado e execute esta instrução SQL para confirme se o formato de registro em binary log é
ROW.show variables like "%binlog_format%";Saída esperada:
MariaDB [(none)]> show variables like "%binlog_format%"; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | binlog_format | ROW | +---------------+-------+ 1 row in set (0.01 sec) Execute a pré-verificação do DTS novamente.
Disponibilidade de binary log
Verifique se nenhum arquivo de binary log foi excluído do banco de dados source. Uma falha indica que a sequência de binary log está incompleta. Em caso de falha, resolva o problema conforme descrito abaixo.
Solução:
Na caixa de diálogo Precheck, clique em no ícone Info ao lado do item de verificação de disponibilidade de arquivo de binary log.
Na caixa de diálogo View More, identifique a causa da falha e anote os nomes dos arquivos de binary log ausentes.
-
Avalie os arquivos de binary log ausentes e escolha uma ação.
-
Se o arquivo de binary log ausente não for crítico e seus dados puderem ser descartados, acesse o banco de dados MySQL source autogerenciado e execute esta instrução SQL para limpar todos os arquivos de binary log anteriores ao arquivo especificado:
PURGE BINARY LOGS TO '[$Binlog_Filename]';Nota[$Binlog_Filename] é o primeiro arquivo de binary log a ser mantido. Por exemplo, se
mysql_bin.000003estiver ausente, usemysql_bin.000004. Isso limpa todos os arquivos anteriores amysql_bin.000004. Caso o arquivo ausente seja crítico, entre em contato com o administrador do banco de dados para restaurá-lo.
-
Execute a pré-verificação do DTS novamente.
Configuração Binlog_row_image
Esta verificação aplica-se apenas ao MySQL 5.6 ou posterior. Ela confirme se o parâmetro binlog_row_image do banco de dados source está definido como full. Uma falha significa que o binary log não registra imagens completas de linha. Em caso de falha, resolva o problema conforme descrito abaixo.
Solução:
Faça login no servidor que hospeda seu banco de dados MySQL autogerenciado.
-
No arquivo de configuração my.cnf, defina o parâmetro binlog_row_image como
full.NotaO caminho padrão do my.cnf é /etc/my.cnf. O caminho real pode variar.
log_bin=mysql_bin binlog_format=row server_id=2 # An integer greater than 1. The value is for example purposes only. binlog_row_image=full # Required if the source database is MySQL 5.6 or later. -
Reinicie o serviço MySQL:
/etc/init.d/mysqld restartNotaOutros métodos de reinicialização podem ser aplicáveis dependendo da sua configuração.
-
Acesse o banco de dados source e execute esta instrução SQL para verifique se binlog_row_image está definido como
FULL.show variables like "binlog_row_image"; Execute a pré-verificação do DTS novamente.