4 votos

La pérdida de datos debido a MySQL DRBD Latido de conmutación por error de secuencia de comandos

El uso de DRBD versión: 8.2.6 (api:88/proto:86-88)

Aquí está el contenido de /etc/ha.d/haresources

 db1 192.168.100.200/24/eth0 drbddisk::mysql sistema de Ficheros::/dev/drbd0::/drbd::ext3::por defecto de mysql

y /etc/ha.d/ha.cf

 el archivo de registro /var/log/ha-registro
 logfacility local0
 keepalive 1
 deadtime 30
 warntime 10
 initdead 120
 udpport 694
 bcast eth0, eth4 
 auto_failback off
 nodo db1
 nodo de db2
 respawn hacluster /usr/lib64/latido/ipfail
 apiauth ipfail gid=haclient uid=hacluster
 deadping 5

Cuando la prueba de conmutación por error entre máquinas corrí los siguientes comandos db2:

 latido de servicio de la parada
 servicio mysqld stop
 drbdadm abajo mysql
 servicio de drbd parada

/proc/drbd en db1 informó

 0: cs:Conectado st:Primaria/Desconocido ds:UpToDate/DUnknown C r---

Lo que sucedió a continuación, después de:

  • Traer de nuevo los servicios en línea en db2
  • La transferencia de primaria para db2 mediante hb_primary script
  • Tomando db1 abajo como arriba
  • Traer de nuevo los servicios en línea en db1
  • La transferencia primaria de vuelta a db1 utilizando hb_primary script

fue db1 volver a montar el DRBD disco, asumió la IP correcta y comenzó a MySQL. Hubo una gran tabla MySQL corrupción; era todo lo corregible (usando InnoDB modo de recuperación 6, mysqlcheck y ocasional de la copia de seguridad), pero ¿cómo sucedió?

Especulo:

  1. DRBD desconectado el disco del sistema de archivos cuando estaba siendo usado por MySQL, como limpiar MySQL cierre no se han traducido en datos dañados
  2. latido cardíaco controlado DRBD, y detener los latidos de servicio "tiró del enchufe" en la DRBD
  3. esto puede suceder en el caso de una conmutación por error (debido a un latido de tiempo de espera de ping)

No tengo acceso a este programa de instalación de nuevo durante algún tiempo, y me gustaría repetir la prueba.

Son los ajustes de configuración correctos?

Fue la corrupción el resultado de mis pruebas manuales?

Existe una mejor manera a prueba de conmutación por error de detener el latido del corazón de servicio y se deja correr el haresources comandos?

2voto

Karl Katzke Puntos 2293

Esto probablemente no es una gran ayuda, pero esto ha sido discutido ampliamente de la tarde en el Marcapasos y Linux-HA de listas de correo.

Yo no soy muy bueno con los latidos del corazón, pero con marcapasos me gustaría configurar una restricción que causó el recurso de clúster manager para vaciar los discos con un bloqueo de escritura en el disco (o hacia abajo mysql temporalmente) antes de intentar cambiar y, a continuación, soltar el bloqueo de una vez que el interruptor se había completado.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: