De MySQL con InnoDB y copias de seguridad
MySQL es probablemente el sistema de gestión de bases de datos más extendido, con permiso de Access (ejem!, es que hablamos de cosas serias). MySQL incluye varios motores de bases de datos, entre los que destacan MyISAM (el motor por defecto) e InnoDB. Circula la falsa creencia de que las bases de datos MyISAM son mucho más rápidas y eficientes en sistemas en los que hay muchas sentencias SELECT y escasos INSERT/UPDATE. Y esto no es cierto en la mayoría de los casos. En MySQL Performance Blog tienen una comparativa de rendimiento de 3 motores de base de datos, en los que queda clara la superioridad de InnoDB. Si sumamos esto a todas sus funciones, la elección es clara a favor de InnoDB.
El principal problema de esto es que muy poca gente utiliza InnoDB, a pesar de ser un motor mucho más profesional que MyISAM. Por otro lado, hay mucho aficionado haciendo páginas Web que desconoce totalmente la existencia de InnoDB (y probablemente tampoco sepa nada de MyISAM). Este hecho deriva en situaciones surrealistas, como que muchos de las empresas de hospedaje Web ignoran también la existencia de InnoDB, y no incluyen sus ficheros de datos en las copias de seguridad.
Yo siempre utilizo InnoDB como motor en MySQL, y recientemente me he encontrado en la desagradable situación de perder el contenido completo de la base de datos de un cliente porque el servicio de hospedaje contratado tenía un sistema rudimentario de copias de seguridad, que consistía en copiar sólo las carpetas del directorio “data”. Tras una caída de sus sistemas reestablecieron la copia de seguridad y, voilá, la información de mi base de datos desapareció por arte de birlibirloque. Bastantes llamadas al servicio técnico me ha costado convencerlos de que había datos en esas tablas, y descrubir dónde estaba el fallo.
Para leer más sobre cómo realizar copias de seguridad de MySQL, recomiendo ir a la sección del manual de MySQL relativa al tema que es bastante completa.
La soluciones más comunes para mantener una buena copia de seguridad de una base de datos con InnoDB son:
- Utilizar un servidor de réplica. Esto es muy sencillo montar.
- Utilizar una herramienta de copia de seguridad para InnoDB, como ibbackup.