É possível criar um escravo mysql a partir do início do log binário de masters sem antes copiar os dados?

1

info: minhas tabelas são todas innodb.

Eu sei que posso criar um escravo mysql copiando os dados do mestre para o escravo e anotando a posição no log binário e configurando isso no escravo. Assim, o escravo deve ser capaz de reproduzir todas as entradas do log binário mestre desde o backup e sincronizar dessa maneira.

mas, no caso do binlog existir desde o início, eu posso simplesmente definir a posição do log binário no escravo como 0, assim não ter que copiar nenhum dado e apenas ter o escravo para acessar a entrada mais recente do log binário?

    
por david 01.02.2013 / 16:33

2 respostas

2

Isso poderia funcionar se

  • Você carregou dados em uma instância vazia do MySQL
  • Você tinha o log binário ativado desde o início
  • Você nunca apagou nenhum dos seus registros binários

Existe um problema: não existe uma posição literal 0.

Existe uma posição diferente 0 para diferentes versões do MySQL

  • posição 107 (MySQL 5.5)
  • posição 106 (MySQL 5.1)
  • posição 98 (MySQL 5.0 e anterior)

Eu escrevi sobre isso há muito tempo no DBA StackExchange:

Se você não tiver todos os log binários desde o início do MySQL Data Load, você pode fazer uma cópia usando rsync e uma reinicialização de mysql :

por 01.02.2013 / 23:10
0

Se você realmente tiver todos os binlogs e o banco de dados configurado corretamente, não consigo pensar em nenhuma razão técnica. A razão inteira por trás do log bog é permitir esse tipo de coisa.

    
por 01.02.2013 / 16:40