Configurar una instancia para alta disponibilidad

En esta página se describe cómo configurar una instancia de segunda generación para lograr una alta disponibilidad.

La forma más fácil de configurar una instancia para alta disponibilidad es hacerlo al crear la instancia. También puedes habilitar la alta disponibilidad en una instancia existente.

Para obtener más información sobre la configuración de alta disponibilidad, consulta Descripción general de la Configuración de alta disponibilidad.

Crear una nueva instancia configurada para alta disponibilidad

Cuando creas una instancia de segunda generación, puedes configurarla para alta disponibilidad; Cloud SQL crea la réplica de conmutación por error al mismo tiempo que crea el maestro.

Para crear una instancia configurada para alta disponibilidad:

Consola

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Crea a una instancia de segunda generación. Para ello, marca la casilla Alta disponibilidad en la sección de opción de configuración Habilitar copias de seguridad automáticas y alta disponibilidad y deja activada la copia de seguridad y registro binarios automatizados.

gcloud

  1. Crea la instancia maestra y su réplica de conmutación por error:
    gcloud sql instances create [MASTER_INSTANCE_NAME] \
                                     --backup-start-time [BACKUP_WINDOW_START_TIME] \
                                     --failover-replica-name [FAILOVER_REPLICA_NAME] \
                                     --tier [MACHINE_TYPE] --enable-bin-log
    

    La hora de inicio de la ventana de copia de seguridad está en el formato HH:MM.

  2. Configura el usuario raíz en el maestro:
    gcloud sql users set-password root % \
                          --instance [MASTER_INSTANCE_NAME] --password [PASSWORD]
    
Para obtener una lista completa de los parámetros disponibles, consulta la página de referencia para crear instancias de gcloud sql.

cURL

  1. Crea la instancia maestra y su réplica de conmutación por error:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name":"[MASTER_INSTANCE_NAME]", "region":"[REGION]",
                  "settings": {
                      "tier":"[MACHINE_TYPE]",
                      "backupConfiguration": {"binaryLogEnabled": true, "enabled": true}},
                      "failoverReplica": {"name": "[FAILOVER_REPLICA_NAME]"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    
    Para ver la lista completa de parámetros de esta petición, accede a la página instances:insert.
  2. Cuando el maestro termine de inicializarse, actualiza la contraseña raíz en el maestro:
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "root", "host": "%", "password": "[ROOT_PASSWORD]"}' \
         'https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[INSTANCE_NAME]/users?host=%25&name=root'
    
    Este cambio se propaga automáticamente en la réplica.

La réplica de conmutación por error se crea con el mismo tipo de máquina (nivel) que la instancia maestra. Puedes cambiar luego el tipo de máquina de la réplica de conmutación por error, pero debe ser al menos tan grande como la instancia maestra.

Para obtener más información sobre cómo crear una instancia, consulta Crear instancias.

Configurar una instancia existente para alta disponibilidad

Consola

El proceso para configurar una instancia existente para alta disponibilidad se compone de los siguientes pasos:

  • Inicia la creación de réplicas de conmutación por error.
  • Si es necesario, habilita las copias de seguridad y el registro binario en la instancia.
  • Finaliza la creación de la réplica de conmutación por error.
  • Tienes la opción de probar la conmutación por error.

La consola de Google Cloud Platform te ayudará durante la mayor parte de este proceso.

Para configurar una instancia existente para alta disponibilidad:

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Busca la instancia que quieras configurar para alta disponibilidad en la lista de instancias y haz clic en Agregar.

    Se abre la página Crear réplica de conmutación por error. Si la instancia está lista para crear réplicas, se mostrarán los campos que puedes editar para la réplica, y puede ir directamente al paso 6. Si no, continúa con el siguiente paso.

  3. Si la instancia no tiene habilitados los registros binarios o las copias de seguridad, habilítalos ahora seleccionando ambas casillas de verificación y haciendo clic en Guardar y reiniciar.

    Nota: Al habilitar el registro binario en una instancia existente, se reinicia la instancia. Las conexiones de bases de datos existentes se pierden y deben volver a abrirse.

    Ya deberías poder ver la página Crear réplica de conmutación por error.

  4. Revisa la configuración actual de la réplica y actualiza las configuraciones según sea necesario.

    Por ejemplo, puedes cambiar el nombre de la réplica, agregar una red autorizada o cambiar la zona de la réplica. Puedes cambiar el tipo de máquina (nivel), pero debe ser al menos tan grande como la instancia maestra. Los indicadores de MySQL deben ser idénticos en el maestro y en la réplica.

  5. Haz clic en Crear para crear la réplica.

    Volverás a la página de la instancia para el maestro mientras se inicializa la réplica.

