sql >> Base de Datos >  >> RDS >> Mysql

Escenarios de copia de seguridad y restauración en la nube de MySQL con Microsoft Azure

Las copias de seguridad son una parte muy importante de las operaciones de su base de datos, ya que su negocio debe estar protegido cuando ocurre una catástrofe. Cuando llegue ese momento (y llegará), su objetivo de punto de recuperación (RPO) y su objetivo de tiempo de recuperación (RTO) deben estar predefinidos, ya que así es como puede recuperarse rápidamente del incidente que ocurrió.

La mayoría de las organizaciones varían su enfoque de las copias de seguridad, tratando de tener una combinación de copias de seguridad de imágenes de servidor (instantáneas), copias de seguridad lógicas y físicas. Estas copias de seguridad luego se almacenan en múltiples ubicaciones, para evitar desastres locales o regionales. También significa que los datos se pueden restaurar en el menor tiempo posible, evitando un tiempo de inactividad importante que puede afectar el negocio de su empresa.

Alojar su base de datos con un proveedor de la nube, como Microsoft Azure (del que hablaremos en este blog), no es una excepción, aún necesita preparar y definir su política de recuperación ante desastres.

Al igual que otras ofertas de nube pública, Microsoft Azure (Azure) ofrece un enfoque para las copias de seguridad que es práctico, rentable y está diseñado para brindarle opciones de recuperación. Las soluciones de copia de seguridad de Microsoft Azure le permiten configurar y operar y se manejan fácilmente usando su copia de seguridad de Azure o a través de la bóveda de servicios de restauración (si está operando su base de datos usando máquinas virtuales).

Si desea una base de datos administrada en la nube, Azure ofrece Azure Database for MySQL. Esto debe usarse solo si no desea operar y administrar la base de datos MySQL usted mismo. Este servicio ofrece una solución enriquecida para la copia de seguridad que le permite crear una copia de seguridad de su instancia de base de datos, ya sea desde una región local o a través de una ubicación con redundancia geográfica. Esto puede ser útil para la recuperación de datos. Incluso puede restaurar un nodo de un período de tiempo específico, lo cual es útil para lograr una recuperación puntual. Esto se puede hacer con un solo clic.

En este blog, cubriremos todos estos escenarios de respaldo y restauración utilizando una base de datos MySQL en la nube de Microsoft Azure.

Realización de copias de seguridad en una máquina virtual en Azure

Desafortunadamente, Microsoft Azure no ofrece una solución de tipo de copia de seguridad específica de MySQL (por ejemplo, MySQL Enterprise Backup, Percona XtraBackup o Mariabackup de MariaDB).

Después de la creación de su máquina virtual (usando el portal), puede configurar un proceso para hacer una copia de seguridad de su máquina virtual usando la bóveda de servicios de restauración. Esto lo protegerá de cualquier incidente, desastre o catástrofe y los datos almacenados están encriptados por defecto. Agregar cifrado es opcional y, aunque lo recomienda Azure, tiene un precio. Puede consultar la página de precios de Azure Backup para obtener más detalles.

Para crear y configurar una copia de seguridad, vaya al panel izquierdo y haga clic en Todos los recursos → Computar → Máquina virtual. Ahora configure los parámetros requeridos en los campos de texto. Una vez que esté en esa página, vaya a la pestaña Administración y desplácese hacia abajo. Podrá ver cómo puede configurar o crear la copia de seguridad. Vea la captura de pantalla a continuación:

Luego, configure su política de respaldo según sus requisitos de respaldo. Simplemente presione el enlace Crear nuevo en el campo de texto de la política de copia de seguridad para crear una nueva política. Ver a continuación:

Puede configurar su política de respaldo con retención por semana, mes y año .

Una vez que haya configurado su copia de seguridad, puede comprobar que tiene una copia de seguridad habilitada en esa máquina virtual en particular que acaba de crear. Vea la captura de pantalla a continuación:

Restaurar y recuperar su máquina virtual en Azure

El diseño de su recuperación en Azure depende del tipo de política y requisitos que requiera su aplicación. También depende de si el RTO y el RPO deben ser bajos o invisibles para el usuario en caso de incidente o durante el mantenimiento. Puede configurar su máquina virtual con un conjunto de disponibilidad o en una zona de disponibilidad diferente para lograr una mayor tasa de recuperación.

También puede configurar una recuperación ante desastres para su VM para replicar sus máquinas virtuales en otra región de Azure para las necesidades de recuperación ante desastres y continuidad del negocio. Sin embargo, esto podría no ser una buena idea para su organización, ya que tiene un alto costo. Si está disponible, Azure le ofrece una opción para restaurar o crear una máquina virtual a partir de la copia de seguridad creada.

