En esta página se describe cómo configurar una instancia para que tenga alta disponibilidad.
Puedes configurar una instancia para alta disponibilidad cuando creas la instancia o puedes habilitar la alta disponibilidad en una instancia existente.
Para obtener más información sobre la alta disponibilidad, consulta el artículo Información general sobre la configuración de alta disponibilidad.
Crear una instancia configurada para alta disponibilidad
Cuando creas una instancia y la configuras para que tenga alta disponibilidad, Cloud SQL la crea como una instancia regional.
Para crear una instancia configurada para alta disponibilidad:
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Selecciona Crear instancia.
- Seleccione el motor de la base de datos.
- En la sección Choose region and zonal availability (Elegir región y disponibilidad zonal), selecciona Multiple zones (Highly available) (Varias zonas [alta disponibilidad]).
- Despliega Especificar zonas.
- Selecciona las zonas principal y secundaria. Se aplican las siguientes condiciones cuando se usa la zona secundaria durante la creación o edición de instancias:
- Las zonas tienen los valores predeterminados
Any
para la zona principal yAny (different from primary)
para la secundaria.
Si se especifican las zonas principal y secundaria, deben ser zonas diferentes.
- Las zonas tienen los valores predeterminados
- Haz clic en Guardar.
Se te redirigirá a la página de la instancia principal mientras se actualiza la instancia.
gcloud
- Crea la instancia regional:
gcloud sql instances create REGIONAL_INSTANCE_NAME \ --availability-type=REGIONAL \ --database-version=SQLSERVER_2017_STANDARD \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE
- Configura el usuario root:
gcloud sql users set-password root no-host \ --instance=REGIONAL_INSTANCE_NAME \ --password=PASSWORD
Terraform
Para crear una instancia con alta disponibilidad, usa un recurso de Terraform.
Aplica los cambios
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Eliminar los cambios
Para eliminar los cambios, sigue estos pasos:
- Para inhabilitar la protección contra la eliminación, en el archivo de configuración de Terraform, asigna el valor
false
al argumentodeletion_protection
.deletion_protection = "false"
- Aplica la configuración de Terraform actualizada ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
-
Para quitar los recursos que se hayan aplicado anteriormente con tu configuración de Terraform, ejecuta el siguiente comando e introduce
yes
en la petición:terraform destroy
REST v1
Para ver la lista completa de parámetros de la solicitud, consulta la página instances:insert.Crea la instancia regional.
-
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-name: nombre de la instancia.
- database-version: cadena enum de la versión de la base de datos.
- region La región de GCP
- machine-type El tipo de máquina
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Cuerpo JSON de la solicitud:
{ "name": "instance-name", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "backupConfiguration": { "enabled": true }, "availabilityType": "REGIONAL" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
- Cuando la instancia termine de inicializarse, actualiza la contraseña raíz en la instancia:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- password: la nueva contraseña del usuario raíz
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Cuerpo JSON de la solicitud:
{ "name": "sqlserver", "host": "nohost", "password": "password"}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
REST v1beta4
Para ver la lista completa de parámetros de la solicitud, consulta la página instances:insert.Crea la instancia regional.
-
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-name: nombre de la instancia.
- database-version: cadena enum de la versión de la base de datos.
- region La región de GCP
- machine-type El tipo de máquina
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Cuerpo JSON de la solicitud:
{ "name": "instance-name", "region": "region", "databaseVersion": "database-version", "settings": { "tier": "machine-type", "backupConfiguration": { "enabled": true }, "availabilityType": "REGIONAL" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
- Cuando la instancia termine de inicializarse, actualiza la contraseña raíz en la instancia:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
- password: la nueva contraseña del usuario raíz
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Cuerpo JSON de la solicitud:
{ "name": "sqlserver", "host": "nohost", "password": "password"}
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Para obtener más información sobre cómo crear una instancia, consulta Crear instancias.
Configurar una instancia para alta disponibilidad
Puedes configurar una instancia de Cloud SQL para que tenga alta disponibilidad mediante la Google Cloud consola, la CLI de gcloud o la API.
Consola
Para configurar una instancia para alta disponibilidad, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección Copias de seguridad automáticas y alta disponibilidad, selecciona Alta disponibilidad (regional). También te recomendamos que habilites la opción Automatizar copias de seguridad.
- Haz clic en Guardar.
gcloud
Para configurar una instancia como instancia regional de alta disponibilidad, usa el comando gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type REGIONAL
Sustituye INSTANCE_NAME por el nombre de la instancia de Cloud SQL que estés configurando para la alta disponibilidad.
REST v1
Para configurar una instancia como instancia regional de alta disponibilidad, sigue estos pasos:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": {"availabilityType": "REGIONAL" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
REST v1beta4
Para configurar una instancia como instancia regional de alta disponibilidad, sigue estos pasos:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": {"availabilityType": "REGIONAL" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Iniciar 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.
Para obtener más información sobre las conmutaciones por error, consulta la información general sobre la conmutación por error.
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Conmutación por error.
- En el cuadro de diálogo Activar manualmente una conmutación por error, introduce el ID de tu instancia en el campo de texto y, a continuación, haz clic en Activar conmutación por error.
gcloud
Inicializa la conmutación por error:
gcloud sql instances failover PRIMARY_INSTANCE_NAME
REST v1
- Describe la instancia principal para obtener el valor del campo
settingsVersion
.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- Inicializa la conmutación por error:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-name: nombre de la instancia.
- settings-version: settingsVersion de instanceInfo
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-name/failover
Cuerpo JSON de la solicitud:
{ "failoverContext": { "settingsVersion":"settings-version" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
REST v1beta4
- Describe la instancia principal para obtener el valor del campo
settingsVersion
.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que estás configurando para la alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- Inicializa la conmutación por error:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-name: nombre de la instancia.
- settings-version: settingsVersion de instanceInfo
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name/failover
Cuerpo JSON de la solicitud:
{ "failoverContext": { "settingsVersion":"settings-version" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
La instancia activa la conmutación por error y no está disponible para servir datos durante unos minutos.
Verificar la configuración de alta disponibilidad de una instancia
Para verificar que una instancia tiene alta disponibilidad y ver las zonas en las que se está ejecutando, sigue estos pasos:
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Confirma que los siguientes ajustes de alta disponibilidad se muestran en la sección Configuración:
- Alta disponibilidad (regional)
- Ubicación muestra la zona principal actual de la instancia.
gcloud
gcloud sql instances describe INSTANCE_NAME
El resultado indica que availabilityType
es REGIONAL
.
Los campos gceZone
y secondaryGceZone
muestran las zonas principal y secundaria actuales de la instancia.
REST v1
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
El resultado indica que availabilityType
es REGIONAL
.
Los campos gceZone
y secondaryGceZone
muestran las zonas principal y secundaria actuales de la instancia.
REST v1beta4
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- project-id: el ID del proyecto
- instance-id: el ID de instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2017_STANDARD", }
El resultado indica que availabilityType
es REGIONAL
.
Los campos gceZone
y secondaryGceZone
muestran las zonas principal y secundaria actuales de la instancia.
Cambiar las zonas de una instancia de alta disponibilidad
Si cambias una o ambas zonas de una instancia de alta disponibilidad, se producirá un periodo de inactividad de unos minutos mientras se vuelve a configurar la instancia. Para ver las zonas principales y secundarias en las que se ejecuta la instancia de alta disponibilidad, consulta Verificar la configuración de alta disponibilidad de una instancia.
Para cambiar las zonas de una instancia de alta disponibilidad, sigue estos pasos:
Consola
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección Choose region and zonal availability (Elegir región y disponibilidad zonal), despliega Specify zones (Especificar zonas) y selecciona las nuevas zonas. Las zonas tienen los valores predeterminados
Any
para la zona principal yAny (different from primary)
para la secundaria. Se aplican las siguientes restricciones:- Puedes especificar solo la zona principal o tanto la principal como la secundaria.
- Si se especifican las zonas principal y secundaria, deben ser zonas diferentes.
- Haz clic en Guardar.
Se te redirigirá a la página de la instancia principal mientras se actualiza la instancia.
gcloud
Cambia la zona en la que se ejecuta la instancia:
gcloud sql instances patch INSTANCE_NAME \ --zone=PRIMARY_ZONE --secondary-zone=SECONDARY_ZONE
El parámetro --secondary-zone
es opcional. Si lo omite, Cloud SQL seleccionará una zona disponible que sea diferente de la zona principal.
Se aplican las siguientes limitaciones:
- Las zonas deben ser válidas y pertenecer a la misma región que la instancia de Cloud SQL.
- Si se especifica la zona secundaria, debe ser diferente de la zona principal.
REST v1
Cambia las zonas de la instancia regional:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto
- INSTANCE_NAME: nombre de la instancia.
- PRIMARY_ZONE: la zona principal
- SECONDARY_ZONE: la zona secundaria.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
El parámetro
secondaryZone
es opcional. Si lo omite, Cloud SQL seleccionará una zona disponible que sea diferente de la zona principal.Se aplican las siguientes limitaciones:
- Las zonas deben ser válidas.
- Las zonas que elijas deben pertenecer a la misma región que la instancia de Cloud SQL.
REST v1beta4
Cambia las zonas de la instancia regional:
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID del proyecto
- INSTANCE_NAME: nombre de la instancia.
- PRIMARY_ZONE: la zona principal
- SECONDARY_ZONE: la zona secundaria.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
El parámetro
secondaryZone
es opcional. Si lo omite, Cloud SQL seleccionará una zona disponible que sea diferente de la zona principal.Se aplican las siguientes limitaciones:
- Las zonas deben ser válidas.
- Las zonas que elijas deben pertenecer a la misma región que la instancia de Cloud SQL.
Desactivar la alta disponibilidad de una instancia
Puedes desactivar la alta disponibilidad de una instancia de Cloud SQL mediante la Google Cloud consola, la CLI de gcloud o la API.
Si desactivas la alta disponibilidad de una instancia, en caso de que se produzca una interrupción zonal, tendrás que recuperar la instancia manualmente. Para obtener más información, consulta Opciones de recuperación de instancias independientes.
Consola
Para desactivar la alta disponibilidad de una instancia, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- Abre Copias de seguridad automáticas.
- En la sección Disponibilidad, haz clic en Una sola zona.
- Haz clic en Guardar. Para aplicar este cambio, debes reiniciar la instancia.
- Cuando aparezca el cuadro de diálogo, haz clic en Guardar y reiniciar.
gcloud
Para desactivar la alta disponibilidad de una instancia, usa el comando gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type ZONAL
Sustituye INSTANCE_NAME por el nombre de la instancia de Cloud SQL en la que vas a desactivar la alta disponibilidad.
REST v1
Para cambiar el tipo de disponibilidad de la instancia a ZONAL
, usa el método instances:patch
. Este método desactiva la alta disponibilidad de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia para la que vas a desactivar la alta disponibilidad.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": {"availabilityType": "ZONAL" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
REST v1beta4
Para cambiar el tipo de disponibilidad de la instancia a ZONAL
, usa el método instances:patch
. Este método desactiva la alta disponibilidad de la instancia.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
- PROJECT_ID: el ID o el número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia para la que vas a desactivar la alta disponibilidad.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": {"availabilityType": "ZONAL" } }
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir un código de estado que indique que la operación se ha realizado correctamente (2xx) y una respuesta vacía.
Solucionar problemas
Problema | Solución de problemas |
---|---|
No encuentras las métricas de una conmutación por error manual. | Solo se incluyen en las métricas las conmutaciones por error automáticas. |
Los recursos de la instancia de Cloud SQL (CPU y RAM) están cerca del 100% de uso, lo que provoca que la instancia de alta disponibilidad deje de funcionar. | El tamaño de la máquina de la instancia es demasiado pequeño para la carga.
Edita la instancia para cambiar a un tamaño de máquina mayor y obtener más CPUs y memoria. |
Siguientes pasos
- Obtén más información sobre cómo funciona la configuración de alta disponibilidad.
- Prueba cómo responde tu aplicación a las conexiones perdidas reiniciando la instancia.
- Obtén más información sobre cómo administrar las conexiones de tu base de datos.
- Consulta más información sobre Google Cloud Observability.