AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 17501
Accepted
newbie14
newbie14
Asked: 2012-05-07 21:19:53 +0800 CST2012-05-07 21:19:53 +0800 CST 2012-05-07 21:19:53 +0800 CST

Monitorando a replicação no mysql

  • 772

Eu consegui configurar a replicação master e slave .

Está funcionando bem. Quais são as possibilidades de cair?

Existe alguma ferramenta de alerta para monitorar isso?

Outra coisa: posso executar um banco de dados separado em meu banco de dados de replicação, que apenas executo para fins de teste?

mysql replication
  • 2 2 respostas
  • 7268 Views

2 respostas

  • Voted
  1. Best Answer
    Aaron Brown
    2012-05-08T18:00:53+08:002012-05-08T18:00:53+08:00

    A replicação pode quebrar ou se comportar mal de todas as maneiras divertidas e emocionantes. Você precisa monitorar três coisas:

    1. A replicação está em execução e não parou devido a um erro

    Para monitorar se a replicação está ou não em execução, basta verificar programaticamente SHOW SLAVE STATUSe observar os valores de Slave_IO_Runninge Slave_SQL_Running. Ambos devem ser "sim". pmp-check-mysql-replication-running do Percona Monitoring Plugins for Nagios foi escrito para esta tarefa.

    2. A replicação está funcionando bem (o atraso do escravo em relação ao mestre está dentro de um intervalo aceitável)

    Você precisa ter certeza de que o escravo não ficou muito atrás do mestre. "Longe demais" é determinado pelo que seu aplicativo pode tolerar e por quantos logs binários você mantém no servidor mestre. Como a replicação no escravo é de thread único, os escravos podem facilmente ficar para trás. SHOW SLAVE STATUStem o Seconds_Behind_Mastervalor, mas não é um indicador confiável do atraso real e, com frequência, irá pular. Para medir com precisão o atraso da replicação, você precisa de um aplicativo externo para inserir um carimbo de data/hora em uma tabela periodicamente. Você pode então medir esse valor do escravo e compará-lo com o tempo atual para obter o atraso de replicação real. pt-heartbeat é um daemon que irá inserir um heartbeat em uma tabela em seu servidor. Você pode alertar sobre esse valor compmp-check-mysql-replication-delay para garantir que esteja dentro dos parâmetros especificados.

    3. Os dados nos servidores estão sincronizados.

    Há muitas maneiras pelas quais um mestre e um escravo podem ficar fora de sincronia para que os dados sejam diferentes. Você precisa detectar essas diferenças e corrigi-las periodicamente porque uma pequena diferença pode, com o tempo, se transformar em uma diferença muito grande, especialmente com replicação baseada em instrução. Esta não é uma tarefa fácil, e pt-table-checksum é projetado para calcular essas diferenças. Executar esta semana. pmp-check-pt-table-checksum é um plug-in do Nagios para alertar quando o escravo tiver discrepâncias de dados em relação ao mestre. Para realmente corrigir as diferenças, use pt-table-sync .

    pt-table-checksum foi recentemente reescrito e é muito fácil de usar. pt-table-sync tem muitas opções e pode ser confuso. Leia a documentação para eles completamente , pois você pode realmente dar um tiro no pé se não for cuidadoso. Aqui está um webinar sobre essas ferramentas.

    Outra coisa: posso executar um banco de dados separado em meu banco de dados de replicação, que apenas executo para fins de teste?

    Não há nada que o impeça de modificar (ou complementar) os dados no escravo, embora geralmente eu não recomende isso. A melhor prática é fazer com que o escravo seja read_only=1. No entanto, a vida real tende a superar as melhores práticas e, muitas vezes, os escravos são usados ​​como servidores de relatórios. Minha sugestão seria deixar os privilégios de acesso bem claros para aqueles que usam o escravo para modificação de dados e ter todas as tabelas adicionais em um esquema separado.

    • 9
  2. Ran
    2012-05-08T02:41:01+08:002012-05-08T02:41:01+08:00
    1. A replicação pode 'ficar inoperante' por vários motivos, o principal é que o escravo obterá um erro de sql ao executar um dos comandos que foram executados no mestre (por exemplo, atualizando uma linha que existe no mestre, mas não existe no escravo ), outro problema pode ser a configuração de variáveis ​​diferentes entre mestre e escravo, como max_allowed_packet. Em suma, a replicação é um recurso sólido.

    2. Eu uso a densidade do servidor para monitorar a replicação (entre outros parâmetros no servidor), eles podem monitorar se a replicação está em execução, segundos atrás do escravo e muitos outros parâmetros no servidor (cpu, memória). Eles têm um aplicativo da web muito claro, um aplicativo para iphone e podem enviar notificações por push quando as coisas vão mal e o melhor é que a integração com eles leva 5 minutos.

    3. Quanto ao banco de dados separado, não entendi o que você está tentando alcançar lá

    Espero que isto ajude,

    R

    • 1

relate perguntas

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve