LOAD DATA FROM MASTER
Tira uma cópia do master para o slave. Atualiza os valores de MASTER_LOG_FILE
e MASTER_LOG_POS
assim o slave será iniciado replicando da posição correta. Respeitará a regras de exclusão de tabelas e bancos de dados especificadas com as opções replicate-*
.
O uso desta instrução está sujeito ao seguinte:
- Funciona apenas com tabelas
MyISAM
. - Ele adquire um lock de leitura global no master enquanto tira um instantâneo, que evita atualizações no master durante esta operação.
No futuro está planejado fazê-lo funcionar com tabelas InnoDB
e remover a necessidade de lock deleitura global usando o recurso de backup online sem bloqueio.
Se você estiver carregando tabelas grandes, você pode aumentar os valores de net_read_timeout
e net_write_timeout
no mestre e no slave. Veja "SHOW VARIABLES
".
Note que LOAD DATA FROM MASTER
NÂO copia nenhuma tabela do banco de dados MariaDB
. Isto é para tornar facil de se ter diferentes usuários e privilégios no master e no slave.
Esta instrução exige que o usuário de replicação usado para se conectar ao master tenha privilégios RELOAD
e SUPER
no master, privilégios SELECT
em todas as tabelas do master que você queira carregar. Todas as tabelas do master nas quais os usuários não tenham privilégio SELETC
serão ignoradas pelo LOAD DATA FROM MASTER
; isto ocorre porque o master irá esconde-los do usuário: LOAD DATA FROM MASTER
chama SHOW DATABASES
para saber qual banco de dados do master carregar, mas SHOW DATABASES
retorna apenas o banco de dados nos quais o usuário tem algum privilégio. Veja "Recuperando Informações sobre Bancos de Dados, Tabelas, Colunas e Índices". No lado do slave, o usuário que executa LOAD DATA FROM MASTER
deve ter permissão para apagar e criar o banco de dados e tabelas envolvidos.