Por ejemplo, durante la creación de su máquina virtual, puede ir a la pestaña Discos y luego a Discos de datos. Puede crear o adjuntar un disco existente donde puede adjuntar la instantánea que tiene disponible. Vea la siguiente captura de pantalla para la cual podrá elegir entre una instantánea o un blob de almacenamiento:

 También puede restaurar en un punto específico en el tiempo como en la captura de pantalla a continuación:

La restauración en Azure se puede realizar de diferentes formas, pero utiliza el mismo recursos que ya ha creado.

Por ejemplo, si ha creado una instantánea o una imagen de disco almacenada en el blob de Azure Storage, si crea una nueva máquina virtual, puede usar ese recurso siempre que sea compatible y esté disponible para su uso. Además, es posible que incluso pueda recuperar algunos archivos, además de restaurar una VM como en la siguiente captura de pantalla:

Durante la recuperación de archivos, puede elegir un punto de recuperación específico , así como descargar un script para navegar y recuperar archivos. Esto es muy útil cuando solo necesita un archivo específico pero no todo el sistema o el volumen del disco.

La restauración desde una copia de seguridad en una VM existente toma alrededor de tres minutos. Sin embargo, la restauración desde la copia de seguridad para generar una nueva máquina virtual lleva doce minutos. Sin embargo, esto podría depender del tamaño de su máquina virtual y del ancho de banda de la red disponible en Azure. Lo bueno es que, al restaurar, te proporcionará detalles de lo que se ha completado y cuánto tiempo queda. Por ejemplo, vea la siguiente captura de pantalla:

Copias de seguridad para Azure Database para MySQL

Azure Database for MySQL es un servicio de base de datos completamente administrado por Microsoft Azure. Este servicio ofrece una manera muy flexible y conveniente de configurar sus capacidades de copia de seguridad y restauración.

Después de la creación de su instancia de servidor MySQL, puede configurar la retención de copias de seguridad y crear sus opciones de redundancia de copias de seguridad; ya sea localmente redundante (región local) o geo-redundante (en una región diferente). Azure le proporcionará el costo estimado que se le cobrará por un mes. Vea una captura de pantalla de muestra a continuación:

Recuerde que las opciones de respaldo con redundancia geográfica solo están disponibles en Uso general y tipos optimizados para memoria de nodos de cómputo. No está disponible en un nodo de cómputo básico, pero puede tener su redundancia en la región local (es decir, dentro de las zonas de disponibilidad disponibles).

Una vez que tenga una configuración maestra, es fácil crear una réplica yendo a Azure Database para servidores MySQL → Seleccione su instancia de MyQL → Replicación → y haga clic en Agregar réplica. Su réplica se puede utilizar como origen o destino de restauración cuando sea necesario.

Recuerde que en Azure, cuando detiene la replicación entre el maestro y una réplica, esto será para siempre e irreversible, ya que convierte a la réplica en un servidor independiente. Una réplica creada con Microsoft Azure es idealmente una instancia administrada y puede detener e iniciar los subprocesos de replicación tal como lo hace en una replicación maestro-esclavo normal. Puedes hacer un reinicio y eso es todo. Si creó la réplica manualmente, restaurando desde el maestro o una copia de seguridad (por ejemplo, a través de una recuperación de un momento dado), entonces podrá detener/iniciar los subprocesos de replicación o configurar un retraso esclavo si es necesario.

Restauración de su base de datos Azure para MySQL desde una copia de seguridad

La restauración es muy fácil y rápida con Azure Portal. Simplemente puede presionar el botón de restauración con su nodo de instancia de MySQL y simplemente seguir la interfaz de usuario como se muestra en la siguiente captura de pantalla:

Luego puede seleccionar un período de tiempo y crear/generar una nueva instancia basado en esta copia de seguridad capturada:

Una vez que tenga el nodo disponible, este nodo no será una réplica de el maestro todavía. Debe configurar esto manualmente con pasos sencillos utilizando sus procedimientos almacenados disponibles:

CALL mysql.az_replication_change_master('<master_host>', '<master_user>', '<master_password>', 3306, '<master_log_file>', <master_log_pos>, '<master_ssl_ca>');

dónde

master_host:nombre de host del servidor maestro

master_user:nombre de usuario para el servidor maestro

master_password:contraseña del servidor maestro

master_log_file:nombre de archivo de registro binario de la ejecución de mostrar estado maestro

master_log_pos:posición de registro binario de la ejecución de mostrar estado maestro

master_ssl_ca:contexto del certificado de CA. Si no usa SSL, pase una cadena vacía.

Entonces iniciar los subprocesos de MySQL es el siguiente,

CALL mysql.az_replication_start;

o puede detener los subprocesos de replicación de la siguiente manera,

CALL mysql.az_replication_stop;

o puede eliminar el maestro como,

CALL mysql.az_replication_remove_master;

u omitir errores de subprocesos SQL como,

CALL mysql.az_replication_skip_counter;

