corrupção do arquivo de índice de escravo do MySQL

2

Eu tenho um par de duplicação mestre-escravo do MySQL, e para fazer backups, eu executo um script que para o escravo, despeja o banco de dados e reinicia o escravo. No entanto, após a reinicialização, o daemon do MySQL do escravo ( mysqld ) falha devido à corrupção no arquivo /var/lib/mysql/mysql.index - ou seja, caracteres "^ @" são anexados ao nome do arquivo de índice na última linha, tornando esse arquivo ilegível. A simples remoção desses caracteres permite que o MySQL inicie normalmente e a replicação continue corretamente. Não há corrupção de dados nas tabelas reais do banco de dados, apenas nesse único arquivo de índice.

As partes relevantes do script de backup (redigidas):

mysqladmin -uroot -p${PASSWORD} stop-slave >> $LOGFILE

# Lock the database
mysql -uroot -p${PASSWORD} -e 'FLUSH TABLES WITH READ LOCK'

# Backup live accounts
mysqldump -uroot -p${PASSWORD} --routines ${LIVEDB} > ${BACKUPDIR}/${LIVEDB}.sql
mysqldump -uroot -p${PASSWORD} --routines ${OTHERDB} > ${BACKUPDIR}/${OTHERDB}.sql

# Unlock the database 
mysql -uroot -p${PASSWORD} -e 'UNLOCK TABLES' >> $LOGFILE

# Start replication
mysqladmin -uroot -p${PASSWORD} start-slave >> $LOGFILE
mysql -uroot -p${PASSWORD} -e 'SHOW SLAVE STATUS\G' >> $LOGFILE
echo 'date' Database backup ends >> $LOGFILE

O que está causando essa corrupção e como evito que isso aconteça?

    
por John 27.02.2016 / 21:40

0 respostas