Cuando sucede un imprevisto, tu empresa puede sufrir daños. Los fallos de hardware, la corrupción de las bases de datos, los errores de usuario e incluso los ataques maliciosos pueden suponer un riesgo de pérdida de datos. Las copias de seguridad de las bases de datos te ayudan a recuperar tu negocio y a ponerlo en marcha, aunque se produzca algún problema. Además, cuando todo va bien, las copias de seguridad de las bases de datos te ayudarán a cumplir tus requisitos de auditoría y cumplimiento, ya que te permiten restaurar tu base de datos en un punto anterior.
MySQL admite varias opciones para crear una copia de seguridad de las bases de datos, cada una con distintos puntos fuertes. Puedes elegir la combinación de métodos que mejor se adapte a tus necesidades.
Hay dos formas principales de crear una copia de seguridad de una base de datos MySQL: física y lógica, La copia de seguridad física copia los archivos de datos reales y la copia de seguridad lógica genera instrucciones como CREATE TABLE e INSERT que pueden recrear los datos.
Las copias de seguridad físicas contienen las copias sin procesar de todos los archivos y directorios que hay en el disco. Este tipo de copia de seguridad es adecuada para grandes bases de datos porque copiar los archivos sin procesar es mucho más rápido en comparación con las copias de seguridad lógicas.
Ventajas:
Inconvenientes:
Algunas herramientas habituales de copia de seguridad física del ecosistema de MySQL
Una copia de seguridad lógica contiene los datos de la base de datos en un formato que MySQL puede interpretar como SQL o como texto delimitado. Representa una base de datos como una secuencia de declaraciones SQL que se pueden ejecutar para recrear objetos de base de datos e importar datos. Este tipo de copia de seguridad es adecuada para bases de datos pequeñas porque las copias de seguridad lógicas pueden tardar considerablemente más tiempo en restaurarse que la restauración de una copia de seguridad física. Este tipo de copia de seguridad también resulta útil al migrar de servicios de bases de datos gestionados a la nube o desde ellos.
Ventajas:
Inconvenientes:
Algunas herramientas habituales de copia de seguridad lógica
Como sugiere el nombre, la recuperación a un momento dado te ayuda a recuperar una instancia a un momento dado. Por ejemplo, si un error provoca una pérdida de datos, puedes recuperar el estado de una base de datos antes de que se produjera el error.
PITR es un proceso de dos pasos que se basa en los registros binarios:
Los registros binarios contienen los cambios que se hayan hecho en la instancia de la base de datos, como crear una tabla, insertar, actualizar o eliminar una fila, entre otros. Por ejemplo, supongamos que tus copias de seguridad diarias se ejecutan a las 6:00 de la mañana y quieres poder recuperar tu instancia en cualquier momento hasta las 10:15. Para recuperar tu estado a las 10:15, primero tienes que restaurar la copia de seguridad completa desde las 6:00 y, a continuación, volver a reproducir los eventos de registro binario desde las 6:00 hasta las 10:15. Esto hará que el servidor tenga el estado que quieras en el momento deseado.
Se necesitan registros binarios para la replicación y el PITR; son tan importantes como los datos subyacentes. Para que los registros binarios sean eficaces en la planificación de la recuperación, debes crear una copia de seguridad de ellos en tiempo real. Además, puedes descargarlos con el comando mysqlbinlog.
Por ejemplo:
mysqlbinlog --host=<nombre de host> --port=<puerto> --user=<usuario> --password=<contraseña> --read-from-remote-server --raw --stop-never <binlog_filename> |
El archivo <binlog_filename> será el primero que se descargará y, después, mysqlbinlog cambiará automáticamente a los siguientes archivos. Esos registros binarios se escriben en el directorio actual del servidor que ejecuta el comando mysqlbinlog. Puedes cambiar el nombre y la ubicación del archivo con la opción --result-file. También puedes utilizar la opción --stop-never para permitir que el registro binario de mysqlbinlog esté conectado al servidor y descargue nuevos cambios a medida que se escriben.
Puedes obtener más información en el manual de mysqlbinlog sobre cómo conectarse a un servidor remoto y descargar los registros binarios tal como están escritos.
Como es el servicio gestionado de bases de datos de Google Cloud para MySQL, Cloud SQL ofrece copias de seguridad automatizadas y sistemas de recuperación a un momento dado (PITR) para proteger los datos. Están habilitadas de forma predeterminada y son necesarias para habilitar la alta disponibilidad en una instancia de Cloud SQL para MySQL.
Las copias de seguridad de Cloud SQL son un tipo de copia de seguridad física, ya que son capturas que se realizan en Persistent Disk (PD). Cloud SQL ofrece la flexibilidad necesaria para que las copias de seguridad se realicen automáticamente. También puedes hacerlas bajo demanda en cualquier momento. Puedes seguir haciendo una copia de seguridad lógica usando las herramientas estándar de copia de seguridad lógica de MySQL, como mysqldump, mydumper, mysqlpump y otros, sin interferir con tus copias de seguridad gestionadas.
Veamos cómo funcionan las copias de seguridad de Cloud SQL.
Cloud SQL usa Persistent Disk (PD) para el almacenamiento, y cada instancia de Cloud SQL tiene un disco de datos persistente conectado para almacenar los archivos y directorios de la base de datos.
Cloud SQL utiliza capturas de disco persistente para crear copias de seguridad, que hacen referencia al estado del disco de datos en un momento dado. La primera captura de un disco persistente es una captura completa que contiene todos los datos del disco persistente. Las siguientes capturas son incrementales y solo contienen datos nuevos o modificados desde la captura anterior. Puedes considerar estas capturas como copias físicas gestionadas por la nube de discos de datos persistentes, y son la base de todas las funciones de copia de seguridad y restauración de Cloud SQL, como PITR.
Cloud SQL realiza dos tipos de copias de seguridad gestionadas: automáticas y bajo demanda. Ambos tipos están almacenados de forma predeterminada en la ubicación multirregional más cercana a la instancia. Por ejemplo, si tu instancia de Cloud SQL está en us-central1, las copias de seguridad se almacenan en la multirregión de EE. UU. de forma predeterminada. Sin embargo, una ubicación predeterminada como australia-southeast1 se encuentra fuera de una multirregión y se colocará en la multirregión más cercana, que es asia. También puedes elegir una ubicación personalizada para tus copias de seguridad.
Copias de seguridad automáticas
Las copias de seguridad automatizadas se realizan a diario durante el periodo de 4 horas que elijas. La copia de seguridad se inicia durante el periodo de la copia de seguridad y puede continuar fuera de este hasta que finalice. Puedes configurar cuántas copias de seguridad automatizadas se conservarán de 1 a 365. La política de retención predeterminada consiste en conservar las siete copias de seguridad más recientes.
Copias de seguridad bajo demanda
También puedes crear copias de seguridad bajo demanda en cualquier momento. Este método es útil si necesitas una copia de seguridad y no quieres esperar a que finalice la ventana. Además, a diferencia de las copias de seguridad automatizadas, las copias de seguridad bajo demanda no se eliminan automáticamente. Permanecen hasta que las elimines o hasta que se elimine su instancia.
Puedes restaurar una copia de seguridad en la misma instancia donde se hizo o en otra instancia del mismo proyecto. Ten en cuenta que la instancia de destino no debe ser una réplica de lectura en sí ni debería tener réplicas de lectura en el momento de restaurar la copia de seguridad, ya que las réplicas de lectura son copias de una instancia principal y crea el riesgo de que las réplicas se sincronicen con la principal. Siempre puedes añadir réplicas de lectura después.
Al restaurar la copia de seguridad se crea un nuevo disco persistente a partir de esa captura y se adjunta a la instancia. La base de datos empieza a usar el nuevo disco y realiza el proceso estándar de recuperación tras fallos de MySQL antes de conectarse a Internet como base de datos MySQL completa como una restauración de la captura.
Restaurar en la misma instancia
Al restaurar desde una copia de seguridad en la misma instancia, devuelves los datos sobre esa instancia al estado que tenía cuando se tomó para la copia de seguridad.
Restaurar en otra instancia
Cuando se restaura desde una copia de seguridad en una instancia diferente, se actualizan los datos en la instancia de destino al estado de la instancia de origen cuando se realizó la copia de seguridad.
Importante: Al restaurar una copia de seguridad, se sobrescriben todos los datos que hay en la instancia de destino, incluidos los registros de recuperación a un momento dado. Los datos sobrescritos no se pueden recuperar.
En Cloud SQL, PITR siempre crea una nueva instancia que hereda la configuración de la instancia de origen, similar a la operación de clonar instancia. Esta función requiere que se habiliten las copias de seguridad automáticas y la recuperación a un momento dado (registros binarios) en la instancia de origen. La política de retención predeterminada de los registros binarios es de 7 días, aunque puedes configurar el periodo de retención para que esté comprendido entre 1 y 7 días.
Para conseguir PITR, se crea una nueva instancia a partir de la copia de seguridad de la instancia original y se vuelven a reproducir los registros binarios almacenados en el disco de datos de la instancia original hasta el punto especificado.
Al ejecutar PITR en Cloud SQL, los clientes pueden clonar el estado actual de la instancia o elegir una marca de tiempo en el pasado.
La UI para realizar el PITR se parece al siguiente.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.