mestre mysql (sincronização mestre-escravo) copiar a partir de

sincronização mestre-escravo mysql

1, sincronização mestre-escravo mysql (replicação) Conceito

 1. Copiar dados MySQL para um host em outros hosts (escravos), e as instruções novamente alcançada.

 2. O servidor atua como um mestre de replicação, enquanto um ou mais outros servidores agir como do servidor.

 3. O servidor de indexação master grava arquivos de log binário será atualizado, e manter os arquivos para rastrear ciclo de log.

 4. Quando uma conexão do servidor mestre, ele notifica a posição da última atualização bem sucedida lida a partir do servidor mestre no registro.

 5. receber quaisquer atualizações desde então gerados a partir do servidor, o servidor, em seguida, aguarda o bloco mestre e notifica o novo update.

 binlog : arquivos de log binário para gravação de atualização de dados mysql ou atualizações potenciais (tais como instruções DELETE excluir os dados reais não atende aos critérios)

2, MySQL que replicação apoio

 1.  declaração replicação baseada:  executar instruções SQL no servidor principal, a partir do servidor para executar a mesma declaração.

   Nota: replicação baseada em instrução MySQL padrão, de alta eficiência. Uma vez que o clone não encontrado, seleccionado automaticamente replicação baseada em linha.

 2.  replicação baseada em linha:  as alterações de conteúdo replicar o passado, em vez de executar comandos do servidor novamente a partir do suporte início mysql5.0.

 3.  tipos mistos de replicação:  defaults declaração replicação com base, se ele for encontrado com base em declarações não podem ser precisamente replicadas, vai usar a replicação baseada em linha.

3, o princípio de replicação MySQL mestre-escravo

 1. mestre servidor mudará para os dados binários são registrados log log binário, enquanto as alterações de dados no mestre , ele é alterado para escrever logs binários;

 2. servidor salve dentro de um determinado intervalo de tempo dos registros mestre binários para detectar se as mudanças , se mudou, é um começo I / evento O thread de solicitação mestre binário

 3. Ao mesmo nó mestre é cada thread de E / S inicia um despejo de thread , enviar um evento binário, e salvo ao nó de retransmissão local a partir do log

 4. Os  leitura nó SQL fio começa a partir do relé de reprodução de log log binário localmente , de modo que seus dados permaneçam consistentes e o nó mestre

 5. Finalmente, I / O Linha e SQL vai ir dormir, à espera de ser despertado uma vez.

 Você precisa entender:

  1) gera dois fios a partir da biblioteca, uma rosca de I / O, um SQL rosca;
  2) I / O fio pedido log binário para a biblioteca principal, e o resultante escrito log binário relé-registo local (relay logs ) arquivo;
  3) gera um despejo de thread biblioteca de log principal, a partir da biblioteca utilizada para I / o tópicos passar o log binário;
  . 4) a thread de SQL lê o arquivo de log log de revezamento, e resolve instrução SQL executado um por um;

4, MySQL fluxograma replicação

 log operação binlog 1. mestre registadas na demonstração

 2. salve no servidor mestre irá detectar se a mudança log binário ocorre dentro de um determinado intervalo de tempo, se a mudança ocorre

 3. Salave abertos dois tópicos: fio IO e a thread de SQL

  1) fio IO: é responsável para a leitura do conteúdo de log binário mestre para o registo do relé do relé de log em;

  2) SQL Tópico: responsável pela leitura do registro de relay log out conteúdo binlog e atualizações para o banco de dados slave (para garantir dados consistentes)

 

 atrasos de sincronização mysql

1, resultando num atraso de sincronização mysql causa comum

 1) de rede: A máquina hospedeira ou jogado a partir da largura de banda, latência alta rede entre o mestre e o escravo, o mestre log binário não causa o valor total para o escravo, causando atraso.

 2) o rendimento da máquina: da máquina podre usando a máquina? Por exemplo, o uso de SSD e o hospedeiro ou o uso de escravo SATA.

 3) A partir da máquina de alta carga: Há um monte de empresas vai fazer as estatísticas sobre o escravo, o servidor escravo em uma carga alta, resultando em muitos casos o atraso escravo

 4) grandes transações: por exemplo, no modo RBR, execute com um grande número de operações de exclusão, tais vista mysqlbinlog log binário no SQL exibindo a informação e uso processlist pode confirmar rapidamente

 5) Lock:  conflitos de bloqueio também causa a execução thread slave de SQL é lento, como alguns selecione .... para atualização do SQL da máquina, ou pode usar o mecanismo MyISAM, e assim por diante.

2, hardware (otimização)

 1. Com um servidor bom, tais 4u 2U significativamente melhor do que o desempenho, desempenho 2U 1U significativamente melhor do que.

 2. O disco de armazenamento matriz ou SSD ou san, levantando o desempenho de gravação aleatória.

 3. garantida entre mestre e escravo estão na mesma chave de baixo, e um ambiente de Gigabit.

  Resumo : hardware poderoso, o atraso seria menor. Em suma, a solução de menor latência é gastar tempo e dinheiro para gastar.

3, a partir de mestre mysql sincrotrão

 1) sync_binlog no lado de escravo é definido como 0

  Quando os commits transação, Mysql apenas dados binlog_cache está escrito arquivo Binlog, mas fsync como disco não executar a sincronização de cache de instruções do sistema de arquivos notificação é descarregado para o disco

  E deixe Filesystem para decidir o que fazer a sincronização de tempo, este é o melhor desempenho.

 2) escravo 端 innodb_flush_log_at_trx_commit = 2

  MySQL será os dados do buffer de log é gravado no arquivo de log cada vez que uma transação é confirmada, mas flush (escova para o disco) não estará operando ao mesmo tempo.

  Neste modo, o MySQL irá lavar é realizada uma vez por segundo operação (o disco escova).

 3) Toras-slave-updates recebidos do servidor a partir do servidor principal para não atualizar cobrado ao seu log binário.

 4) desactivar o terminal de log binário escravo directa

Acho que você gosta

Origin www.cnblogs.com/8lala/p/12469779.html
Recomendado
Clasificación