sql >> Base de Datos >  >> RDS >> PostgreSQL

Conmutación por error y conmutación por recuperación para PostgreSQL en Microsoft Azure

Es bastante común usar la nube para almacenar sus datos o como una opción de conmutación por error en caso de falla maestra. Hay varios proveedores de nube que le permiten almacenar, administrar, recuperar y manipular datos a través de una plataforma en la nube; accesible a través de Internet. Cada proveedor de la nube tiene sus propias ofertas de productos y características únicas, cada uno con diferentes modelos de costos.

Microsoft Azure es uno de estos proveedores. En este blog, veremos qué funciones ofrece Microsoft Azure para el almacenamiento principal, como un sitio de recuperación ante desastres, y veremos específicamente cómo maneja un entorno de base de datos mixto de PostgreSQL.

Implementación de una instancia de base de datos PostgreSQL en Microsoft Azure

Antes de realizar esta tarea, debe decidir cómo usará esta instancia y qué producto de Azure es mejor para usted. Hay dos formas básicas de implementar una instancia de PostgreSQL en Microsoft Azure.

  1. Base de datos Azure para PostgreSQL :es un servicio administrado que puede usar para ejecutar, administrar y escalar bases de datos PostgreSQL de alta disponibilidad en la nube. Está disponible en dos opciones de implementación:servidor único e hiperescala.
  2. Máquina virtual :proporciona una infraestructura virtualizada, segura, a gran escala y bajo demanda. Es compatible con Ubuntu Server, RedHat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian y Windows Server y le permite desarrollar, probar, ejecutar aplicaciones y ampliar su centro de datos en solo unos segundos.

Para este blog, veremos cómo podemos crear una base de datos Azure para PostgreSQL y usar una máquina virtual Azure desde el portal de Microsoft Azure.

Implementación de Azure Database para PostgreSQL

Si va a su portal de Azure -> Crear un recurso -> Bases de datos -> Base de datos de Azure para PostgreSQL, podrá elegir entre Servidor único o Hiperescala. Para este blog, usaremos un servidor único, ya que la opción Hiperescala está en versión preliminar y aún no ofrece un SLA.

Aquí debe agregar información sobre su nueva instancia de PostgreSQL; como suscripción, nombre del servidor, credenciales de usuario y ubicación. También puede elegir qué versión de PostgreSQL usar (las versiones 9.5, 9.6, 10 u 11 están disponibles actualmente) y el hardware virtual para ejecutarlo (Computación + Almacenamiento).

Cuando especifique el hardware, verá el precio estimado en valores reales -tiempo. Esto es realmente útil para evitar una gran sorpresa el próximo mes. Después de este paso, solo tiene que confirmar la configuración del recurso y esperar un par de minutos hasta que Azure finalice el trabajo de creación.

Cuando haya creado el nuevo recurso, puede ir a Todos los recursos para ver las opciones de recursos disponibles.

En las opciones de recursos creados, puede ir a Replicación para habilitarlo y replicar desde el servidor maestro hasta cinco réplicas. También debe consultar la sección Seguridad de la conexión para habilitar o deshabilitar el acceso externo. Para conocer la información de acceso, debe visitar la sección de recursos generales.

$ psql -h pg1blog.postgres.database.azure.com -U [email protected] postgres

Password for user [email protected]:

psql (11.5, server 11.4)

SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)

Type "help" for help.

postgres=>

Conmutación por error en Azure Database para PostgreSQL

Desafortunadamente, la conmutación por error automatizada entre los servidores maestro y réplica no está disponible. Sin embargo, si elimina la instancia principal, Azure realizará un proceso de conmutación por error para promocionar la réplica de forma automática.

Hay una opción para realizar esta tarea de conmutación por error manualmente, que requiere que detenga la réplica y configure el nuevo punto final en su aplicación para que apunte al nuevo maestro. La réplica se promoverá y se desvinculará del maestro. No hay forma de volver a vincular esta réplica a su maestro.