gcloud

  1. Comprueba el estado de la instancia maestra:
    gcloud sql instances describe [MASTER_INSTANCE_NAME]
    

    Si la propiedad databaseReplicationEnabled es true, la instancia es una réplica; no se puede crear una réplica de conmutación por error para una réplica.

  2. Si la propiedad enabled en backupConfiguration es false, habilita copias de seguridad para la instancia maestra ahora:
    gcloud sql instances patch [MASTER_INSTANCE_NAME] --backup-start-time [HH:MM]
    

    El parámetro backup-start-time se especifica en 24 horas, en la zona horaria UTC ± 00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden iniciarse en cualquier momento del periodo de copia de seguridad.

  3. Si la propiedad binaryLogEnabled es false, habilita los registros binarios:
    gcloud sql instances patch --enable-bin-log [MASTER_INSTANCE_NAME]
    

    Al habilitar los registros binarios, se reinicia la instancia.

  4. Crea la réplica:
    gcloud sql instances create [FAILOVER_REPLICA_NAME] \
                                --master-instance-name=[MASTER_INSTANCE_NAME] \
                                --replica-type=FAILOVER
    

cURL

  1. Comprueba el estado de la instancia maestra:
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]?fields=settings
    

    El resultado contendrá la backupConfiguration, por ejemplo:

    "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "binaryLogEnabled": true
    }
    
  2. Si enabled o binaryLogEnabled son false, usa el método patch del recurso de las instancias para habilitarlos. Especifica las propiedades de la configuración de la copia de seguridad que quieras conservar tal cual y las que quieras cambiar.

    Para habilitar las copias de seguridad, establece enabled en true y startTime en un valor que sea el inicio de la ventana de copia de seguridad. Para habilitar el registro binario, establece binaryLogEnabled en true.

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"settings" :
                 {"backupConfiguration" :
                 {"startTime": "[HH:MM]", "enabled": true, "binaryLogEnabled": true}}}' \
         -X PATCH \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  3. Usa el método de insert del recurso de instancias para crear la réplica de lectura.

    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"name": "[REPLICA_NAME]", "masterInstanceName": "[MASTER_INSTANCE_NAME]",
                  "region": "[MASTER_REGION]", "databaseVersion": "[MASTER_DATABASE_VERSION]",
                  "replicaConfiguration": {"failoverTarget": true},
                  "settings": {"tier":"[MACHINE_TYPE]"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances
    

    MACHINE_TYPE debe ser un tipo de máquina válido para instancias de segunda generación y al menos tan grande como el tipo de máquina de la instancia maestra.

Inicializar la conmutación por error

La prueba de conmutación por error es opcional, pero se recomienda realizarla para poder ver cómo responde la aplicación en el caso de una conmutación por error.

Consola

  1. Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

  2. Haz clic en el nombre de la instancia maestra para abrir la página Detalles de instancia.
  3. Haz clic en Conmutación por error en la barra de botones.

gcloud

Inicializa la conmutación por error:

gcloud sql instances failover [MASTER_INSTANCE_NAME]

cURL

  1. Describe la instancia maestra para obtener el valor del campo `settingsVersion`.
    ACCESS_TOKEN="$(gcloud auth application-default print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]
    
  2. Inicializa la conmutación por error:
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"failoverContext":{"settingsVersion":"[SETTINGS_VERSION]"}}' \
              -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/[PROJECT-ID]/instances/[MASTER_INSTANCE_NAME]/failover
              

