Por que um escravo mysql morreria ao fazer um mysqldump com --flush-logs?

1

Eu tenho um escravo de replicação mysql no linux. Eu estou fazendo um mysqldump para fazer backup do banco de dados. Eu estou apontando para o servidor escravo para espalhar a carga. As opções mysqldump que eu estou usando incluem --flush-logs e isso está causando a morte do servidor mysql. Obtém um sinal 11 (ou seja, segfault). Quando faço isso sem o --flush-logs , tudo funciona. Por que isso acontece?

Atualizar : Esta é a seção relevante do / var / log / syslog (que é onde as mensagens de erro do mysql vão nos sistemas debian)

Jun 24 11:01:17 db2 mysqld[30673]: mysqld got signal 11;
Jun 24 11:01:17 db2 mysqld[30673]: This could be because you hit a bug. It is also  possible that this binary
Jun 24 11:01:17 db2 mysqld[30673]: or one of the libraries it was linked against is corrupt, improperly built,
Jun 24 11:01:17 db2 mysqld[30673]: or misconfigured. This error can also be caused by malfunctioning hardware.
Jun 24 11:01:17 db2 mysqld[30673]: We will try our best to scrape up some info that will hopefully help diagnose
Jun 24 11:01:17 db2 mysqld[30673]: the problem, but since we have already crashed, something is definitely wrong
Jun 24 11:01:17 db2 mysqld[30673]: and this may fail.
Jun 24 11:01:17 db2 mysqld[30673]: 
Jun 24 11:01:17 db2 mysqld[30673]: key_buffer_size=16777216
Jun 24 11:01:17 db2 mysqld[30673]: read_buffer_size=131072
Jun 24 11:01:17 db2 mysqld[30673]: max_used_connections=2
Jun 24 11:01:17 db2 mysqld[30673]: max_connections=100
Jun 24 11:01:17 db2 mysqld[30673]: threads_connected=1
Jun 24 11:01:17 db2 mysqld[30673]: It is possible that mysqld could use up to 
Jun 24 11:01:17 db2 mysqld[30673]: key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 233983 K
Jun 24 11:01:17 db2 mysqld[30673]: bytes of memory
Jun 24 11:01:17 db2 mysqld[30673]: Hope that's ok; if not, decrease some variables in the equation.
Jun 24 11:01:17 db2 mysqld[30673]: 
Jun 24 11:01:17 db2 mysqld_safe[31409]: Number of processes running now: 0
Jun 24 11:01:17 db2 mysqld_safe[31411]: restarted
    
por Rory 24.06.2009 / 13:08

2 respostas

1

Dada a quantidade de memória é de cerca de 200MB, eu estou supondo que você não ficou sem memória. Você pode verificar o dmesg para ver se a máquina ficou sem memória.

Se outros processos morrem com um problema semelhante, ou com um erro de bus, então é possível que você tenha memória defeituosa. Você poderia usar o memtest86 para verificar.

Caso contrário, eu diria que você encontrou um bug no mysql. Você pode tentar atualizar para a versão mais recente do MySQL, ou se você está no mais recente, faça downgrade e veja se consegue o mesmo problema. Se você fizer isso, sugiro arquivar um bug no MySQL.

    
por 24.06.2009 / 14:52
1

Qual versão do mysql?

Você tem alguma opção ativada "expire-log-days" ou "log-bin" no seu arquivo my.cnf?

Existem alguns bugs conhecidos com a opção --flush-log causando falhas com rotações de log, dumps, etc.

    
por 28.11.2009 / 18:32