Implementación de PostgreSQL en Azure Virtual Machine

Si va a su Portal de Azure -> Crear un recurso -> Cómputo -> Máquina virtual, abrirá la sección Crear una máquina virtual donde puede especificar diferentes configuraciones para su nueva Máquina virtual de Azure .

En la pestaña básica, debe especificar la suscripción de Azure, Región, Disponibilidad opciones, sistema operativo, tamaño del servidor, credenciales de acceso (nombre de usuario/contraseña o clave SSH) y reglas de firewall de entrada.

En la pestaña del disco, debe especificar el almacenamiento (tipo y tamaño) para su nueva máquina virtual. El tipo de disco puede ser HDD estándar, SSD estándar o SSD premium. El último se recomienda para cargas de trabajo altas de IOPS.

En la pestaña de redes, puede especificar la red virtual, la dirección IP pública y los puertos de entrada permitidos. También puede agregar esta nueva máquina virtual detrás de una solución existente de equilibrio de carga de Azure.

En la siguiente pestaña, tenemos algunas opciones de administración, como monitoreo y copias de seguridad .

Y finalmente, en la pestaña avanzada, podemos agregar extensiones, nube- init o grupos de host.

Después de revisar la opción anterior y confirmarla, tendrá su nueva máquina virtual creada y accesible desde Azure Portal. En la sección Recurso -> Descripción general, puede ver la información de acceso a la máquina virtual (Dirección IP pública/privada).

Ahora puede acceder vía SSH e instalar la base de datos PostgreSQL usando ClusterControl .

$ ssh 23.102.177.27

Last login: Mon Sep 23 21:33:27 2019

[[email protected] ~]$

Puede consultar este enlace para ver los pasos para realizar la implementación de PostgreSQL con ClusterControl.

Conmutación por error de PostgreSQL en Azure Virtual Machine

La recuperación ante desastres es una función de máquina virtual en la sección Operaciones que le permite replicar su entorno en otra región de Azure. Para habilitarlo, debe elegir la región de destino. En la pestaña avanzada, puede modificar los detalles específicos del objetivo; como la red virtual, la configuración de almacenamiento y la configuración de replicación.

Cuando la recuperación ante desastres esté habilitada, podrá verificar la estado de la replicación, pruebe el proceso de conmutación por error o realice la conmutación por error manualmente.

Habilitar esto le permite tener una opción de conmutación por error en caso de falla. Sin embargo, esto será una conmutación por error para todo el entorno y no solo para el servicio de la base de datos.

Un proceso mejorado de conmutación por error de PostgreSQL para Microsoft Azure

Como tiene acceso SSH, puede mejorar este proceso de conmutación por error importando la máquina virtual (o incluso implementando la base de datos PostgreSQL) con ClusterControl.

Si está administrando los nodos de la base de datos con ClusterControl (y si la opción "Recuperación automática" está activada), en caso de falla del maestro, ClusterControl promoverá el esclavo más avanzado (si no está en la lista negra). ) para dominar y notificarle el problema. También falla automáticamente en el resto de los esclavos para replicar desde el nuevo maestro.

Con ClusterControl, incluso implementa un entorno mixto con algunos nodos en la nube y otros nodos en las instalaciones. También puede agregar balanceadores de carga a su topología para mejorar nuestro entorno de alta disponibilidad. Puede encontrar más información sobre este tema aquí.

Conclusión

Azure tiene muchas características y productos para ofrecer una solución de nivel empresarial. Sin embargo, durante estas pruebas, el principal problema que encontré fue que el tiempo de creación y conmutación por error era demasiado largo para la mayoría de las necesidades de las aplicaciones.

Si necesita una conmutación por error y una recuperación rápidas, debe mejorar la disponibilidad del entorno mediante el uso de un equilibrador de carga o un sistema externo como ClusterControl para reducir el tiempo de inactividad. Para obtener información más detallada sobre cómo ejecutar PostgreSQL en Microsoft Azure, puede consultar nuestro blog de análisis detallado.