La instancia falla y no está disponible para servir datos durante unos minutos.

Crear una alerta para retraso de replicación

El tiempo necesario para una operación de conmutación por error depende de la cantidad de retraso de replicación cuando se inicia la conmutación por error. Puedes utilizar Stackdriver Monitoring en la consola de Google Cloud Platform para que te avise cuando el retraso de replicación supere un límite.

Para obtener más información sobre el retraso de replicación, busca "seconds_behind_master" en la página SHOW SLAVE STATUS Syntax en la documentación de MySQL.

Para obtener más información sobre Stackdriver Monitoring, consulta la documentación de Stackdriver Monitoring.

Establecer una alerta para una réplica de conmutación por error específica

  1. Haz clic en el logotipo de Stackdriver en la esquina superior izquierda para volver a la página principal de Stackdriver Monitoring.
  2. Haz clic en Crear política de alertas.
  3. Introduce un nombre descriptivo para la alerta.
  4. Selecciona Umbral métrico y haz clic en Siguiente para abrir la pestaña Destino.
  5. En Tipo de recurso, selecciona Cloud SQL.
  6. En Se aplica a, selecciona Individual y luego tu réplica de conmutación por error.
  7. Haz clic en Siguiente para abrir la pestaña Configuración.
  8. Introduce los siguientes valores:

    Campo Valor
    Si métrico Segundos detrás del maestro
    Condición Por encima de los
    Umbrales 120 (o el valor que sea apropiado para tu entorno)
    Por 3 minutos

  9. Selecciona los métodos de Notificación que quieras y haz clic en Guardar condición.

Configurar una alerta para un grupo de réplicas de conmutación por error

Si tienes previsto crear varias réplicas de conmutación por error en el mismo proyecto, podría ser más fácil establecer la alerta para todo el grupo, en lugar de hacerlo en cada réplica de conmutación por error de forma individual. Para crear un grupo para la supervisión, usa un sufijo para los nombres de las réplicas de conmutación por error, como "-failover". Asegúrate de no utilizar este sufijo para ningún otro tipo de instancias de Cloud SQL.

Crea tu grupo de réplica de conmutación por error:

  • Ve a la página de instancias de Cloud SQL de la consola de Google Cloud Platform.

    Ir a la página de instancias de Cloud SQL

    1. En el menú de la izquierda, selecciona Supervisión para abrir la página de Stackdriver Monitoring e inicia sesión.
    2. En la barra de menú superior, selecciona Grupos > Crear...
    3. Introduce un nombre descriptivo para tu grupo.
    4. Deja seleccionados Nombre y Contiene e introduce la subcadena de nombre.
    5. Haz clic en Guardar grupo.

      Se abrirá la página de resumen para el nuevo grupo.

    6. Confirma que las instancias esperadas estén incluidas en el grupo.

    Crea la alerta para el grupo de réplicas de conmutación por error:

    1. Haz clic en el logotipo de Stackdriver en la esquina superior izquierda para volver a la página principal de Stackdriver Monitoring.
    2. Haz clic en Crear política de alertas.
    3. introduce un nombre descriptivo para tu alerta grupal.
    4. Selecciona Umbral métrico y haz clic en Siguiente para abrir la pestaña Destino.
    5. En Tipo de recurso, selecciona Cloud SQL.
    6. En Se aplica a, selecciona Grupo, y luego, tu grupo de conmutación por error.
    7. Deja seleccionada Cualquier miembro infringe y haz clic en Siguiente para abrir la pestaña Configuración.
    8. Introduce los siguientes valores:

      Campo Valor
      Si métrico Segundos detrás del maestro
      Condición Por encima de los
      Umbrales 120 (o el valor que sea apropiado para tu entorno)
      Por 3 minutos

    9. Selecciona los métodos de Notificación que quieras y haz clic en Guardar condición.

    Siguientes pasos

    ¿Te sirvió esta página? Envíanos tu opinión:

    Enviar comentarios sobre…

    Cloud SQL para MySQL