Como se mencionó anteriormente, cuando se crea una réplica con Microsoft Azure en la función Agregar réplica en una instancia de MySQL, estos procedimientos almacenados específicos no están disponibles. Sin embargo, el procedimiento mysql.az_replication_restart estará disponible ya que no puede detener ni iniciar los subprocesos de replicación de una réplica administrada por Azure. Entonces, el ejemplo que tenemos arriba se restauró de un maestro que toma la copia completa del maestro pero actúa como un solo nodo y necesita una configuración manual para ser una réplica de un maestro existente.

Además, cuando tenga una réplica manual que haya configurado, no podrá ver esto en Azure Database para servidores MySQL → Seleccione su instancia de MyQL → Replicación desde que creó o configuró la replicación manualmente .

Soluciones alternativas de copia de seguridad en la nube y restauración

Hay ciertos escenarios en los que desea tener acceso completo al realizar una copia de seguridad completa de su base de datos MySQL en la nube. Para ello, puede crear su propio script o utilizar tecnologías de código abierto. Con estos, puede controlar cómo se debe hacer una copia de seguridad de los datos en su base de datos MySQL y cómo se debe almacenar con precisión.

También puede aprovechar la interfaz de línea de comandos (CLI) de Azure para crear su automatización personalizada. Por ejemplo, puede crear una instantánea con el siguiente comando con la CLI de Azure:

az snapshot create  -g myResourceGroup -source "$osDiskId" --name osDisk-backup

o cree su réplica de servidor MySQL con el siguiente comando:

az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup

Como alternativa, también puede aprovechar una herramienta empresarial que presenta formas de realizar su copia de seguridad con opciones de restauración. El uso de tecnologías de código abierto o herramientas de terceros requiere conocimientos y habilidades para aprovechar y crear su propia implementación. Esta es la lista que puede aprovechar:

  • Control de clúster - Si bien podemos ser un poco sesgados, ClusterControl ofrece la capacidad de administrar copias de seguridad físicas y lógicas de su base de datos MySQL utilizando tecnologías de código abierto probadas en batalla (PXB, Mariabackup y mydumper). Soporta bases de datos MySQL, Percona, MariaDB, Galera. Puede crear fácilmente nuestra política de copia de seguridad y almacenar las copias de seguridad de su base de datos en cualquier nube (AWS, GCP o Azure). Tenga en cuenta que la versión gratuita de ClusterControl no incluye las funciones de copia de seguridad.
  • Instantáneas de LVM - Puede usar LVM para tomar una instantánea de su volumen lógico. Esto solo se aplica a su máquina virtual, ya que requiere acceso al almacenamiento a nivel de bloque. El uso de esta herramienta requiere una advertencia, ya que puede hacer que el nodo de su base de datos deje de responder mientras se ejecuta la copia de seguridad.
  • Percona XtraBackup (PXB) - Una tecnología de código abierto de Percona. Con PXB, puede crear una copia de seguridad física de su base de datos MySQL. También puede hacer una copia de seguridad en caliente con PXB para el motor de almacenamiento InnoDB, pero se recomienda ejecutar esto en un servidor de base de datos MySQL esclavo o no ocupado. Esto solo se aplica a su instancia de VM, ya que requiere acceso binario o de archivos al propio servidor de la base de datos.
  • Respaldo de María - Lo mismo con PXB, es una tecnología de código abierto bifurcada de PXB pero es mantenida por MariaDB. Específicamente, si su base de datos usa MariaDB, debe usar Mariabackup para evitar problemas de incompatibilidad con los espacios de tablas.
  • midumper/micargador - Estas herramientas de copia de seguridad crean copias de seguridad lógicas de su base de datos MySQL. Puede usar esto con su base de datos de Azure para MySQL, aunque no he probado qué tan exitoso es esto para su procedimiento de copia de seguridad y restauración.
  • mysqldump - es una herramienta de respaldo lógico que es muy útil cuando necesita respaldar y volcar (o restaurar) una tabla o base de datos específica a otra instancia. Esto es comúnmente utilizado por los DBA, pero debe prestar atención al espacio de sus discos, ya que las copias de seguridad lógicas son enormes en comparación con las copias de seguridad físicas.
  • Copia de seguridad empresarial de MySQL - Ofrece copias de seguridad activas, en línea y sin bloqueo en múltiples plataformas, incluidas Linux, Windows, Mac y Solaris. No es una herramienta de copia de seguridad gratuita, pero ofrece muchas funciones.
  • rsync - Es una herramienta de copia de archivos rápida y extraordinariamente versátil. Puede copiar localmente, hacia/desde otro host a través de cualquier shell remoto, o hacia/desde un demonio rsync remoto. Ofrece una gran cantidad de opciones que controlan todos los aspectos de su comportamiento y permiten una especificación muy flexible del conjunto de archivos a copiar. Principalmente en los sistemas Linux, rsync se instala como parte del paquete del sistema operativo.