Configurar alta disponibilidad

El objetivo de una configuración de alta disponibilidad es reducir el tiempo de inactividad cuando una instancia de clúster de base de datos deja de estar disponible. Esto puede ocurrir cuando una instancia se queda sin memoria. Con la alta disponibilidad, tus datos siguen estando disponibles para las aplicaciones cliente.

En un sitio, la configuración se compone de una instancia principal y una réplica de espera. Todas las escrituras realizadas en la instancia principal se replican en la réplica de espera antes de que se informe de que se ha confirmado una transacción. En caso de que se produzca un error en una instancia, puedes solicitar que la réplica de espera se convierta en la nueva instancia principal. El tráfico de la aplicación se redirige a la nueva instancia principal. Este proceso se denomina conmutación por error.

Puedes activar manualmente una conmutación por error en cualquier momento. La conmutación por error implica el siguiente proceso, por orden:

  1. GDC pone offline la instancia principal.

  2. GDC convierte la réplica en espera en el nuevo clúster de base de datos activo.

  3. GDC elimina el clúster de base de datos activo anterior.

  4. GDC crea una nueva réplica de reserva.

Actualizar un clúster

Para actualizar los ajustes de alta disponibilidad de un clúster de bases de datos, sigue estos pasos:

Consola

  1. En el menú de navegación, selecciona Database Service (Servicio de bases de datos).

  2. En la lista de clústeres de bases de datos, haz clic en el clúster que quieras actualizar.

  3. Selecciona Editar Editar en la sección Alta disponibilidad.

    Edita los ajustes de alta disponibilidad de un clúster de bases de datos.

  4. Selecciona Habilitar instancia en espera en la misma zona para activar o desactivar la disponibilidad de una instancia en espera en la misma zona que tu clúster de base de datos principal.

  5. Haz clic en Guardar.

  6. Para comprobar que el clúster de bases de datos refleja la actualización de alta disponibilidad, consulta su estado en la columna Alta disponibilidad de la lista de clústeres de bases de datos.

gdcloud

  1. Actualiza la configuración de alta disponibilidad de tu clúster de bases de datos:

    gdcloud database clusters update CLUSTER_NAME \
        --availability-type HA_TYPE
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster de la base de datos.
    • HA_TYPE: el nivel de alta disponibilidad del clúster de base de datos. Puedes definir zonal o zonal_ha. El valor de zonal se define de forma predeterminada.
  2. Comprueba que el clúster de bases de datos refleje la actualización de alta disponibilidad:

    gdcloud database clusters list
    

API

  1. Actualiza la configuración de alta disponibilidad de tu clúster de bases de datos:

      kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
        -n USER_PROJECT \
        -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \
        --type=merge
    

    Sustituye las siguientes variables:

    • DBCLUSTER_NAME: el nombre del clúster de la base de datos.
    • USER_PROJECT: el nombre del proyecto de usuario en el que se creó el clúster de base de datos.
    • HA_ENABLED: el nivel de alta disponibilidad del clúster de bases de datos. Puedes definir true o false. El valor de false se define de forma predeterminada.
  2. Comprueba que el clúster de bases de datos refleje la actualización de alta disponibilidad:

    kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \
      -n USER_PROJECT \
      -o yaml
    

Migrar a la implementación de alta disponibilidad más reciente

Para verificar que tu clúster de bases de datos de alta disponibilidad usa la implementación más reciente, comprueba si la anotación dbcluster.dbadmin.goog/raasEnabled existe en el CR de tu clúster de bases de datos de alta disponibilidad. Esta anotación solo aparecerá en los clústeres que usen la nueva implementación. Si no tienes esta anotación, puedes habilitarla y migrar tu clúster siguiendo estos pasos:

  1. Ponte en contacto con tu operador de infraestructura para comprobar que tu entorno de GDC se ha actualizado a la versión 1.15.1 o posterior.
  2. Inhabilita la alta disponibilidad en tu clúster de bases de datos. Espera a que desaparezca la condición HAReady y, a continuación, vuelve a habilitar la alta disponibilidad.
  3. Cuando veas HAReady in progress o HAReady setup complete, busca en el CR de tu clúster de base de datos la anotación dbcluster.dbadmin.goog/raasEnabled. Si aparece, significa que el clúster de base de datos se ha migrado correctamente.

Activar una conmutación por error

Si has configurado la alta disponibilidad en tu clúster de bases de datos, puedes activar una conmutación por error. Para activar una conmutación por error, sigue estos pasos:

Consola

  1. En el menú de navegación, selecciona Database Service (Servicio de bases de datos).

  2. En la lista de clústeres de bases de datos, haz clic en el clúster de bases de datos para activar una conmutación por error. Tu clúster de bases de datos debe tener la alta disponibilidad habilitada para poder realizar una conmutación por error.

  3. Haz clic en Conmutación por error.

  4. Escribe el ID del clúster en la frase de confirmación y haz clic en Conmutación por error para activar el proceso.

gdcloud

  • Activa la conmutación por error del clúster de bases de datos:

    gdcloud database clusters failover CLUSTER_NAME
    

    Sustituye CLUSTER_NAME por el nombre del clúster de bases de datos.

API

  apiVersion: fleet.dbadmin.gdc.goog/v1
  kind: Failover
  metadata:
    name: FAILOVER_NAME
  spec:
    dbclusterRef: DBCLUSTER_NAME

Sustituye las siguientes variables:

  • DBCLUSTER_NAME, el nombre del clúster de la base de datos.
  • FAILOVER_NAME, el nombre único de la conmutación por error. Por ejemplo, failover-sample.