En esta página, se describe cómo crear una réplica de lectura de una instancia de Cloud SQL.
Una réplica de lectura es una copia de la instancia principal que refleja los cambios de esta última casi en tiempo real, en circunstancias normales. Puedes usar una réplica de lectura para derivar las solicitudes de lectura o el tráfico de estadísticas de la instancia principal.
Además, para la recuperación ante desastres, puedes realizar una migración regional. Si una réplica es una réplica entre regiones, puedes realizar una conmutación por error a otra región. En particular, puedes ascender una réplica a una instancia independiente (en cuyo caso, las réplicas existentes no considerarán a esa instancia como principal).
Para obtener más información sobre cómo funciona la replicación, consulta Replicación en Cloud SQL.
Antes de comenzar
Si la réplica que crearás será la primera de esta instancia, asegúrate de que la instancia cumpla los requisitos de las instancias principales. Obtén más información.
Crea una réplica de lectura
Los pasos para crear una réplica de lectura son los que se describen a continuación.
, no puedes crear réplicas de lectura para la instancia.Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca la instancia para la que deseas crear una réplica y, luego, abre el menú
more actions
junto a la lista. - Selecciona Crear réplica de lectura.
Si no ves esa opción, eso significa que la instancia es una réplica y no puedes crear una réplica de una réplica.
- Si la instancia tiene habilitadas las copias de seguridad y los registros binarios, continúa con el paso siguiente. De lo contrario, selecciona Copias de seguridad automáticas y Habilita el registro binario; luego, haz clic en Continuar y en Guardar y reiniciar para reiniciar la instancia.
Cuando se habilita el registro binario, la instancia se reinicia.
En la sección Personaliza tu instancia de la página, actualiza la configuración de tu réplica. Primero, haz clic en Mostrar opciones de configuración para mostrar los grupos de las opciones de configuración. Luego, expande los grupos que desees para revisar y personalizar la configuración. A la derecha, aparecerá un Resumen de todas las opciones que seleccionaste. Personalizar esta configuración es opcional. Los valores predeterminados se asignan en todos los casos en los que no se realizan personalizaciones.
Para obtener más detalles sobre cada parámetro de configuración, consulta la página Acerca de la configuración de instancias.
Por ejemplo, para permitir que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas en estos datos a través de una conexión interna, expande el grupo Conexiones y, luego, anula la selección de la casilla de verificación IP pública.
- Haz clic en Crear réplica.
Cloud SQL crea una copia de seguridad si es necesario, y crea la réplica. Volverás a la página de la instancia principal.
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; por lo tanto, no puedes crear una réplica de otra. - Si la propiedad
enabled
enbackupConfiguration
esfalse
, habilita las copias de seguridad para la instancia principal: El parámetrogcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time=>HH:MM
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 en la instancia principal: La instancia se reinicia cuando se habilitan los registros binarios.gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
- Crea la réplica:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME
Si es necesario, puedes especificar un tamaño de nivel diferente con el parámetro
--tier
.Puedes especificar una región diferente mediante el parámetro
--region
.Puedes agregar más parámetros para otras opciones de configuración de la instancia. Para obtener más información, consulta gcloud sql instances create.
Si la instancia principal solo tiene una dirección IP interna y deseas permitir que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas a estos datos a través de una conexión interna y luego, agrega el parámetro
--enable-google-private-path
al comando.Debes crear la réplica en la misma red de VPC que la instancia principal. También puedes especificar un
allocated-ip-range-name
en esa red de VPC. Si no se especifica ningún rango, la réplica se crea en un rango aleatorio.
-
El registro binario es compatible con las instancias de réplica de lectura (solo MySQL 5.7 y 8.0; no es compatible con réplicas de conmutación por error de alta disponibilidad heredadas). Habilita el registro binario en una réplica con el mismo comando de
gcloud CLI
mediante el uso del nombre de instancia de la réplica en lugar del nombre de la instancia principal.gcloud sql instances patch REPLICA_INSTANCE_NAME \ --enable-bin-log
La durabilidad del registro binario en la instancia de réplica (pero no en la instancia principal) se puede establecer con la marca
sync_binlog
, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario en el disco.Las copias de seguridad no se pueden habilitar en las instancias de réplica, pero el registro binario se puede habilitar en una réplica incluso cuando las copias de seguridad están inhabilitadas, a diferencia de la instancia principal.
El período de retención de binlog en las instancias de réplica se configura automáticamente como un día, a diferencia de los siete días de las instancias principales.
Terraform
Para crear una réplica de lectura, usa el 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
- Obtén la configuración de copia de seguridad actual
Usa el método
get
del recurso de las instancias a fin de que se muestren la versión de la base de datos y la configuración de copia de seguridad actual de la instancia principal.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- primary-instance-name: Es el nombre de la instancia principal.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/primary-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:
- Verifica que los campos de replicación estén configurados
Si
enabled
opointInTimeEnabled
sonfalse
, usa el métodopatch
del recurso de las instancias para habilitarlos a ambos. En la solicitud, especifica las propiedades de la configuración de copia de seguridad que deseas cambiar.Para habilitar las copias de seguridad, configura
enabled
entrue
ystartTime
a una hora del día en formatoHH:MM
. El parámetrostartTime
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.Para habilitar la recuperación de un momento determinado, establece
pointInTimeEnabled
entrue
.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 principal o de réplica de lectura que configuras para obtener alta disponibilidad
- START_TIME: el tiempo (en horas y minutos)
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "binaryLogEnabled": true } } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
- Crea la réplica de lectura
Usa el método
insert
del recurso de las instancias para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la instancia principal. Si la instancia principal usa una dirección IP interna, puedes especificar unallocatedIpRange
de la misma manera que cuando creas una instancia principal. Si no se especifica ningún rango, la réplica se crea en un rango aleatorio. Para una réplica de lectura entre regiones, especifica una región que no sea la de la instancia principal.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- database-version: La string de la versión de Enum (por ejemplo, MYSQL_8_0)
- primary-instance-name: Es el nombre de la instancia principal.
- primary-instance-region: Es la región de la instancia principal.
- replica-region: La región de la instancia de réplica
- replica-name: El nombre de la instancia de réplica
- machine-type: La string de enumeración del tipo de máquina. Por ejemplo: “db-custom-1-3840”
- private-network es la red autorizada que agregas o seleccionas para crear una conexión privada.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances
Cuerpo JSON de la solicitud:
{ "masterInstanceName": "primary-instance-name", "project": "project-id", "databaseVersion": "database-version", "name": "replica-name", "region": "replica-region", "settings": { "tier": "machine-type", "settingsVersion": 0, "ipConfiguration": { object (IpConfiguration) }, { "ipv4Enabled": false, "privateNetwork": private-network, "requireSsl": boolean, "authorizedNetworks": [ { object (AclEntry) } ], "allocatedIpRange": string } } }
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
- Obtén la configuración de copia de seguridad actual
Usa el método
get
del recurso de las instancias a fin de que se muestren la versión de la base de datos y la configuración de copia de seguridad actual de la instancia principal.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- primary-instance-name: Es el nombre de la instancia principal.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/primary-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:
- Verifica que los campos de replicación estén configurados
Si
enabled
obinaryLogEnabled
sonfalse
en la instancia principal, usa el métodopatch
del recurso de las instancias para habilitar ambos. En la solicitud, especifica las propiedades de la configuración de copia de seguridad que deseas cambiar.Para habilitar las copias de seguridad, configura
enabled
entrue
ystartTime
a una hora del día en formatoHH:MM
. El parámetrostartTime
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.Para habilitar la recuperación de un momento determinado, establece
binaryLogEnabled
entrue
en la instancia principal.El registro binario es compatible con las instancias de réplica de lectura (solo MySQL 5.7 y 8.0). Habilita el registro binario en una réplica con la misma API, mediante el uso del ID de instancia de la réplica en lugar del ID de la instancia principal.
La durabilidad del registro binario en la réplica (pero no en la instancia principal) se puede establecer con la marca
sync_binlog
, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario en el disco.Las copias de seguridad no se pueden habilitar en las instancias de réplica, pero el registro binario se puede habilitar en una réplica incluso cuando las copias de seguridad están inhabilitadas, a diferencia de la instancia principal.
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 principal o de réplica de lectura que configuras para obtener alta disponibilidad
- START_TIME: el tiempo (en horas y minutos)
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Cuerpo JSON de la solicitud:
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "binaryLogEnabled": true } } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
- Crea la réplica de lectura
Usa el método
insert
del recurso de las instancias para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la instancia principal. Si la instancia principal usa una dirección IP interna, puedes especificar unallocatedIpRange
de la misma manera que cuando creas una instancia principal. Para una réplica de lectura entre regiones, especifica una región que no sea la de la instancia principal.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- database-version: La string de la versión de Enum (por ejemplo, MYSQL_8_0)
- primary-instance-name: Es el nombre de la instancia principal.
- primary-instance-region: Es la región de la instancia principal.
- replica-region: La región de la instancia de réplica
- replica-name: El nombre de la instancia de réplica
- machine-type: La string de enumeración del tipo de máquina. Por ejemplo: “db-custom-1-3840”
- private-network es la red autorizada que agregas o seleccionas para crear una conexión privada.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Cuerpo JSON de la solicitud:
{ "masterInstanceName": "primary-instance-name", "project": "project-id", "databaseVersion": "database-version", "name": "replica-name", "region": "replica-region", "settings": { "tier": "machine-type", "settingsVersion": 0, "ipConfiguration": { object (IpConfiguration) }, { "ipv4Enabled": false, "privateNetwork": private-network, "requireSsl": boolean, "authorizedNetworks": [ { object (AclEntry) } ], "allocatedIpRange": string } } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Crea una réplica de lectura de una instancia con Private Service Connect habilitado
Para crear una réplica de lectura de una instancia con Private Service Connect habilitado, usa gcloud CLI o la API. Puedes crear esta réplica en la misma región o en una región diferente de la que usa la instancia principal (réplica de lectura entre regiones).
La réplica de lectura no puede replicar desde una instancia con un tipo de conectividad diferente. Por ejemplo, una instancia con Private Service Connect habilitado solo puede replicarse desde otra instancia de Private Service Connect. No se puede replicar desde una instancia que admita conexiones IP externas o desde una instancia configurada con el acceso privado a servicios.
gcloud
Para crear una réplica de lectura de una instancia, usa el comando gcloud sql instances create
:
gcloud sql instances create REPLICA_INSTANCE_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip
Realiza los siguientes reemplazos:
- REPLICA_INSTANCE_NAME: el nombre de la instancia de réplica.
- PRIMARY_INSTANCE_NAME: el nombre de la instancia principal.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REGION_NAME: el nombre de la región para la instancia de réplica.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
Cloud SQL no copia los proyectos permitidos para la instancia principal en la réplica. Para cada réplica, debes crear un extremo de Private Service Connect. Si usas el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, debes crear una zona de DNS y un registro DNS para las réplicas.
- AVAILABILITY_TYPE: habilita la alta disponibilidad para la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PRIMARY_INSTANCE_NAME: el nombre de la instancia principal.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REPLICA_INSTANCE_NAME: el nombre de la instancia de réplica.
- REGION_NAME: el nombre de la región para la instancia de réplica.
- MACHINE_TYPE: el tipo de máquina para la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad para la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
Cloud SQL no copia los proyectos permitidos para la instancia principal en la réplica. Para cada réplica, debes crear un extremo de Private Service Connect. Si usas el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, debes crear una zona del DNS y un registro DNS para las réplicas.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "MYSQL_8_0", "name": "REPLICA_INSTANCE_NAME", "region": "REGION_NAME", "kind": "sql#instance", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "ASYNCHRONOUS", "tier": "MACHINE_TYPE" } }
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#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "CREATE_REPLICA", "name": "OPERATION_ID", "targetId": "REPLICA_INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PRIMARY_INSTANCE_NAME: el nombre de la instancia principal.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REPLICA_INSTANCE_NAME: el nombre de la instancia de réplica.
- REGION_NAME: el nombre de la región para la instancia de réplica.
- MACHINE_TYPE: el tipo de máquina para la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad para la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
Cloud SQL no copia los proyectos permitidos para la instancia principal en la réplica. Para cada réplica, debes crear un extremo de Private Service Connect. Si usas el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, debes crear una zona del DNS y un registro DNS para las réplicas.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "MYSQL_8_0", "name": "REPLICA_INSTANCE_NAME", "region": "REGION_NAME", "kind": "sql#instance", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "ASYNCHRONOUS", "tier": "MACHINE_TYPE" } }
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#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "CREATE_REPLICA", "name": "OPERATION_ID", "targetId": "REPLICA_INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Configura réplicas de lectura para la autenticación de la base de datos de IAM
Las réplicas de lectura no tienen la marcacloudsql_iam_authentication
habilitada
de forma automática cuando se habilita en la instancia principal.
Si deseas configurar una réplica de lectura para la autenticación de la base de datos de IAM, haz lo siguiente:
-
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.
- En el mosaico de configuración, busca la
marca
cloudsql_iam_authentication
. Si la marca no está en la lista, no es necesario habilitarla en la réplica de lectura. Si la marca está en la lista, debes habilitar la marca en la réplica de lectura. Si necesitas habilitar la marca en la réplica de lectura, continúa con el paso siguiente. - Selecciona Réplicas en el menú de navegación de SQL.
- Haz clic en el nombre de la réplica que deseas editar.
- Haz clic en Editar.
- En la sección Opciones de configuración, expande Marcas.
- Selecciona + Agregar elemento.
- Ingresa
cloudsql_iam_authentication
para el nombre de la marca. Asegúrate de que la opción Activada esté seleccionada para esta marca. - Haz clic en Guardar.
Crea réplicas en cascada
En esta sección, se describe cómo crear y administrar réplicas en cascada.
Para obtener más información sobre cómo funcionan las réplicas en cascada, consulta Réplicas en cascada.
Pasos para crear una réplica en cascada
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Para MySQL 5.7 o posterior, habilita la replicación.
- Haz clic en la pestaña Réplicas de la réplica que funcionará como superior de la réplica que deseas crear.
- Haz clic en Crear réplica.
- En la página Crea réplicas de lectura, actualiza el ID de la instancia y cualquier otra opción de configuración, incluidos el nombre, la región y la zona.
- Haz clic en Crear.
Cloud SQL crea una réplica. Volverás a la página de la instancia de la réplica superior.
- Sigue los pasos 4 a 6 para cada réplica en cascada nueva que desees crear.
gcloud
- Si usas la versión 5.7 de MySQL o una posterior, habilita los registros binarios para la instancia principal de la réplica nueva:
Reemplaza PARENT_REPLICA_NAME por el nombre de la réplica superior.gcloud sql instances patch --enable-bin-log PARENT_REPLICA_NAME
- Para crear la réplica nueva, especifica tu réplica principal como la instancia principal con la marca
--master-instance-name
: - REPLICA_NAME: el ID único de la réplica que estás creando
- PARENT_REPLICA_NAME: el nombre de la réplica superior
- Después de crear la réplica en cascada, puedes ver que los cambios realizados en la instancia principal se replican en todas las réplicas de la cadena de réplicas en cascada.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
curl
- Si usas la versión 5.7 de MySQL o una posterior, habilita el registro binario:
Para habilitar el registro de objeto binario, guarda el siguiente JSON en un archivo llamado request.JSON y, luego, invoca el comando curl para habilitar el registro de objeto binario.
{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Para crear una réplica en la réplica superior, edita la siguiente muestra de código JSON y guárdala en un archivo llamado
request.json
:{ "masterInstanceName": "PARENT_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Ejecuta el siguiente comando:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -d @request.json "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
Solucionar problemas
Problema | Soluciona problemas |
---|---|
La réplica de lectura no comenzó a replicarse cuando se creó. | Es probable que haya un error más específico en los archivos de registro. Inspecciona los registros en Cloud Logging para encontrar el error real. |
No se puede crear una réplica de lectura: error invalidFlagValue. | Una de las marcas de la solicitud no es válida. Puede ser una marca que proporcionaste explícitamente o una que se configuró como un valor predeterminado.
Primero, comprueba que el valor de la marca Si la marca |
No se puede crear una réplica de lectura: error desconocido. | Es probable que haya un error más específico en los archivos de registro.
Inspecciona los registros en Cloud Logging para encontrar el error real.
Si el error es |
El disco está lleno. | El tamaño del disco de la instancia principal puede llenarse durante la creación de una réplica. Edita la instancia principal para actualizarla a un tamaño de disco más grande. |
La instancia de réplica usa demasiada memoria. | La réplica usa memoria temporal para almacenar en caché las operaciones de lectura solicitadas con frecuencia, lo que puede ocasionar que use más memoria que la instancia principal.
Reinicia la instancia de réplica para recuperar el espacio de memoria temporal. |
Se detuvo la replicación. | Se alcanzó el límite de almacenamiento máximo y el aumento de almacenamiento automático no está habilitado.
Edita la instancia para habilitar |
El retraso de replicación se mantiene alto. | La carga de escritura es demasiado alta para que la réplica la maneje. El retraso de la replicación se produce cuando el subproceso de SQL en una réplica no puede mantener el ritmo del subproceso de E/S. Algunos tipos de consultas o cargas de trabajo pueden causar un gran retraso de la replicación de forma temporal o permanente en un esquema determinado. Algunas de las causas típicas del retraso de la replicación son las siguientes:
Estas son algunas de las soluciones posibles:
|
El retraso de la replicación aumenta de manera repentina. | Esto se debe a las transacciones de larga duración. Cuando se confirma una transacción (una sola declaración o varias declaraciones) en la instancia de origen, la hora de inicio de la transacción se registra en el registro binario. Cuando la réplica recibe este evento binlog, compara esa marca de tiempo con la marca de tiempo actual para calcular el retraso de replicación. Por lo tanto, una transacción de larga duración en la fuente generaría un gran retraso de replicación inmediato en la réplica. Si la cantidad de cambios de fila en la transacción es grande, la réplica también tardaría mucho tiempo en ejecutarla. Durante ese tiempo, el retraso de la replicación aumenta. Una vez que la réplica finalice esta transacción, el período de actualización dependerá de la carga de trabajo de escritura en el origen y la velocidad de procesamiento de la réplica.
Para evitar una transacción larga, algunas soluciones posibles incluyen las siguientes:
|
Si cambias las marcas de replicación paralelas, se generará un error. | Se configuró un valor incorrecto para una o más de estas marcas.
En la instancia principal que muestra el mensaje de error, configura las marcas de replicación paralelas:
|
La creación de la réplica falla con el tiempo de espera. | Las transacciones no confirmadas de larga duración en la instancia principal pueden generar una falla en la creación de la réplica de lectura.
Vuelve a crear la réplica después de detener todas las consultas en ejecución. |
¿Qué sigue?
- Obtén información sobre cómo administrar réplicas.
- Obtén información sobre las réplicas entre regiones.