MySQL fornece replicação assíncrona em que um servidor de banco de dados mestre é replicado para um ou mais servidores de escravos. Você pode configurar a replicação para incluir todos ou selecione bancos de dados ou apenas as tabelas de seleção. A replicação permite distribuir a carga de trabalho entre vários escravos , realizar backups em escravos sem corromper o mestre , realizar análises sobre os escravos , sem afetar o desempenho do mestre e distribuir os dados através de longas distâncias. O Básico
replicação é realizada através dos logs binários . Esses logs contêm todas as instruções que atualizam dados , incluindo declarações que poderiam atualizar dados, mas não . O servidor mestre registra todas as declarações , e que o servidor está configurado para receber uma cópia do log. Os escravos podem ser configurados para executar o registo inteiro ou apenas partes dele (como apenas eventos em determinados bancos de dados) .
A informação de replicação é armazenada dentro de um arquivo chamado " master.info ", que é criado com o " CHANGE MASTER TO " declaração . Este arquivo contém informações sobre o nome do host do mestre , o nome do arquivo de log e da posição a ser lido dentro do arquivo de log.
O Usuário replicação
O escravo irá se conectar ao master usando uma conta padrão MySQL com o "escravo de replicação ' " privilégio. O nome de usuário e senha para esta conta será armazenado como uma entrada de texto simples no arquivo " master.info " , por isso é melhor para criar um usuário que só tem os privilégios de replicação.
Arquivos de configuração
o mestre deve ter o log binário habilitado para o intercâmbio de dados . Ele também deve ser configurado com um valor server-id único. Esses valores são definidos através do arquivo " my.cnf " que é lido quando o servidor inicia . Os valores são colocados na seção " [mysqld ]" com a seguinte sintaxe :
[mysqld ] log-bin = mysql- binserver -id = 1
O escravo também deve ser configurado com um único " server- id" através do arquivo " my.cnf " . O log binário não tem que ser habilitado , mas pode ser útil para backups de dados e recuperação de desastres.
Replicação
Para replicação iniciar corretamente, primeiro limpar o dominar log binário com as "mesas alinhadas com READ LOCK "; comunicado. Em seguida, use a declaração " SHOW MASTER STATUS" para determinar o nome do arquivo de log binário e posição offset.
Criar um instantâneo dos dados no banco de dados mestre com o " mysqldump " utilidade . A partir do prompt de comando do sistema operacional , digite " mysqldump - all-databases - lock- todo- Mesas > dbdump.db " . Então , a partir do cliente mysql , digite o "UNLOCK TABLES; " declaração para liberar a trava de leitura. Copie o arquivo " dbdump.db " a cada um dos escravos com o comando " mysql < dbdump.db ", emitido a partir da linha de comando do sistema operacional.
Finalmente , configure os escravos para se conectar ao mestre com a o seguinte comando:
CHANGE MASTER TO MASTER_HOST ' master_host_name ' = , MASTER_USER = ' replication_user_name ' , MASTER_PASSWORD = ' replication_password ' , MASTER_LOG_FILE = ' recorded_log_file_name ' , MASTER_LOG_POS = recorded_log_position ;
Altere os valores das variáveis para refletir as informações para o seu sistema .