Se você estiver usando 100% InnoDB, então você está com sorte. Você pode usar XtraBackup para fazer um backup completo do seu banco de dados mestre sem qualquer tempo de inatividade ou qualquer bloqueio de tabela. Esse será um backup consistente no estilo de instantâneo, o mesmo da classificação que você recebe quando executa as opções FLUSH TABLES WITH READ LOCK
ou --master-data
.
A ferramenta XtraBackup também descarta um arquivo extra no diretório de backup que contém as informações MASTER_LOG_POS e MASTER_LOG_FILE que você precisa para iniciar a replicação no escravo.
Uma vez que você tenha feito o backup, será necessário executar a opção --prepare
do XtraBackup no backup, carregá-lo no escravo, iniciar o processo escravo do MySQL e informar os novos valores MASTER_LOG_POS e MASTER_LOG_FILE necessários.
Você vai querer skip-slave-start
no seu my.cnf antes de iniciar o escravo.
Lembre-se também que o mysql
schema é MyISAM por padrão (e se a memória é exibida corretamente, ele só pode ser MyISAM), então você ainda terá que tomar cuidado para não fazer alterações em nenhuma dessas tabelas enquanto estiver executando o comando. cópia de segurança. Contanto que você se atenha a essa regra, as informações mestras ainda estarão corretas.
É sempre uma boa ideia ignorar a mysql
schema no seu my.cnf no escravo e só cria usuários com privilégios SELECT. Escravos inconsistentes e fora de sincronia são difíceis de detectar e difíceis de lidar, mesmo quando se usa as ferramentas que o Percona (e o Maatkit antes deles) fornecem para isso.
Editar:
Embora você tenha dito que está usando o InnoDB, para completar, existe outra maneira se você estiver usando tabelas MyISAM. Se você tiver um gerenciador de volume com snapshot (como ZFS ou LVM ), você pode executar um FLUSH TABLES WITH READ LOCK
seguido por um SHOW MASTER STATUS
, criar um instantâneo e executar UNLOCK TABLES
. O tempo de inatividade deve ser razoavelmente mínimo. Para comparação, a tarefa do cron na noite passada que fez isso para fazer backup de um dos nossos bancos de dados levou 6 segundos para criar o instantâneo, que é o bit onde o banco de dados está "inativo" e 27 minutos para copiar os arquivos do instantâneo para o servidor de backup.