¿Cuál es la diferencia entre XtraBackup y rsync?


11

Sí, voy a correr sobre ambos ... Sin embargo, me gustaría saber ...

  • ¿Qué está haciendo XtraBackup más allá de rsync -ac src dest?
  • ¿Qué tiene de especial XtraBbackup?
  • ¿Cómo está interactuando XtraBackup con mysqld?

1
Este es uno de esos "me enteré de XtraBackup pero tengo miedo de hacer" preguntas para romper el hielo ¡Me encantan este tipo de preguntas! +1 !!!
RolandoMySQLDBA

1
@RolandoMySQLDBA: Me gusta provocar pensamientos y hacer que la gente comparta conocimientos. Así es como mejoramos, ¿verdad? Ser un llanero solitario no es muy divertido. :-)
randomx

Respuestas:


16

rsync es solo una copia de datos de fuerza bruta byte a byte de un lugar a otro. Habría realizado múltiples rsyncs hasta el último rsync, que es muy rápido. Luego, haría un apagado completo de MySQL y realizaría una rsync más.

XtraBackup es una herramienta integral que se comporta como rsync pero tiene un propósito dirigido en la vida. Puede comenzar copiando todos los datos y espacios de tablas de InnoDB. Tiene la capacidad de crear puntos de control internamente y realizar una recuperación de bloqueo InnoDB en el lugar para ayudar a obtener una copia de seguridad perfecta en un punto en el tiempo. XtraBackup también tiene una característica adicional que permite la creación de copias de seguridad incrementales. Otra característica adicional es la creación de archivos de registro de InnoDB, también creados por una recuperación de fallos en el lugar. También hay un software de envoltura para proporcionar copias congeladas de tablas MyISAM también.

Ambos métodos son geniales. XtraBackup simplemente implementa características transaccionales de InnoDB en la mayoría de las copias iniciales. Xtrabackup crea archivos que se pueden colocar en una infraestructura MySQL establecida. Es justo decir que XtraBackup proporciona copias de seguridad instrumentales y archivos InnoDB materializados y muy utilizables.

El uso de rsync lo obliga a administrar el proceso de copia varias veces y cerrarlo con un apagado de mysql para requerir una intervención de rsync.

Usar uno sobre el otro puede ser una preferencia personal. Hay que reconocer una cosa: XtraBackup realiza copias de seguridad que son algo más grandes que los datos que se copiaron. Dejo la elección del método al lector de esta pregunta.

Prefiero rsync porque tiene simplicidad de uso, puedo determinar el punto específico en el tiempo antes de que comience el proceso, también tengo control total sobre cómo bloquear mysqld o cerrarlo, cuando se puede realizar dicho control y en el orden que designe .

Ambos estilos de copias de seguridad tienen una cosa en común : con XtraBackup, el punto real en el tiempo es un objetivo móvil hasta que se complete el proceso de copia de seguridad y hay que confiar en XtraBackup (hasta ahora 200,000 descargas. Facebook es uno de los mayores usuarios de se ha ganado mucha confianza). En otras palabras, si inicio XtraBackup a medianoche y la copia de seguridad dura hasta las 2:20 a.m., entonces el momento real de la copia de seguridad es a las 2:20 a.m. El uso de rsync tiene el mismo problema de objetivo móvil porque tiene que hacer múltiples rsyncs manualmente y luego determinar cuándo emitir un 'servicio mysql stop' antes del rsync final.

Estos métodos difieren en que mysqld debe cerrarse utilizando el método rsync, mientras que XtraBackup actúa independientemente de mysqld. De hecho, XtraBackup no interactúa mucho con mysqld, excepto cuando se trata de tablas MyISAM a través del software envoltorio. XtraBackup intenta crear datos y archivos de registro InnoDB completamente funcionales utilizando las operaciones del motor de almacenamiento InnoDB por separado y distinto de mysqld.

El cierre de mysql es muy necesario para el método rsync por una razón muy importante: el InnoDB Buffer Pool puede contener "páginas sucias", que son páginas de datos e índices (1 página = 16 KB) que no se han vuelto a escribir en el disco. El uso de rsync no detecta los cambios de datos pendientes en el InnoDB Buffer Pool. Para acelerar el cierre de mysqld para el rsync final, ejecute este comando:

SET GLOBAL innodb_max_dirty_pages_pct = 0;

Este comando mantendrá la cantidad mínima de páginas sucias. Este comando debe ejecutarse aproximadamente una hora antes de realizar el método de copia de seguridad rsync. Esto incluso podría ayudar a XtraBackup, aunque XtraBackup no requiere un apagado de mysql.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.