En esta página, se describe cómo configurar una instancia para alta disponibilidad.
Puedes configurar una instancia para alta disponibilidad cuando la creas, o bien habilitar la alta disponibilidad en una instancia existente.
Para obtener más información sobre la alta disponibilidad, consulta la página Descripción general de la configuración de alta disponibilidad.
Crea una instancia nueva para alta disponibilidad
Cuando creas una instancia y la configuras para alta disponibilidad, Cloud SQL la crea como una instancia regional.
Para crear una instancia que tenga alta disponibilidad configurada, realiza los siguientes pasos:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Selecciona Crear instancia.
- Selecciona el motor de base de datos.
- En la sección Elegir la región y la disponibilidad zonal, selecciona Varias zonas (con alta disponibilidad).
- Expande Especificar zonas.
- Selecciona las zonas principal y secundaria. Se aplican las siguientes condiciones
cuando se usa la zona secundaria durante la creación o la edición de la instancia:
- Las zonas están predeterminadas como
Any
para la zona principal yAny (different from primary)
para la zona secundaria.
Si se especifican las zonas principal y secundaria, deben ser zonas diferentes.
- Las zonas están predeterminadas como
- Haz clic en Guardar.
Volverás a la página de la instancia principal mientras la instancia se actualiza.
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 raíz:
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 tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara 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 dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
REST v1
Si quieres obtener la lista completa de los parámetros de esta solicitud, visita la página instances:insert.Crea la instancia regional.
-
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- instance-name: es el nombre de la instancia.
- database-version: es la string de enumeración de la versión de la base de datos.
- region: La región de GCP
- machine-type: es 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
- Una vez que la instancia termina de inicializarse, actualiza la contraseña raíz en la instancia:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: El ID de la instancia
- password: es la contraseña de usuario raíz nueva.
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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
REST v1beta4
Si quieres obtener la lista completa de los parámetros de esta solicitud, visita la página instances:insert.Crea la instancia regional.
-
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- instance-name: es el nombre de la instancia.
- database-version: es la string de enumeración de la versión de la base de datos.
- region: La región de GCP
- machine-type: es 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
- Una vez que la instancia termina de inicializarse, actualiza la contraseña raíz en la instancia:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: El ID de la instancia
- password: es la contraseña de usuario raíz nueva.
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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Para obtener más información sobre cómo crear una instancia, consulta Crea instancias.
Configura una instancia existente de alta disponibilidad
Para configurar una instancia de Cloud SQL para una alta disponibilidad, puedes usar la consola de Google Cloud, gcloud CLI o la API.
Console
Para configurar una instancia con alta disponibilidad, sigue estos pasos:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección de opciones de configuración Copias de seguridad automáticas y alta disponibilidad, selecciona Alta disponibilidad (regional). También se recomienda habilitar Automatizar copias de seguridad.
- Haz clic en Guardar.
gcloud
Si quieres configurar una instancia para que sea regional y de alta disponibilidad, usa el comando gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type REGIONAL
Reemplaza INSTANCE_NAME por el nombre de la instancia de Cloud SQL que configuras para obtener alta disponibilidad.
REST v1
Para configurar una instancia para que sea regional y con alta disponibilidad, sigue estos pasos:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
HTTP method and 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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
REST v1beta4
Para configurar una instancia para que sea regional y con alta disponibilidad, sigue estos pasos:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
HTTP method and 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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
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.
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Conmutación por error.
- En el cuadro de diálogo Activar una conmutación por error de forma manual, ingresa el ID de tu instancia en el campo de texto y, luego, haz clic en Activar conmutación por error.
gcloud
Inicia 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- Inicia la conmutación por error:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- instance-name: El nombre de la instancia
- settings-version: es el valor 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
- Describe la instancia principal para obtener el valor del campo
settingsVersion
.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia que configuras para obtener alta disponibilidad
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
- Inicia la conmutación por error:
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- instance-name: El nombre de la instancia
- settings-version: es el valor 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, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
La instancia se conmuta por error y deja de estar disponible para entregar datos durante algunos minutos.
Verifica 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 ejecuta, sigue estos pasos:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Confirma que los siguientes parámetros de configuración de alta disponibilidad se muestran en la sección Configuración:
- Con alta disponibilidad (regional)
- Ubicada en muestra la zona principal actual de la instancia.
gcloud
gcloud sql instances describe INSTANCE_NAME
El resultado indica que availabilityType
es REGIONAL
.
En los campos gceZone
y secondaryGceZone
, se muestran las zonas principal y secundaria actuales de la instancia.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
El resultado indica que availabilityType
es REGIONAL
.
En los campos gceZone
y secondaryGceZone
, se muestran las zonas principal y secundaria actuales de la instancia.
REST v1beta4
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: el ID del proyecto
- instance-id: Es el ID de la instancia.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2017_STANDARD", }
El resultado indica que availabilityType
es REGIONAL
.
En los campos gceZone
y secondaryGceZone
, se muestran las zonas principal y secundaria actuales de la instancia.
Cambia las zonas de una instancia de alta disponibilidad
Cambiar una o ambas zonas de una instancia de alta disponibilidad existente causa unos minutos de tiempo de inactividad mientras la instancia se reconfigura. Para ver las zonas principal y secundaria actuales en las que se ejecuta la instancia de alta disponibilidad, consulta Verifica la configuración de alta disponibilidad de una instancia.
Para cambiar las zonas de una instancia de alta disponibilidad, haz lo siguiente:
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Editar.
- En la sección Elige la región y la disponibilidad zonal, expande Especificar zonas y selecciona zonas nuevas. Las zonas están predeterminadas como
Any
para la zona principal yAny (different from primary)
para la zona secundaria. Se aplican las restricciones siguientes:- Solo puedes especificar la zona principal o las zonas principal y secundaria.
- Si se especifican las zonas principal y secundaria, deben ser zonas diferentes.
- Haz clic en Guardar.
Volverás a la página de la instancia principal mientras la instancia se actualiza.
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 omites, Cloud SQL seleccionará una zona disponible que sea diferente de la zona principal.
Se aplican las siguientes restricciones:
- Las zonas deben ser zonas válidas que pertenezcan 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto
- INSTANCE_NAME: El 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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
El parámetro
secondaryZone
es opcional. Si lo omites, Cloud SQL seleccionará una zona disponible que sea diferente de la zona principal.Se aplican las siguientes restricciones:
- Las zonas deben ser válidas.
- Todas 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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto
- INSTANCE_NAME: El 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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
El parámetro
secondaryZone
es opcional. Si lo omites, Cloud SQL seleccionará una zona disponible que sea diferente de la zona principal.Se aplican las siguientes restricciones:
- Las zonas deben ser válidas.
- Todas las zonas que elijas deben pertenecer a la misma región que la instancia de Cloud SQL.
Desactiva la alta disponibilidad para una instancia
Puedes inhabilitar la alta disponibilidad para una instancia de Cloud SQL con la consola de Google Cloud, gcloud CLI o la API.
Console
Para desactivar la alta disponibilidad de una instancia, sigue estos pasos:
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general 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 Zona única.
- Haz clic en Guardar. Esta edición requiere que reinicies 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
Reemplaza INSTANCE_NAME por el nombre de la instancia de Cloud SQL para la que deseas desactivar la alta disponibilidad.
REST v1
Para cambiar el tipo de disponibilidad de la instancia a ZONAL
, usa el método instances:patch
. Con este método, se desactiva la alta disponibilidad para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia para la que deseas desactivar la alta disponibilidad
HTTP method and 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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (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
. Con este método, se desactiva la alta disponibilidad para la instancia.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia
- INSTANCE_NAME: el nombre de la instancia para la que deseas desactivar la alta disponibilidad
HTTP method and 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, expande una de estas opciones:
Deberías recibir un código de estado exitoso (2xx) y una respuesta vacía.
Solucionar problemas
Problema | Soluciona problemas |
---|---|
No puedes encontrar las métricas de una conmutación por error manual. | Solo las conmutaciones por error automáticas se incluyen en las métricas. |
Los recursos de la instancia de Cloud SQL (CPU y RAM) tienen un uso de alrededor del 100%, lo que hace que se interrumpa el funcionamiento de la instancia con alta disponibilidad. | El tamaño de la máquina de la instancia es demasiado pequeño para la carga.
Edita la instancia para actualizarla a un tamaño de máquina más grande y obtener más CPU y memoria. |
¿Qué sigue?
- Obtén más información sobre cómo funciona la configuración para 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 Google Cloud Observability.