En esta página, se describe la configuración heredada de una instancia de MySQL para alta disponibilidad.
En una configuración de HA heredada, una instancia de Cloud SQL para MySQL usa una réplica de conmutación por error para agregar alta disponibilidad a la instancia. Esta función no está disponible en la consola de Google Cloud. La nueva configuración no usa réplicas de conmutación por error. En su lugar, usa los discos persistentes regionales de Google, que replican los datos a nivel de bloque de forma síncrona entre dos zonas de una región.
Si deseas obtener más información sobre la configuración actual de alta disponibilidad, consulta Descripción general de la configuración de alta disponibilidad.
Actualiza una instancia de heredada a alta disponibilidad actual
Para actualizar tu instancia de la configuración de alta disponibilidad heredada a la nueva, haz lo siguiente:
- Borra la réplica de conmutación por error en las instancias de MySQL que quieres actualizar. Consulta Inhabilita la alta disponibilidad en una instancia
- Configura la instancia para usar la versión actual de alta disponibilidad. Consulta la sección sobre cómo configurar una instancia existente para que tenga alta disponibilidad.
Configuración heredada: Crea una nueva instancia configurada para alta disponibilidad
Cuando creas una instancia, puedes configurarla para alta disponibilidad; Cloud SQL crea la réplica de conmutación por error al mismo tiempo que crea la instancia principal. La función heredada no está disponible en la consola de Google Cloud. En su lugar, usa los comandos gcloud CLI o cURL.
Para crear una instancia que tenga alta disponibilidad configurada, realiza los siguientes pasos:
gcloud
- Crea la instancia principal y su réplica de conmutación por error:
gcloud sql instances create PRIMARY_INSTANCE_NAME \ --backup-start-time=BACKUP_WINDOW_START_TIME \ --failover-replica-name=FAILOVER_REPLICA_NAME \ --cpu=CPU \ --database-version=DATABASE_VERSION \ --memory=MEMORY \ --enable-bin-log
La hora de inicio de la ventana de la copia de seguridad tiene el formato
HH:MM
.Asegúrate de reemplazar el marcador de posición DATABASE_VERSION por MySQL 5.6 o MySQL 5.7 (
--database-version=MYSQL_5_6
o
--database-version=MYSQL_5_7
).Si no especificas una versión para el parámetro
database-version
, se seleccionará MySQL 8.0 de forma predeterminada. La configuración heredada para la alta disponibilidad de MySQL no admite la versión 8.0.Para obtener una lista completa de los parámetros disponibles, visita la página de referencias gcloud sql instances create.
- Configura el usuario raíz en la instancia principal:
gcloud sql users set-password root --host=% \ --instance PRIMARY_INSTANCE_NAME \ --password PASSWORD
La réplica de conmutación por error se crea con la misma CPU y MEMORIA que la instancia principal. Puedes cambiar la CPU y la MEMORIA de la réplica de conmutación por error más tarde, pero debe ser al menos tan grande como la instancia principal.
curl
- Crea la instancia principal y su réplica de conmutación por error:
Si quieres obtener la lista completa de los parámetros de esta solicitud, visita la página instances:insert.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name":"PRIMARY_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
- Una vez que la instancia principal termina de inicializarse, actualiza la contraseña raíz en la instancia principal:
Este cambio se propaga automáticamente a la réplica.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" 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'
Configuración heredada: Configura una instancia existente para alta disponibilidad
Configurar una instancia existente de alta disponibilidad ocasiona algunos minutos de tiempo de inactividad mientras la instancia se configura de nuevo.
Si deseas configurar una instancia existente para alta disponibilidad, sigue estos pasos:
gcloud
- Verifica el estado de la instancia principal:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Si la propiedad
databaseReplicationEnabled
estrue
, la instancia es una réplica; no puedes crear una réplica de conmutación por error para una réplica. - Si la propiedad
enabled
enbackupConfiguration
esfalse
, habilita las copias de seguridad para la instancia principal:gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time HH:MM
El parámetro
backup-start-time
se establece en el formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de un período de copia de seguridad de 4 horas. Las copias de seguridad pueden iniciarse en cualquier momento durante el período de copia de seguridad. - Si la propiedad
binaryLogEnabled
esfalse
, habilita los registros binarios:gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
La instancia se reinicia cuando se habilitan los registros binarios.
- Crea la réplica:
gcloud sql instances create FAILOVER_REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --replica-type=FAILOVER
curl
- Verifica el estado de la instancia principal:
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ -X GET \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME?fields=settings
El resultado contendrá la
backupConfiguration
, por ejemplo:"backupConfiguration": { "kind": "sql#backupConfiguration", "startTime": "12:00", "enabled": true, "binaryLogEnabled": true }
- Si
enabled
obinaryLogEnabled
sonfalse
, usa el métodopatch
del recurso de las instancias para habilitarlos a ambos. Especifica las propiedades de la configuración de la copia de seguridad que quieres mantener y las que quieres cambiar.Para habilitar las copias de seguridad, configura
enabled
entrue
ystartTime
en un valor que sea el inicio del período de copia de seguridad. Para habilitar el registro binario, establecebinaryLogEnabled
entrue
.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" 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/PRIMARY_INSTANCE_NAME/
-
Usa el método
insert
del recurso de las instancias para crear la réplica de conmutación por error.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name": "REPLICA_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME", "region": "PRIMARY_IMSTANCE_REGION", "databaseVersion": "PRIMARY_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 al menos tan grande como el tipo de máquina de la instancia principal.
Inicia la conmutación por error
Realizar pruebas sobre la conmutación por error es opcional, pero se recomienda para probar cómo responde tu aplicación en caso de que ocurra una conmutación por error.
Para obtener más información sobre las conmutaciones por error, consulta la Descripción general de conmutaciones por error.
gcloud
Inicia la conmutación por error:
gcloud sql instances failover PRIMARY_INSTANCE_NAME
curl
- Describe la instancia principal para obtener el valor del campo
settingsVersion
.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ -X GET \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME
- Inicia la conmutación por error:
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" 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/PRIMARY_INSTANCE_NAME/failover
La instancia se conmuta por error y no estará disponible para entregar datos durante algunos minutos.
Configuración heredada: Crea una alerta para el retraso de replicación
El tiempo necesario para realizar una operación de conmutación por error depende del retraso de replicación cuando se inicia la operación. Puedes usar Cloud Monitoring en la consola de Google Cloud para que te avise cuando el retraso de replicación supera un umbral.
Para obtener más información sobre el retraso de replicación, busca “seconds_behind_master” en la página sobre la sintaxis SHOW SLAVE STATUS en la documentación de MySQL.
Consulta la documentación de Cloud Monitoring para obtener más información.
Configuración heredada: Configura una alerta para una réplica de conmutación por error específica
- En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego, Alertas.
- Haz clic en Crear una política de alertas.
- Ingresa un nombre descriptivo para tu alerta.
- Selecciona Límite de métrica y haz clic en Siguiente para abrir la pestaña Objetivo.
- En Tipo de recursos, selecciona Cloud SQL.
- En Aplicar a, selecciona Único y, luego, selecciona la réplica de conmutación por error.
- Haz clic en Siguiente para abrir la pestaña Configuración.
Ingresa los siguientes valores:
Campo Valor Métrica Segundos de retraso en relación con la principal Condición arriba Límites 120 (o cualquier valor que sea apropiado para tu entorno) Para 3 minutos Selecciona los métodos de Notificación y haz clic en Guardar condición.
Configuración heredada: Configura una alerta para un grupo de réplicas de conmutación por error
Si deseas crear varias réplicas de conmutación por error en el mismo proyecto, podría ser más fácil configurar la alerta para todo el grupo, en lugar de hacerlo en cada réplica de conmutación por error de forma individual. A fin de crear un grupo de supervisión, utiliza un sufijo para los nombres de las réplicas de conmutación por error, como "-failover". Asegúrate de no usar este sufijo para ningún otro tipo de instancias de Cloud SQL.
Crea un grupo de réplica de conmutación por error:
-
En la consola de Google Cloud, ve a la página Supervisión.
- En la barra de menú superior, selecciona Grupos > Crear….
- Ingresa un nombre descriptivo para tu grupo.
- Selecciona Nombre y Contiene y, luego, ingresa el nombre de la subcadena.
- Haz clic en Guardar grupo. Se abre la página de resumen para el grupo nuevo.
- Confirma que se incluyan las instancias esperadas en el grupo.
Crea la alerta para el grupo de réplica de conmutación por error:
- En el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego, Alertas.
- Haz clic en Crear una política de alertas.
- Ingresa un nombre descriptivo para tu alerta de grupo.
- Selecciona Límite de métrica y haz clic en Siguiente para abrir la pestaña Objetivo.
- En Tipo de recursos, selecciona Cloud SQL.
- En Aplicar a, selecciona Grupo y, luego, selecciona el grupo de conmutación por error.
- Selecciona Cualquier miembro que infrinja y haz clic en Siguiente para abrir la pestaña Configuración.
Ingresa los siguientes valores:
Campo Valor Métrica Segundos de retraso en relación con la principal Condición arriba Límites 120 (o cualquier valor que sea apropiado para tu entorno) Para 3 minutos Selecciona los métodos de Notificación deseados y haz clic en Guardar condición.
Configuración heredada: Inhabilita la alta disponibilidad en una instancia
Debes borrar la instancia de réplica de conmutación por error para quitar la alta disponibilidad de la instancia principal.
Antes de realizar este procedimiento, asegúrate de que, en el momento, no haya operaciones en ejecución en la instancia principal.
Para inhabilitar la alta disponibilidad, sigue estos pasos:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Selecciona la instancia de conmutación por error asociada a la instancia en la que deseas inhabilitar la alta disponibilidad.
- En la página Detalles de la instancia, haz clic en Borrar.
- En la ventana Borrar réplica, vuelve a escribir el nombre de la instancia de conmutación por error.
- Haz clic en Borrar. La configuración para la instancia original cambia a zonal.
gcloud
Para obtener información de referencia, consultagcloud sql instances delete
.
gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
La siguiente solicitud usa el métodoinstances:delete
para borrar la instancia.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json'\ -X DELETE\ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME
¿Qué sigue?
- Obtén más información sobre cómo funciona la configuración de alta disponibilidad.
- Verifica cómo responde tu aplicación cuando se pierde una conexión mediante el reinicio de instancia.
- Obtén más información sobre cómo administrar las conexiones de tu base de datos.
- Obtén más información sobre Cloud Monitoring.
- Crea réplicas de lectura para tu instancia.