Backups en un Cluster MySQL (PXC 5.6)

datacenterDespués de montar un clúster PXC o Galera Cluster (versión 5.6 en servidores CentOS 6.5), igualmente querremos hacer backups de nuestros datos. Para ello, bastará con realizar un backup de uno de los nodos, puesto que todos los nodos contendrán exactamente la misma información. Aunque en realidad no es tan fácil…

Problemas con los backups en un cluster Galera

Hemos de tener en cuenta que los backups, en algún punto, realizarán un FLUSH TABLES WITH READ LOCK, que hará que ese nodo no permita escrituras y por tanto, no se podrán realizar escrituras en el cluster durante ese tiempo [Fuente 1 y Fuente 2]. La explicación es que una escritura al cluster devolverá ok cuando se haya replicado a todos los nodos del mismo. Por tanto, si un nodo no puede escribir, todo el cluster no podrá escribir.

A ésto hay que sumarle que por defecto un backup en PXC/Galera no guardará los «Global Transaction ID«, necesarios para poder dar de alta nuevos nodos de forma rápida (ahorrándonos el SST inicial) a raíz de ese backup. [Fuente, transp. 44]

Continuar leyendo «Backups en un Cluster MySQL (PXC 5.6)»

Magento: copias de seguridad

MagentoEn este post intentaré explicar cómo realizar copias de seguridad con Magento. Existen varias utilidades que realizan estas funciones de copia de seguridad, pero antes de instalarlas se recomienda (precisamente) realizar una copia de seguridad, por si la instalación fallase o provocase algún tipo de problema.

Así pues, explicaré cómo realizar una copia de seguridad manual, o por lo menos, como la haría yo.

Backup nativo de Magento

  1. Nos logueamos al panel de administración de Magento.
  2. Hacemos click en Sistema -> Herramientas -> Copias de seguridad.
  3. Pulsamos sobre «Crear copia de seguridad» en la esquina superior derecha.
  4. Al cabo de unos segundos, no aparecerá el mensaje «The backup has been created» y podremos ver listada la copia de seguridad recién creada.
  5. Pulsaremos sobre el link «gz» de la columna «Descargar» de la fila correspondiente al backup que hemos creado, y procederemos a descargar el archivo en local.

Backup con phpMyAdmin

Además del backup de la base de datos realizado en el apartado anterior, en mi caso he realizado un backup manual con la utilidad phpMyAdmin que me proporciona mi hosting (y que proporcionan de forma gratuita la mayoría de hostings). Se han seguido los pasos de aquí, y han sido los siguientes:

  1. Vamos a nuestra página de administración del hosting y nos logueamos.
  2. Entre las diferentes utilidades, seguramente en la sección de «gestión de las bases de datos», veremos la utilidad phpMyAdmin.
  3. Con phpMyAdmin podremos ver las diferentes tablas que conforman la base de datos de Magento (más de 300 en mi caso).
  4. Desde el menú de la izquierda, pulsaremos sobre la base de datos de magento (la que incluye todas las tablas, que tiene un número entre paréntesis al lado).
  5. Posteriormente, pulsaremos sobre la pestaña «Exportar».
  6. Pincharemos en el enlace «seleccionar todo», lo que seleccionará todas las tablas y pulsamos (o dejamos seleccionada) la opción «SQL».
  7. Bajo la opción «Estructura», marcaremos las casillas ««, «Añadir IF NOT EXISTS», «Añadir el valor AUTO_INCREMENT», así como «Usar «backquotes» con tablas y nombres de campo».
  8. Bajo la opción «Datos», marcaremos las casillas «Completar los INSERTS», «INSERTs extendidos» y «Usar hexadecimal para campos binarios».
  9. Finalmente marcaremos el checkbox «Enviar» y sin utilizar compresión (compresión «ninguna») pulsaremos sobre «Continuar».
  10. Nos aparecerá el fichero SQL listo para descargar, con la copia de la base de datos.

Backup de los ficheros

Este último paso (al igual que el anterior), no es estrictamente necesario, pero para mayor seguridad, he preferido hacer un backup del sistema de ficheros en producción de mi e-commerce.

  1. Para ello he abierto mi cliente FTP favorito y me he conectado a mi hosting.
  2. Después únicamente he arrastrado toda la carpeta «magento» con sus directorios, sub-directorios y ficheros a mi disco duro (esto ha llevado un rato largo).

Con todo esto, ya me he quedado más tranquilo de cara a cualquier fallo en mi e-commerce.

La importancia de los Backups

Backups¿Quién no ha perdido en alguna ocasión datos importantes, y no ha podido recuperarlos por no tener una copia de seguridad? Hace poco, una empresa cliente ha tenido que cambiar de firewall ya que el anterior les ha dejado de funcionar. Al nuevo firewall le han cargado la copia de seguridad de la configuración más reciente: una configuración de hace algo más de tres meses, que obviamente no contempla muchos de los cambios que se han venido haciendo desde entonces. Esto nos ha ocasionado mucho trabajo; trabajo que ya habíamos hecho, y por tanto, mucha pérdida de tiempo, y todo debido a que la empresa cliente no tenía una buena política de copias de seguridad.

Tan importante como tener una buena política de copias de seguridad, es cómo se realizan estas copias. Y no me refiero a la metodología (periodicidad, copias incrementales, etc.), sino a la seguridad de las mismas. En entornos empresariales pequeños, en los que las copias de seguridad corren en DVDs o en discos extraíbles, prima que no nos sea un problema el caso de pérdida o sustracción de alguna de estas copias de seguridad. Esto nos lleva a la inevitable y necesaria encriptación de los datos de que constan nuestras copias. Este punto es sumamente importante si, por ejemplo como en el caso de la empresa anterior, nuestro backup contiene la configuración del firewall de nuestra empresa. Obviamente no nos interesa que nadie pueda ver nuestras políticas de seguridad de red, ya que perderíamos gran parte de esa «seguridad». Igualmente, al trabajar con datos de clientes, proveedores o empleados, típicos de las bases de datos sobre las que se realizan los backups empresariales, es aún más importante que el administrador de sistemas se asegure de que dichos datos no puedan caer en manos ajenas, y que en caso de que así sucediese, no puedan ser accesibles.

Todo esto está muy bien, pero algo que creo no se acostumbra a hacer, es comprobar si las copias de seguridad que tenemos contienen todos los datos que queremos que contengan, y nos permiten recuperarlos en el mínimo tiempo posible. Por ejemplo, supongo que no será extraño empezar a trabajar en una empresa, y encontrarte toda la política de copias de seguridad ya definida, pero no encontrar por ningún lado definida la política de restauración de estas copias de seguridad. Quizá sería una buena idea, establecer metodologías para la recuperación de los datos de las copias de seguridad, para que cualquier persona pueda recuperar los datos en el menor tiempo posible.

Flickr! Foto por godog