Esta página describe cómo crear una réplica de lectura para una instancia de Cloud SQL.
Una réplica de lectura es una copia de la instancia principal que refleja los cambios en esta casi en tiempo real, en circunstancias normales. Puede usar una réplica de lectura para descargar solicitudes de lectura o tráfico analítico de la instancia principal.
Además, para la recuperación ante desastres, puede realizar una migración regional. Si una réplica es interregional , puede realizar una conmutación por error a otra región; en concreto, puede convertir una réplica en una instancia independiente (en cuyo caso, las réplicas existentes no la considerarán principal).
Para obtener más información sobre cómo funciona la replicación, consulte Replicación en Cloud SQL .
Antes de empezar
Si va a crear la primera réplica de esta instancia, asegúrese de que cumpla los requisitos de las instancias principales. Más información .
Crear una réplica de lectura
Los pasos para crear una réplica de lectura se detallan a continuación.
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque la instancia para la que desea crear una réplica y luego abra el menú
more actions
junto a la lista. - Seleccione Crear réplica de lectura .
Si no ve esa opción, entonces la instancia es una réplica; no puede crear una réplica de una réplica.
- Si la instancia tenía habilitadas las copias de seguridad y el registro binario, continúe con el siguiente paso. De lo contrario, seleccione Automatizar copias de seguridad y Habilitar registro binario , haga clic en Continuar y, a continuación, en Guardar y reiniciar para reiniciar la instancia.
Al habilitar el registro binario se reinicia la instancia.
En la sección "Personalizar su instancia ", actualice la configuración de su réplica. Para empezar, haga clic en "Mostrar opciones de configuración" para ver los grupos de configuración. A continuación, expanda los grupos que desee para revisar y personalizar la configuración. A la derecha, aparecerá un resumen de todas las opciones seleccionadas. Personalizar esta configuración es opcional. Si no se personaliza, se asignan los valores predeterminados.
Para obtener más detalles sobre cada configuración, consulte la página Acerca de la configuración de instancia .
Por ejemplo, para permitir que otros Google Cloud servicios, como BigQuery, para acceder a datos en Cloud SQL y realizar consultas sobre estos datos a través de una conexión interna, expanda el grupo Conexiones y desmarque la casilla de verificación IP pública .
- Haga clic en Crear réplica .
Cloud SQL crea una copia de seguridad, si es necesario, y crea la réplica. Regresará a la página de la instancia principal.
nube g
- Verifique 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 se puede crear una réplica de una réplica. - Si la propiedad
enabled
enbackupConfiguration
esfalse
, habilite las copias de seguridad para la instancia principal ahora: El parámetrogcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time=>HH:MM
backup-start-time
se especifica en formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante esta ventana. - Si la propiedad
binaryLogEnabled
esfalse
, habilite los registros binarios en la instancia principal: Al habilitar registros binarios se reinicia la instancia.gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
- Crear la réplica:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME
Si es necesario, puede especificar un tamaño de nivel diferente con el parámetro
--tier
. Si crea una réplica a partir de una instancia principal para MySQL 8.4 y versiones posteriores, y la edición de Cloud SQL de la instancia es Enterprise o Enterprise Plus, no es necesario especificar un valor para este parámetro. La réplica hereda el tipo de máquina de la instancia principal.Puede especificar una región diferente utilizando el parámetro
--region
.Puedes agregar más parámetros para otras configuraciones de instancia. Para obtener más información, consulta "gcloud sql instances create" .
Si la instancia principal solo tiene una dirección IP interna y desea permitir que otras Google Cloud servicios, como BigQuery, para acceder a datos en Cloud SQL y realizar consultas sobre estos datos a través de una conexión interna, luego agregue el parámetro
--enable-google-private-path
al comando.Debe crear la réplica en la misma red de VPC que la instancia principal. También puede 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 versiones posteriores. No es compatible con las réplicas de conmutación por error de alta disponibilidad heredadas). Habilite el registro binario en una réplica con el mismo comando
gcloud CLI
, usando el nombre de la instancia de la réplica en lugar del nombre de la instancia principal. La durabilidad del registro binario en la instancia de réplica (pero no en la principal) se puede configurar con el indicadorgcloud sql instances patch REPLICA_INSTANCE_NAME \ --enable-bin-log
sync_binlog
, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario con el disco.No se pueden habilitar las copias de seguridad en instancias de réplica, pero se puede habilitar el registro binario en una réplica incluso cuando las copias de seguridad están deshabilitadas, a diferencia de la instancia principal.
El período de retención de binlog en las instancias de réplica se establece automáticamente en un día, a diferencia de los siete días en las instancias principales.
Terraformar
Para crear una réplica de lectura, utilice el recurso Terraform .
Aplicar los cambios
Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.
Preparar Cloud Shell
- Inicie Cloud Shell .
Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus 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 establece 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 , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión
.tf
; por ejemplo,main.tf
En este tutorial, el archivo se denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.
Copie el código de muestra en el
main.tf
recién creado.Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
terraform init
Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción
-upgrade
:terraform init -upgrade
Aplicar los cambios
- Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
terraform plan
Realice correcciones en la configuración según sea necesario.
- Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el indicador:terraform apply
Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"
- Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.
Eliminar los cambios
Para eliminar sus cambios, haga lo siguiente:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform destroy
REST versión 1
- Obtener la configuración de respaldo actual
Utilice el método
get
del recurso de instancias para devolver la versión de la base de datos y la configuración de respaldo actual para la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verifique que los campos de replicación estén configurados
Si
enabled
opointInTimeEnabled
sonfalse
, utilice el métodopatch
del recurso de instancias para habilitarlos. En la solicitud, especifique las propiedades de la configuración de copia de seguridad que desee modificar.Para habilitar las copias de seguridad, configure
enabled
comotrue
y lastartTime
como una hora del día en formatoHH:MM
. El parámetro "startTime
se especifica en formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad.Para habilitar la recuperación en un punto en el tiempo, establezca
pointInTimeEnabled
entrue
.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica principal o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Crear la réplica de lectura
Utilice el método
insert
del recurso "instances" para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la de la instancia principal. Si la instancia principal usa una dirección IP interna, puede especificar unallocatedIpRange
de la misma forma que al crear 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, especifique una región distinta a la de la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : cadena de versión de enumeración (por ejemplo, MYSQL_8_0)
- primary-instance-name : El nombre de la instancia principal
- primary-instance-region : 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 : Cadena de enumeración del tipo de máquina. Por ejemplo: "db-custom-1-3840"
- private-network : la red autorizada que estás agregando o seleccionando 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
- Obtener la configuración de respaldo actual
Utilice el método
get
del recurso de instancias para devolver la versión de la base de datos y la configuración de respaldo actual para el maestro.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verifique que los campos de replicación estén configurados
Si
enabled
obinaryLogEnabled
sonfalse
en la instancia principal, utilice el métodopatch
del recurso de instancias para habilitarlos. En la solicitud, especifique las propiedades de la configuración de copia de seguridad que desee modificar.Para habilitar las copias de seguridad, configure
enabled
comotrue
y lastartTime
como una hora del día en formatoHH:MM
. El parámetro "startTime
se especifica en formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad.Para habilitar la recuperación en un punto en el tiempo, configure
El registro binario es compatible con las réplicas de lectura (solo MySQL 5.7 y versiones posteriores). Habilite el registro binario en una réplica con la misma API, utilizando el ID de instancia de la réplica en lugar del ID de instancia principal. La durabilidad del registro binario en la instancia de réplica (pero no en la principal) se puede configurar con el indicadorbinaryLogEnabled
comotrue
en la instancia principal.sync_binlog
, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario con el disco. No se pueden habilitar las copias de seguridad en instancias de réplica, pero se puede habilitar el registro binario en una réplica incluso cuando las copias de seguridad están deshabilitadas, a diferencia de la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica principal o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Crear la réplica de lectura
Utilice el método
insert
del recurso "instances" para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la de la instancia principal. Si la instancia principal usa una dirección IP interna, puede especificar unallocatedIpRange
de la misma forma que al crear una instancia principal . Para una réplica de lectura entre regiones, especifique una región distinta a la de la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : cadena de versión de enumeración (por ejemplo, MYSQL_8_0)
- primary-instance-name : El nombre de la instancia principal
- primary-instance-region : 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 : Cadena de enumeración del tipo de máquina. Por ejemplo: "db-custom-1-3840"
- private-network : la red autorizada que estás agregando o seleccionando 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Crear una réplica de lectura de una instancia con Private Service Connect habilitado
Para crear una réplica de lectura de una instancia con Conexión de servicio privado habilitada, utilice La CLI o la API de gcloud . Puede crear esta réplica en la misma región o en una diferente a la de 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 la Conexión de Servicio Privado habilitada solo puede replicar desde otra instancia con Conexión de Servicio Privado. Tampoco puede replicar desde una instancia que admita conexiones IP externas ni desde una instancia configurada con acceso a servicios privados .
nube g
Para crear una réplica de lectura de una instancia, utilice 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
Realice las siguientes sustituciones:
- 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 número de proyecto del Google Cloud proyecto que contiene la instancia.
- REGION_NAME : el nombre de la región para la instancia de réplica.
ALLOWED_PROJECTS : lista de IDs o números de proyecto permitidos, separados por comas. Si un proyecto no figura en esta lista, no podrá usarlo para crear una instancia ni habilitar la Conexión de Servicio Privado.
Cloud SQL no copia los proyectos permitidos para la instancia principal a la réplica. Para cada réplica, debe crear un punto de conexión de servicio privado . Si utiliza el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL , cree una zona DNS y un registro DNS para las réplicas.
- AVAILABILITY_TYPE : habilita la alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilita la alta disponibilidad y se recomienda para instancias de producción. La instancia conmuta por error a otra zona dentro de la región seleccionada. -
ZONAL
: no proporciona conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar la alta disponibilidad para instancias, consulte Configurar una instancia existente para alta disponibilidad y Desactivar la alta disponibilidad para una instancia .
-
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto 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, especifique uno de los siguientes valores:
-
REGIONAL
: habilita la alta disponibilidad y se recomienda para instancias de producción. La instancia conmuta por error a otra zona dentro de la región seleccionada. -
ZONAL
: no proporciona conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar la alta disponibilidad para instancias, consulte Configurar una instancia existente para alta disponibilidad y Desactivar la alta disponibilidad para una instancia .
-
ALLOWED_PROJECTS : lista de IDs o números de proyecto permitidos, separados por comas. Si un proyecto no figura en esta lista, no podrá usarlo para crear una instancia ni habilitar la Conexión de Servicio Privado.
Cloud SQL no copia los proyectos permitidos para la instancia principal a la réplica. Para cada réplica, debe crear un punto de conexión de servicio privado . Si utiliza el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL , debe crear una zona 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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 utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia principal.
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto 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, especifique uno de los siguientes valores:
-
REGIONAL
: habilita la alta disponibilidad y se recomienda para instancias de producción. La instancia conmuta por error a otra zona dentro de la región seleccionada. -
ZONAL
: no proporciona conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar la alta disponibilidad para instancias, consulte Configurar una instancia existente para alta disponibilidad y Desactivar la alta disponibilidad para una instancia .
-
ALLOWED_PROJECTS : lista de IDs o números de proyecto permitidos, separados por comas. Si un proyecto no figura en esta lista, no podrá usarlo para crear una instancia ni habilitar la Conexión de Servicio Privado.
Cloud SQL no copia los proyectos permitidos para la instancia principal a la réplica. Para cada réplica, debe crear un punto de conexión de servicio privado . Si utiliza el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL , debe crear una zona 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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" }
Configurar réplicas de lectura para la autenticación de la base de datos IAM
Las réplicas de lectura no tienen la marcacloudsql_iam_authentication
habilitada automáticamente cuando está habilitada en la instancia principal.Para configurar una réplica de lectura para la autenticación de la base de datos IAM:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- En el mosaico de Configuración, busque el indicador
cloudsql_iam_authentication
. Si no aparece en la lista, no es necesario habilitarlo en la réplica de lectura. Si aparece, debe habilitarlo en la réplica de lectura. Si necesita habilitarlo en la réplica de lectura, continúe con el siguiente paso. - Seleccione Réplicas en el menú de navegación de SQL.
- Haga clic en el nombre de la réplica que desea editar.
- Haga clic en Editar .
- En la sección Opciones de configuración , expanda Banderas .
- Seleccionar + Agregar elemento.
- Introduzca
cloudsql_iam_authentication
como nombre de la bandera. Asegúrese de que esté activada. - Haga clic en Guardar .
Crear réplicas en cascada
Esta sección describe cómo crear y administrar réplicas en cascada.
Para obtener información sobre cómo funcionan las réplicas en cascada, consulte Réplicas en cascada .
Pasos para crear una réplica en cascada
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para MySQL 5.7 o posterior, habilite la replicación .
- Haga clic en la pestaña Réplicas de la réplica que actuará como padre de la réplica que desea crear.
- Haga clic en Crear réplica .
- En la página Crear réplica de lectura , actualice el ID de instancia y cualquier otra opción de configuración, incluido el nombre, la región y la zona.
- Haga clic en Crear .
Cloud SQL crea una réplica. Regresará a la página de la instancia de la réplica principal.
- Siga los pasos 4 a 6 para cada nueva réplica en cascada que desee crear.
nube g
- Si está utilizando MySQL versión 5.7 o posterior, habilite los binlogs para la réplica principal de la nueva:
Reemplace PARENT_REPLICA_NAME con el nombre de la réplica principal.gcloud sql instances patch --enable-bin-log PARENT_REPLICA_NAME
- Cree la nueva réplica especificando su réplica principal como la instancia principal utilizando el indicador
--master-instance-name
: - REPLICA_NAME : el ID único de la réplica que está creando
- PARENT_REPLICA_NAME : el nombre de la réplica principal
- Después de crear la réplica en cascada, puede 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 \
rizo
- Si está utilizando MySQL versión 5.7 o posterior, habilite el registro binario:
Para habilitar el registro binario, guarde el siguiente JSON en un archivo llamado request.JSON y luego invoque el comando curl para habilitar el registro binario.{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Para crear una réplica bajo la réplica principal, edite el siguiente ejemplo de código JSON y guárdelo en un archivo llamado
request.json
:{ "masterInstanceName": "PARENT_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Ejecute 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
Asunto | Solución de problemas |
---|---|
La réplica de lectura no comenzó a replicarse durante la creación. | Probablemente haya un error más específico en los archivos de registro. Inspeccione los registros en Cloud Logging para encontrar el error real. |
No se puede crear una réplica de lectura: error invalidFlagValue. | Una de las banderas de la solicitud no es válida. Podría ser una bandera que usted proporcionó explícitamente o una que se configuró con un valor predeterminado. Primero, verifique que el valor del indicador Si el indicador |
No se puede crear una réplica de lectura: error desconocido. | Probablemente haya un error más específico en los archivos de registro. Inspeccione los registros en Cloud Logging para encontrar el error real. Si el error es: |
El disco está lleno. | El disco de la instancia principal puede alcanzar su capacidad máxima durante la creación de la réplica. Edite la instancia principal para ampliarla a un disco de mayor capacidad. |
La instancia de réplica está utilizando demasiada memoria. | La réplica utiliza memoria temporal para almacenar en caché operaciones de lectura solicitadas con frecuencia, lo que puede provocar que utilice más memoria que la instancia principal. Reinicie la instancia de réplica para recuperar el espacio de memoria temporal. |
La replicación se detuvo. | Se alcanzó el límite máximo de almacenamiento y el aumento automático de almacenamiento no está habilitado. Edite la instancia para habilitar |
El retraso en la replicación es constantemente alto. | La carga de escritura es demasiado alta para que la réplica la pueda gestionar. El retraso de replicación se produce cuando el subproceso SQL de una réplica no puede seguir el ritmo del subproceso de E/S. Algunos tipos de consultas o cargas de trabajo pueden causar un retraso de replicación elevado, temporal o permanente, para un esquema determinado. Algunas de las causas típicas del retraso de replicación son:
Algunas posibles soluciones incluyen:
|
El retraso en la replicación aumenta repentinamente. | Esto se debe a transacciones de larga duración. Cuando una transacción (de una sola sentencia o de varias sentencias) se confirma en la instancia de origen, la hora de inicio se registra en el registro binario. Cuando la réplica recibe este evento del registro binario, 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 el origen generaría un retraso de replicación considerable de 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 en ejecutarla. Durante este tiempo, el retraso de replicación aumenta. Una vez que la réplica finaliza esta transacción, el tiempo de recuperación dependerá de la carga de trabajo de escritura en el origen y de su velocidad de procesamiento. Para evitar una transacción larga, algunas posibles soluciones incluyen:
|
Cambiar los indicadores de replicación paralela genera un error. | Se ha establecido un valor incorrecto para uno o más de estos indicadores. En la instancia principal que muestra el mensaje de error, configure los indicadores de replicación paralela:
|
La creación de una réplica falla debido al tiempo de espera. | Las transacciones no confirmadas de ejecución prolongada en la instancia principal pueden provocar que falle la creación de una réplica de lectura. Vuelva a crear la réplica después de detener todas las consultas en ejecución. |
¿Qué sigue?
- Aprenda a administrar réplicas .
- Obtenga más información sobre las réplicas entre regiones .
Esta página describe cómo crear una réplica de lectura para una instancia de Cloud SQL.
Una réplica de lectura es una copia de la instancia principal que refleja los cambios en esta casi en tiempo real, en circunstancias normales. Puede usar una réplica de lectura para descargar solicitudes de lectura o tráfico analítico de la instancia principal.
Además, para la recuperación ante desastres, puede realizar una migración regional. Si una réplica es interregional , puede realizar una conmutación por error a otra región; en concreto, puede convertir una réplica en una instancia independiente (en cuyo caso, las réplicas existentes no la considerarán principal).
Para obtener más información sobre cómo funciona la replicación, consulte Replicación en Cloud SQL .
Antes de empezar
Si va a crear la primera réplica de esta instancia, asegúrese de que cumpla los requisitos de las instancias principales. Más información .
Crear una réplica de lectura
Los pasos para crear una réplica de lectura se detallan a continuación.
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Busque la instancia para la que desea crear una réplica y luego abra el menú
more actions
junto a la lista. - Seleccione Crear réplica de lectura .
Si no ve esa opción, entonces la instancia es una réplica; no puede crear una réplica de una réplica.
- Si la instancia tenía habilitadas las copias de seguridad y el registro binario, continúe con el siguiente paso. De lo contrario, seleccione Automatizar copias de seguridad y Habilitar registro binario , haga clic en Continuar y, a continuación, en Guardar y reiniciar para reiniciar la instancia.
Al habilitar el registro binario se reinicia la instancia.
En la sección "Personalizar su instancia ", actualice la configuración de su réplica. Para empezar, haga clic en "Mostrar opciones de configuración" para ver los grupos de configuración. A continuación, expanda los grupos que desee para revisar y personalizar la configuración. A la derecha, aparecerá un resumen de todas las opciones seleccionadas. Personalizar esta configuración es opcional. Si no se personaliza, se asignan los valores predeterminados.
Para obtener más detalles sobre cada configuración, consulte la página Acerca de la configuración de instancia .
Por ejemplo, para permitir que otros Google Cloud servicios, como BigQuery, para acceder a datos en Cloud SQL y realizar consultas sobre estos datos a través de una conexión interna, expanda el grupo Conexiones y desmarque la casilla de verificación IP pública .
- Haga clic en Crear réplica .
Cloud SQL crea una copia de seguridad, si es necesario, y crea la réplica. Regresará a la página de la instancia principal.
nube g
- Verifique 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 se puede crear una réplica de una réplica. - Si la propiedad
enabled
enbackupConfiguration
esfalse
, habilite las copias de seguridad para la instancia principal ahora: El parámetrogcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time=>HH:MM
backup-start-time
se especifica en formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante esta ventana. - Si la propiedad
binaryLogEnabled
esfalse
, habilite los registros binarios en la instancia principal: Al habilitar registros binarios se reinicia la instancia.gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
- Crear la réplica:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME
Si es necesario, puede especificar un tamaño de nivel diferente con el parámetro
--tier
. Si crea una réplica a partir de una instancia principal para MySQL 8.4 y versiones posteriores, y la edición de Cloud SQL de la instancia es Enterprise o Enterprise Plus, no es necesario especificar un valor para este parámetro. La réplica hereda el tipo de máquina de la instancia principal.Puede especificar una región diferente utilizando el parámetro
--region
.Puedes agregar más parámetros para otras configuraciones de instancia. Para obtener más información, consulta "gcloud sql instances create" .
Si la instancia principal solo tiene una dirección IP interna y desea permitir que otras Google Cloud servicios, como BigQuery, para acceder a datos en Cloud SQL y realizar consultas sobre estos datos a través de una conexión interna, luego agregue el parámetro
--enable-google-private-path
al comando.Debe crear la réplica en la misma red de VPC que la instancia principal. También puede 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 versiones posteriores. No es compatible con las réplicas de conmutación por error de alta disponibilidad heredadas). Habilite el registro binario en una réplica con el mismo comando
gcloud CLI
, usando el nombre de la instancia de la réplica en lugar del nombre de la instancia principal. La durabilidad del registro binario en la instancia de réplica (pero no en la principal) se puede configurar con el indicadorgcloud sql instances patch REPLICA_INSTANCE_NAME \ --enable-bin-log
sync_binlog
, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario con el disco.No se pueden habilitar las copias de seguridad en instancias de réplica, pero se puede habilitar el registro binario en una réplica incluso cuando las copias de seguridad están deshabilitadas, a diferencia de la instancia principal.
El período de retención de binlog en las instancias de réplica se establece automáticamente en un día, a diferencia de los siete días en las instancias principales.
Terraformar
Para crear una réplica de lectura, utilice el recurso Terraform .
Aplicar los cambios
Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.
Preparar Cloud Shell
- Inicie Cloud Shell .
Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus 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 establece 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 , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión
.tf
; por ejemplo,main.tf
En este tutorial, el archivo se denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.
Copie el código de muestra en el
main.tf
recién creado.Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
terraform init
Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción
-upgrade
:terraform init -upgrade
Aplicar los cambios
- Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
terraform plan
Realice correcciones en la configuración según sea necesario.
- Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el indicador:terraform apply
Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"
- Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.
Eliminar los cambios
Para eliminar sus cambios, haga lo siguiente:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform destroy
REST versión 1
- Obtener la configuración de respaldo actual
Utilice el método
get
del recurso de instancias para devolver la versión de la base de datos y la configuración de respaldo actual para la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verifique que los campos de replicación estén configurados
Si
enabled
opointInTimeEnabled
sonfalse
, utilice el métodopatch
del recurso de instancias para habilitarlos. En la solicitud, especifique las propiedades de la configuración de copia de seguridad que desee modificar.Para habilitar las copias de seguridad, configure
enabled
comotrue
y lastartTime
como una hora del día en formatoHH:MM
. El parámetro "startTime
se especifica en formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad.Para habilitar la recuperación en un punto en el tiempo, establezca
pointInTimeEnabled
entrue
.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica principal o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Crear la réplica de lectura
Utilice el método
insert
del recurso "instances" para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la de la instancia principal. Si la instancia principal usa una dirección IP interna, puede especificar unallocatedIpRange
de la misma forma que al crear 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, especifique una región distinta a la de la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : cadena de versión de enumeración (por ejemplo, MYSQL_8_0)
- primary-instance-name : El nombre de la instancia principal
- primary-instance-region : 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 : Cadena de enumeración del tipo de máquina. Por ejemplo: "db-custom-1-3840"
- private-network : la red autorizada que estás agregando o seleccionando 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
- Obtener la configuración de respaldo actual
Utilice el método
get
del recurso de instancias para devolver la versión de la base de datos y la configuración de respaldo actual para el maestro.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verifique que los campos de replicación estén configurados
Si
enabled
obinaryLogEnabled
sonfalse
en la instancia principal, utilice el métodopatch
del recurso de instancias para habilitarlos. En la solicitud, especifique las propiedades de la configuración de copia de seguridad que desee modificar.Para habilitar las copias de seguridad, configure
enabled
comotrue
y lastartTime
como una hora del día en formatoHH:MM
. El parámetro "startTime
se especifica en formato de 24 horas, en la zona horaria UTC±00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad.Para habilitar la recuperación en un punto en el tiempo, configure
El registro binario es compatible con las réplicas de lectura (solo MySQL 5.7 y versiones posteriores). Habilite el registro binario en una réplica con la misma API, utilizando el ID de instancia de la réplica en lugar del ID de instancia principal. La durabilidad del registro binario en la instancia de réplica (pero no en la principal) se puede configurar con el indicadorbinaryLogEnabled
comotrue
en la instancia principal.sync_binlog
, que controla la frecuencia con la que el servidor MySQL sincroniza el registro binario con el disco. No se pueden habilitar las copias de seguridad en instancias de réplica, pero se puede habilitar el registro binario en una réplica incluso cuando las copias de seguridad están deshabilitadas, a diferencia de la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica principal o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Crear la réplica de lectura
Utilice el método
insert
del recurso "instances" para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la de la instancia principal. Si la instancia principal usa una dirección IP interna, puede especificar unallocatedIpRange
de la misma forma que al crear una instancia principal . Para una réplica de lectura entre regiones, especifique una región distinta a la de la instancia principal.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : cadena de versión de enumeración (por ejemplo, MYSQL_8_0)
- primary-instance-name : El nombre de la instancia principal
- primary-instance-region : 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 : cadena enum del tipo de máquina. Por ejemplo: "DB-Custom-1-3840"
- private-network : la red autorizada que está agregando o seleccionando 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Cree una réplica de lectura de una instancia con el servicio privado Connect habilitado
Para crear una réplica de lectura de una instancia con el servicio privado Connect habilitado, use GCLOUD CLI o la API. Puede crear esta réplica en la misma región o en una región diferente de la instancia primaria ( réplica de lectura de región cruzada ).
La réplica de lectura no puede replicarse de una instancia con un tipo de conectividad diferente. Por ejemplo, una instancia con servicio privado Connect habilitado solo puede replicarse desde otra instancia de servicio privado Connect. Tampoco puede replicarse desde una instancia que admite conexiones IP externas o desde una instancia configurada con acceso a servicios privados .
nube g
Para crear una réplica de lectura de una instancia, use 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
Realice las siguientes sustituciones:
- REPLICA_INSTANCE_NAME : el nombre de la instancia de réplica.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia primaria.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto que contiene la instancia.
- REGION_NAME : el nombre de la región para la instancia de réplica.
ALLOWED_PROJECTS : una lista de ID o números de proyecto permitidos, separados por comas. Si un proyecto no está contenido en esta lista, entonces no puede usarlo para crear una instancia y habilitar el servicio privado Connect para ella.
Cloud SQL no copia los proyectos permitidos para la instancia primaria a la réplica. Para cada réplica, debe crear un punto final de servicio privado Connect . Si está utilizando los conectores de lenguaje Cloud SQL Auth o Language SQL , cree una zona DNS y un registro DNS para las réplicas.
- AVAILABILITY_TYPE : habilite una alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilite la alta disponibilidad y se recomienda para instancias de producción. La instancia falla a otra zona dentro de su región seleccionada. -
ZONAL
: no proporcione capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar una alta disponibilidad para instancias, consulte Configurar una instancia existente para obtener una alta disponibilidad y desactivar la alta disponibilidad para una instancia .
-
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia primaria.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto 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 : habilite una alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilite la alta disponibilidad y se recomienda para instancias de producción. La instancia falla a otra zona dentro de su región seleccionada. -
ZONAL
: no proporcione capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar una alta disponibilidad para instancias, consulte Configurar una instancia existente para obtener una alta disponibilidad y desactivar la alta disponibilidad para una instancia .
-
ALLOWED_PROJECTS : una lista de ID o números de proyecto permitidos, separados por comas. Si un proyecto no está contenido en esta lista, entonces no puede usarlo para crear una instancia y habilitar el servicio privado Connect para ella.
Cloud SQL no copia los proyectos permitidos para la instancia primaria a la réplica. Para cada réplica, debe crear un punto final de servicio privado Connect . Si está utilizando los conectores de lenguaje Cloud SQL Auth o Cloud SQL SQL , debe crear un registro DNS Zone y 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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 utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia primaria.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto 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 : habilite una alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilite la alta disponibilidad y se recomienda para instancias de producción. La instancia falla a otra zona dentro de su región seleccionada. -
ZONAL
: no proporcione capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar una alta disponibilidad para instancias, consulte Configurar una instancia existente para obtener una alta disponibilidad y desactivar la alta disponibilidad para una instancia .
-
ALLOWED_PROJECTS : una lista de ID o números de proyecto permitidos, separados por comas. Si un proyecto no está contenido en esta lista, entonces no puede usarlo para crear una instancia y habilitar el servicio privado Connect para ella.
Cloud SQL no copia los proyectos permitidos para la instancia primaria a la réplica. Para cada réplica, debe crear un punto final de servicio privado Connect . Si está utilizando los conectores de lenguaje Cloud SQL Auth o Cloud SQL SQL , debe crear un registro DNS Zone y 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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" }
Configurar replicas de lectura para la autenticación de la base de datos IAM
Leer las réplicas no tienen el indicadorcloudsql_iam_authentication
habilitado automáticamente cuando está habilitado en la instancia principal.Para configurar una réplica de lectura para la autenticación de la base de datos IAM:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- En el mosaico de configuración, busque el indicador
cloudsql_iam_authentication
. Si la bandera no está en la lista, habilitar la bandera en la réplica de lectura es innecesario. Si la bandera está en la lista, debe habilitar la bandera en la réplica de lectura. Si necesita habilitar la bandera en la réplica de lectura, continúe con el siguiente paso. - Seleccione Replicas en el menú de navegación SQL.
- Haga clic en el nombre de la réplica que desea editar.
- Haga clic en Editar .
- En la sección Opciones de configuración , expandir los indicadores .
- Seleccione + Agregar elemento.
- Ingrese
cloudsql_iam_authentication
para el nombre del indicador. Asegúrese de que ON esté seleccionado para esta bandera. - Haga clic en Guardar .
Crear réplicas en cascada
Esta sección describe cómo crear y administrar réplicas en cascada.
Para obtener información sobre cómo funcionan las réplicas en cascada, consulte las réplicas en cascada .
Pasos para crear una réplica en cascada
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para MySQL 5.7 o posterior, habilite la replicación .
- Haga clic en la pestaña Replicas para la réplica que actuará como padre para la réplica que desea crear.
- Haga clic en Crear réplica .
- En la página Crear réplica de lectura , actualice el ID de instancia y cualquier otra opción de configuración, incluidos el nombre, la región y la zona.
- Haga clic en Crear .
Cloud SQL crea una réplica. Te devuelven a la página de instancia para la réplica principal.
- Siga los pasos 4-6 para cada nueva réplica en cascada que desea crear.
nube g
- Si está utilizando MySQL versión 5.7 o posterior, habilite binlogs para la primaria de la nueva réplica:
Reemplace PARENT_REPLICA_NAME con el nombre de la réplica principal.gcloud sql instances patch --enable-bin-log PARENT_REPLICA_NAME
- Cree la nueva réplica especificando su réplica principal como la instancia principal utilizando el indicador
--master-instance-name
: - REPLICA_NAME : la identificación única para la réplica que está creando
- PARENT_REPLICA_NAME : el nombre de la réplica principal
- Después de crear la réplica en cascada, puede ver que los cambios realizados en la instancia primaria se replican a través de todas las réplicas en la cadena de réplicas en cascada.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
rizo
- Si está utilizando MySQL versión 5.7 o posterior, habilite el registro binario:
Para habilitar el registro binario, guarde el siguiente JSON en un archivo llamado request.json, luego invoque el comando curl para habilitar el registro binario.{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Para crear una réplica en la réplica principal, edite la siguiente muestra del código JSON y guárdela en un archivo llamado
request.json
:{ "masterInstanceName": "PARENT_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Ejecute 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
Asunto | Solución de problemas |
---|---|
Leer réplica no comenzó a replicar en la creación. | Probablemente haya un error más específico en los archivos de registro. Inspeccione los registros de registro en la nube para encontrar el error real. |
No se puede crear la réplica de lectura: error de FlagValue inválido. | Una de las banderas en la solicitud no es válida. Podría ser una bandera que proporcionó explícitamente o una que se estableció en un valor predeterminado. Primero, verifique que el valor del indicador Si el indicador |
No se puede crear la réplica de lectura - error desconocido. | Probablemente haya un error más específico en los archivos de registro. Inspeccione los registros de registro en la nube para encontrar el error real. Si el error es: |
El disco está lleno. | El tamaño del disco de instancia principal puede llenarse durante la creación de réplicas. Edite la instancia principal para actualizarlo a un tamaño de disco más grande. |
La instancia de réplica está usando demasiada memoria. | La réplica utiliza la memoria temporal para almacenar en caché las operaciones de lectura a menudo solicitadas, lo que puede llevarla a usar más memoria que la instancia principal. Reinicie la instancia de réplica para recuperar el espacio de memoria temporal. |
La replicación se detuvo. | Se alcanzó el límite de almacenamiento máximo y el aumento de almacenamiento automático no está habilitado. Edite la instancia para habilitar |
El retraso de replicación es consistentemente alto. | La carga de escritura es demasiado alta para que la réplica maneje. El retraso de la replicación tiene lugar cuando el hilo SQL en una réplica no puede mantenerse al día con el hilo IO. Algunos tipos de consultas o cargas de trabajo pueden causar retraso de replicación alta o permanente para un esquema dado. Algunas de las causas típicas del retraso de replicación son:
Algunas posibles soluciones incluyen:
|
La replicación retrasa repentinamente. | Esto es causado por transacciones de larga duración. Cuando una transacción (declaración única o estados múltiples) se compromete 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 la replicación. Por lo tanto, una transacción de larga duración en la fuente daría como resultado un retraso de replicación grande inmediato en la réplica. Si la cantidad de cambios de fila en la transacción es grande, la réplica también pasaría mucho tiempo para ejecutarla. Durante el tiempo, el retraso de la replicación está aumentando. Una vez que la réplica termine esta transacción, el período de recuperación dependería de la carga de trabajo de escritura en la fuente y la velocidad de procesamiento de la réplica. Para evitar una transacción larga, algunas soluciones posibles incluyen:
|
Cambiar los indicadores de replicación paralela da como resultado un error. | Se establece un valor incorrecto para una de o más de estas banderas. En la instancia primaria que muestra el mensaje de error, configure los indicadores de replicación paralelo:
|
La creación de réplica falla con el tiempo de espera. | Las transacciones no comprometidas de larga duración en la instancia primaria pueden hacer que la creación de réplica de lectura falle. Recrea la réplica después de detener todas las consultas de carrera. |
¿Qué sigue?
- Aprenda a administrar réplicas .
- Aprenda sobre réplicas de región cruzada .
Esta página describe cómo crear una réplica de lectura para una instancia de SQL en la nube.
Una réplica de lectura es una copia de la instancia primaria que refleja los cambios en el primario en tiempo casi real, en circunstancias normales. Puede usar una réplica de lectura para descargar solicitudes de lectura o tráfico de análisis desde la instancia principal.
Además, para la recuperación ante desastres, puede realizar una migración regional. Si una réplica es una réplica de región cruzada , puede realizar una conmutación por error a otra región; Específicamente, puede promover una réplica a una instancia independiente (en cuyo caso, las réplicas existentes no considerarían esa instancia como primaria).
Para obtener más información sobre cómo funciona la replicación, consulte Replicación en Cloud SQL .
Antes de empezar
Si está creando la primera réplica para esta instancia, asegúrese de que la instancia cumpla con los requisitos para las instancias primarias. Aprende más .
Crear una réplica de lectura
Los pasos para crear una réplica de lectura están a continuación.
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Encuentre la instancia para la que desea crear una réplica y luego abra el menú
more actions
junto al listado. - Seleccione Crear réplica de lectura .
Si no ve esa opción, entonces la instancia es una réplica; No puedes crear una réplica de una réplica.
- Si la instancia tenía copias de seguridad y registro binario habilitado, continúe con el siguiente paso. De lo contrario, seleccione automatizar copias de seguridad y habilite el registro binario , haga clic en Continuar y luego haga clic en Guardar y reiniciar para reiniciar la instancia.
Habilitar el registro binario hace que la instancia se reinicie.
En la sección Personalizar su instancia de la página, actualice la configuración de su réplica. Comience haciendo clic en Mostrar opciones de configuración para mostrar los grupos de configuraciones. Luego, expanda los grupos deseados para revisar y personalizar la configuración. Un resumen de todas las opciones que selecciona aparece a la derecha. Personalizar estas configuraciones es opcional. Los valores predeterminados se asignan en todos los casos donde no se realizan personalizaciones.
Para obtener más detalles sobre cada configuración, consulte la página Configuración de Instance .
Por ejemplo, para permitir otro Google Cloud Servicios, como BigQuery, para acceder a los datos en la nube SQL y hacer consultas contra estos datos a través de una conexión interna, expandir el grupo de conexiones y luego anular la selección de la casilla de verificación Pública IP .
- Haga clic en Crear réplica .
Cloud SQL crea una copia de seguridad, si es necesario, y crea la réplica. Te devuelven a la página de instancia para la primaria.
nube g
- Verifique el estado de la instancia primaria:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Si la propiedad
databaseReplicationEnabled
estrue
, la instancia es una réplica; No puede crear una réplica de una réplica. - Si la propiedad
enabled
enbackupConfiguration
esfalse
, habilite las copias de seguridad para la instancia primaria ahora: El parámetro degcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time=>HH:MM
backup-start-time
se especifica en tiempo de 24 horas, en la zona horaria de UTC ± 00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad. - Si la propiedad
binaryLogEnabled
esfalse
, habilite los registros binarios en la instancia primaria: Habilitar registros binarios hace que la instancia se reinicie.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
Puede especificar un tamaño de nivel diferente utilizando el parámetro
--tier
, si es necesario. Si está creando una réplica a partir de una instancia primaria para MySQL 8.4 y más tarde, y la edición SQL Cloud para la instancia es Enterprise o es Enterprise Plus, entonces no tiene que especificar un valor para este parámetro. La réplica hereda el tipo de máquina de la instancia primaria.Puede especificar una región diferente utilizando el parámetro
--region
.Puede agregar más parámetros para otras configuraciones de instancias. Para obtener más información, vea las instancias de GCLOUD SQL Create .
Si la instancia primaria tiene solo una dirección IP interna y desea permitir que otros Google Cloud Servicios, como BigQuery, para acceder a los datos en la nube SQL y hacer consultas contra estos datos a través de una conexión interna, luego agregue el parámetro
--enable-google-private-path
al comando.Debe crear la réplica en la misma red VPC que la instancia principal. También puede especificar un
allocated-ip-range-name
en esa red VPC. Si no se especifica un rango, la réplica se crea en un rango aleatorio.
- El registro binario es compatible con instancias de réplicas de lectura (MySQL 5.7 y luego solo. No es compatible con las réplicas de conmutación por error Legacy HA). Habilite el registro binario en una réplica con el mismo comando
gcloud CLI
, utilizando el nombre de instancia de la réplica en lugar del nombre de la instancia de la primaria. La durabilidad de registro binario en la instancia de réplica (pero no en la primaria) se puede configurar con el indicadorgcloud sql instances patch REPLICA_INSTANCE_NAME \ --enable-bin-log
sync_binlog
, que controla con qué frecuencia el servidor MySQL sincroniza el registro binario al disco.Las copias de seguridad no se pueden habilitar en instancias de réplicas, pero el registro binario se puede habilitar en una réplica incluso cuando las copias de seguridad están deshabilitadas, a diferencia de la primaria.
El período de retención de Binlog en instancias de réplicas se establece automáticamente en un día, a diferencia de los siete días en instancias principales.
Terraformar
Para crear una réplica de lectura, use el recurso Terraform .
Aplicar los cambios
Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.
Preparar Cloud Shell
- Inicie Cloud Shell .
Establecer el valor predeterminado Google Cloud Proyecto donde desea aplicar sus 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 establece 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 , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión
.tf
; por ejemplo,main.tf
En este tutorial, el archivo se denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.
Copie el código de muestra en el
main.tf
recién creado.Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
terraform init
Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción
-upgrade
:terraform init -upgrade
Aplicar los cambios
- Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
terraform plan
Realice correcciones en la configuración según sea necesario.
- Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el indicador:terraform apply
Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"
- Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.
Eliminar los cambios
Para eliminar sus cambios, haga lo siguiente:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform destroy
REST versión 1
- Obtenga la configuración de copia de seguridad actual
Use el método
get
del recurso de instancias para devolver la versión de la base de datos y la configuración de copia de seguridad actual para la primaria.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verifique que los campos de replicación estén establecidos
Si
enabled
opointInTimeEnabled
esfalse
, use el métodopatch
del recurso de instancias para habilitarlos a ambos. En la solicitud, especifique cualquier propiedad de la configuración de copia de seguridad que desee cambiar.Para habilitar las copias de seguridad, establezca
enabled
paratrue
y lastartTime
a una hora del día en formatoHH:MM
. El parámetro destartTime
se especifica en tiempo de 24 horas, en la zona horaria de UTC ± 00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad.Para habilitar la recuperación de punto en el tiempo, establezca
pointInTimeEnabled
atrue
.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica primaria o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Crea la réplica de lectura
Use el método
insert
del recurso de instancias para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la primaria. Si la instancia primaria usa una dirección IP interna, puede especificar unallocatedIpRange
de la misma manera que cuando crea una instancia primaria . Si no se especifica un rango, la réplica se crea en un rango aleatorio. Para una réplica de lectura de región cruzada, especifique una región que no sea la región de la instancia primaria.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : cadena de versión enum (por ejemplo, mysql_8_0)
- primary-instance-name : el nombre de la instancia principal
- primary-instance-region : la región de la instancia primaria
- replica-region : la región de la instancia de réplica
- replica-name : el nombre de la instancia de réplica
- machine-type : cadena enum del tipo de máquina. Por ejemplo: "DB-Custom-1-3840"
- private-network : la red autorizada que está agregando o seleccionando 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
- Obtenga la configuración de copia de seguridad actual
Use el método
get
del recurso de instancias para devolver la versión de la base de datos y la configuración de copia de seguridad actual para el maestro.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verifique que los campos de replicación estén establecidos
Si
enabled
obinaryLogEnabled
esfalse
en la instancia primaria, use el métodopatch
del recurso de instancias para habilitarlos a ambos. En la solicitud, especifique cualquier propiedad de la configuración de copia de seguridad que desee cambiar.Para habilitar las copias de seguridad, establezca
enabled
paratrue
y lastartTime
a una hora del día en formatoHH:MM
. El parámetro destartTime
se especifica en tiempo de 24 horas, en la zona horaria de UTC ± 00, y especifica el inicio de una ventana de copia de seguridad de 4 horas. Las copias de seguridad pueden comenzar en cualquier momento durante la ventana de copia de seguridad.Para habilitar la recuperación de punto en el tiempo, establezca
El registro binario es compatible con instancias de réplica de lectura (MySQL 5.7 y más tarde solo). Habilite el registro binario en una réplica con la misma API, utilizando la ID de instancia de la réplica en lugar de la ID de instancia de la primaria. La durabilidad de registro binario en la instancia de réplica (pero no en la primaria) se puede configurar con el indicadorbinaryLogEnabled
entrue
en la instancia primaria.sync_binlog
, que controla con qué frecuencia el servidor MySQL sincroniza el registro binario al disco. Las copias de seguridad no se pueden habilitar en instancias de réplicas, pero el registro binario se puede habilitar en una réplica incluso cuando las copias de seguridad están deshabilitadas, a diferencia de la primaria.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : el nombre de la instancia de réplica primaria o de lectura que está configurando para alta disponibilidad
- START_TIME : la hora (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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Crea la réplica de lectura
Use el método
insert
del recurso de instancias para crear la réplica de lectura. La propiedaddatabaseVersion
debe ser la misma que la primaria. Si la instancia primaria usa una dirección IP interna, puede especificar unallocatedIpRange
de la misma manera que cuando crea una instancia primaria . Para una réplica de lectura de región cruzada, especifique una región que no sea la región de la instancia primaria.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : cadena de versión enum (por ejemplo, mysql_8_0)
- primary-instance-name : el nombre de la instancia principal
- primary-instance-region : la región de la instancia primaria
- replica-region : la región de la instancia de réplica
- replica-name : el nombre de la instancia de réplica
- machine-type : cadena enum del tipo de máquina. Por ejemplo: "DB-Custom-1-3840"
- private-network : la red autorizada que está agregando o seleccionando 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Cree una réplica de lectura de una instancia con el servicio privado Connect habilitado
Para crear una réplica de lectura de una instancia con el servicio privado Connect habilitado, use GCLOUD CLI o la API. Puede crear esta réplica en la misma región o en una región diferente de la instancia primaria ( réplica de lectura de región cruzada ).
La réplica de lectura no puede replicarse de una instancia con un tipo de conectividad diferente. Por ejemplo, una instancia con servicio privado Connect habilitado solo puede replicarse desde otra instancia de servicio privado Connect. Tampoco puede replicarse desde una instancia que admite conexiones IP externas o desde una instancia configurada con acceso a servicios privados .
nube g
Para crear una réplica de lectura de una instancia, use 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
Realice las siguientes sustituciones:
- REPLICA_INSTANCE_NAME : el nombre de la instancia de réplica.
- PRIMARY_INSTANCE_NAME : el nombre de la instancia primaria.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto que contiene la instancia.
- REGION_NAME : el nombre de la región para la instancia de réplica.
ALLOWED_PROJECTS : una lista de ID o números de proyecto permitidos, separados por comas. Si un proyecto no está contenido en esta lista, entonces no puede usarlo para crear una instancia y habilitar el servicio privado Connect para ella.
Cloud SQL no copia los proyectos permitidos para la instancia primaria a la réplica. Para cada réplica, debe crear un punto final de servicio privado Connect . Si está utilizando los conectores de lenguaje Cloud SQL Auth o Language SQL , cree una zona DNS y un registro DNS para las réplicas.
- AVAILABILITY_TYPE : habilite una alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilite la alta disponibilidad y se recomienda para instancias de producción. La instancia falla a otra zona dentro de su región seleccionada. -
ZONAL
: no proporcione capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar una alta disponibilidad para instancias, consulte Configurar una instancia existente para obtener una alta disponibilidad y desactivar la alta disponibilidad para una instancia .
-
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia primaria.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto 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 : habilite una alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilite la alta disponibilidad y se recomienda para instancias de producción. La instancia falla a otra zona dentro de su región seleccionada. -
ZONAL
: no proporcione capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar una alta disponibilidad para instancias, consulte Configurar una instancia existente para obtener una alta disponibilidad y desactivar la alta disponibilidad para una instancia .
-
ALLOWED_PROJECTS : una lista de ID o números de proyecto permitidos, separados por comas. Si un proyecto no está contenido en esta lista, entonces no puede usarlo para crear una instancia y habilitar el servicio privado Connect para ella.
Cloud SQL no copia los proyectos permitidos para la instancia primaria a la réplica. Para cada réplica, debe crear un punto final de servicio privado Connect . Si está utilizando los conectores de lenguaje Cloud SQL Auth o Cloud SQL SQL , debe crear un registro DNS Zone y 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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 utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : el nombre de la instancia primaria.
- PROJECT_ID : el ID o número de proyecto del Google Cloud Proyecto 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 : habilite una alta disponibilidad para la instancia. Para este parámetro, especifique uno de los siguientes valores:
-
REGIONAL
: habilite la alta disponibilidad y se recomienda para instancias de producción. La instancia falla a otra zona dentro de su región seleccionada. -
ZONAL
: no proporcione capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y eliminar una alta disponibilidad para instancias, consulte Configurar una instancia existente para obtener una alta disponibilidad y desactivar la alta disponibilidad para una instancia .
-
ALLOWED_PROJECTS : una lista de ID o números de proyecto permitidos, separados por comas. Si un proyecto no está contenido en esta lista, entonces no puede usarlo para crear una instancia y habilitar el servicio privado Connect para ella.
Cloud SQL no copia los proyectos permitidos para la instancia primaria a la réplica. Para cada réplica, debe crear un punto final de servicio privado Connect . Si está utilizando los conectores de lenguaje Cloud SQL Auth o Cloud SQL SQL , debe crear un registro DNS Zone y 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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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" }
Configurar replicas de lectura para la autenticación de la base de datos IAM
Leer las réplicas no tienen el indicadorcloudsql_iam_authentication
habilitado automáticamente cuando está habilitado en la instancia principal.Para configurar una réplica de lectura para la autenticación de la base de datos IAM:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- En el mosaico de configuración, busque el indicador
cloudsql_iam_authentication
. Si la bandera no está en la lista, habilitar la bandera en la réplica de lectura es innecesario. Si la bandera está en la lista, debe habilitar la bandera en la réplica de lectura. Si necesita habilitar la bandera en la réplica de lectura, continúe con el siguiente paso. - Seleccione Replicas en el menú de navegación SQL.
- Haga clic en el nombre de la réplica que desea editar.
- Haga clic en Editar .
- En la sección Opciones de configuración , expandir los indicadores .
- Seleccione + Agregar elemento.
- Ingrese
cloudsql_iam_authentication
para el nombre del indicador. Asegúrese de que ON esté seleccionado para esta bandera. - Haga clic en Guardar .
Crear réplicas en cascada
Esta sección describe cómo crear y administrar réplicas en cascada.
Para obtener información sobre cómo funcionan las réplicas en cascada, consulte las réplicas en cascada .
Pasos para crear una réplica en cascada
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para MySQL 5.7 o posterior, habilite la replicación .
- Haga clic en la pestaña Replicas para la réplica que actuará como padre para la réplica que desea crear.
- Haga clic en Crear réplica .
- En la página Crear réplica de lectura , actualice el ID de instancia y cualquier otra opción de configuración, incluidos el nombre, la región y la zona.
- Haga clic en Crear .
Cloud SQL crea una réplica. Te devuelven a la página de instancia para la réplica principal.
- Siga los pasos 4-6 para cada nueva réplica en cascada que desea crear.
nube g
- Si está utilizando MySQL versión 5.7 o posterior, habilite binlogs para la primaria de la nueva réplica:
Reemplace PARENT_REPLICA_NAME con el nombre de la réplica principal.gcloud sql instances patch --enable-bin-log PARENT_REPLICA_NAME
- Cree la nueva réplica especificando su réplica principal como la instancia principal utilizando el indicador
--master-instance-name
: - REPLICA_NAME : la identificación única para la réplica que está creando
- PARENT_REPLICA_NAME : el nombre de la réplica principal
- Después de crear la réplica en cascada, puede ver que los cambios realizados en la instancia primaria se replican a través de todas las réplicas en la cadena de réplicas en cascada.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
rizo
- Si está utilizando MySQL versión 5.7 o posterior, habilite el registro binario:
Para habilitar el registro binario, guarde el siguiente JSON en un archivo llamado request.json, luego invoque el comando curl para habilitar el registro binario.{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- Para crear una réplica en la réplica principal, edite la siguiente muestra del código JSON y guárdela en un archivo llamado
request.json
:{ "masterInstanceName": "PARENT_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Ejecute 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
Asunto | Solución de problemas |
---|---|
Leer réplica no comenzó a replicar en la creación. | Probablemente haya un error más específico en los archivos de registro. Inspeccione los registros de registro en la nube para encontrar el error real. |
No se puede crear la réplica de lectura: error de FlagValue inválido. | Una de las banderas en la solicitud no es válida. Podría ser una bandera que proporcionó explícitamente o una que se estableció en un valor predeterminado. Primero, verifique que el valor del indicador Si el indicador |
No se puede crear la réplica de lectura - error desconocido. | Probablemente haya un error más específico en los archivos de registro. Inspeccione los registros de registro en la nube para encontrar el error real. Si el error es: |
El disco está lleno. | El tamaño del disco de instancia principal puede llenarse durante la creación de réplicas. Edite la instancia principal para actualizarlo a un tamaño de disco más grande. |
La instancia de réplica está usando demasiada memoria. | La réplica utiliza la memoria temporal para almacenar en caché las operaciones de lectura a menudo solicitadas, lo que puede llevarla a usar más memoria que la instancia principal. Reinicie la instancia de réplica para recuperar el espacio de memoria temporal. |
La replicación se detuvo. | Se alcanzó el límite de almacenamiento máximo y el aumento de almacenamiento automático no está habilitado. Edite la instancia para habilitar |
El retraso de replicación es consistentemente alto. | La carga de escritura es demasiado alta para que la réplica maneje. El retraso de la replicación tiene lugar cuando el hilo SQL en una réplica no puede mantenerse al día con el hilo IO. Algunos tipos de consultas o cargas de trabajo pueden causar retraso de replicación alta o permanente para un esquema dado. Algunas de las causas típicas del retraso de replicación son:
Algunas posibles soluciones incluyen:
|
Replication lag suddenly spikes. | This is caused by long-running transaction(s). When a transaction (single statement or multi-statements) commits on the source instance, the start time of the transaction is recorded in the binary log. When the replica receives this binlog event, it compares that timestamp with the current timestamp to calculate replication lag. Hence, a long-running transaction on the source would result in an immediate large replication lag on the replica. If the amount of row changes in the transaction is large, the replica would also spend a long time to execute it. During the time, replication lag is increasing. Once the replica finishes this transaction, the catch up period would depend on the write workload on the source and the replica's processing speed. To avoid a long transaction, some possible solutions include:
|
Changing parallel replication flags results in an error. | An incorrect value is set for one of or more of these flags. On the primary instance that's displaying the error message, set the parallel replication flags:
|
Replica creation fails with timeout. | Long-running uncommitted transactions on the primary instance can cause read replica creation to fail. Recreate the replica after stopping all running queries. |
¿Qué sigue?
- Learn how to manage replicas .
- Learn about cross-region replicas .
This page describes how to create a read replica for a Cloud SQL instance.
A read replica is a copy of the primary instance that reflects changes to the primary in almost real time, in normal circumstances. You can use a read replica to offload read requests or analytics traffic from the primary instance.
Additionally, for disaster recovery, you can perform a regional migration. If a replica is a cross-region replica , you can perform a failover to another region; specifically, you can promote a replica to a standalone instance (in which case, existing replicas would not consider that instance as primary).
For more information about how replication works, see Replication in Cloud SQL .
Antes de empezar
If you are creating the first replica for this instance, ensure that the instance meets the requirements for primary instances. Learn more .
Create a read replica
The steps for creating a read replica are below.
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Find the instance for which you want to create a replica, and then open the
more actions
menu next to the listing. - Select Create read replica .
If you don't see that choice, then the instance is a replica; you can't create a replica of a replica.
- If the instance had backups and binary logging enabled, continue with the next step. Otherwise, select Automate backups and Enable binary logging , click Continue , and then click Save and restart to restart the instance.
Enabling binary logging causes the instance to be restarted.
In the Customize your instance section of the page, update settings for your replica. Begin by clicking Show configuration options to display the groups of settings. Then, expand the desired groups to review and customize the settings. A Summary of all the options you select appears on the right. Customizing these settings is optional. Defaults are assigned in every case where no customizations are made.
For more details about each setting, see the About instance settings page.
For example, to allow other Google Cloud services, such as BigQuery, to access data in Cloud SQL and make queries against this data over an internal connection, expand the Connections group, and then deselect the Public IP check box.
- Click Create replica .
Cloud SQL creates a backup, if needed, and creates the replica. You are returned to the instance page for the primary.
nube g
- Check the status of the primary instance:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
If the
databaseReplicationEnabled
property istrue
, the instance is a replica; you cannot create a replica of a replica. - If the
enabled
property underbackupConfiguration
isfalse
, enable backups for the primary instance now: Thegcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time=>HH:MM
backup-start-time
parameter is specified in 24-hour time, in the UTC±00 time zone, and specifies the start of a 4-hour backup window. Backups can start any time during the backup window. - If the
binaryLogEnabled
property isfalse
, enable binary logs on the primary instance: Enabling binary logs causes the instance to be restarted.gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
- Create the replica:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME
You can specify a different tier size using the
--tier
parameter, if needed. If you're creating a replica from a primary instance for MySQL 8.4 and later, and the Cloud SQL edition for the instance is either Enterprise or is Enterprise Plus, then you don't have to specify a value for this parameter. The replica inherits the machine type from the primary instance.You can specify a different region using the
--region
parameter.You can add more parameters for other instance settings. To learn more, see gcloud sql instances create .
If the primary instance has an internal IP address only, and you want to allow other Google Cloud services, such as BigQuery, to access data in Cloud SQL and make queries against this data over an internal connection, then add the
--enable-google-private-path
parameter to the command.You must create the replica in the same VPC network as the primary instance. You can also specify an
allocated-ip-range-name
in that VPC network. If no range is specified, the replica is created in a random range.
- Binary logging is supported on read replica instances (MySQL 5.7 and later only. Not supported on legacy HA failover replicas). Enable binary logging on a replica with the same
gcloud CLI
command, using the replica's instance name instead of the primary's instance name. Binary logging durability on the replica (but not on the primary) instance can be set with thegcloud sql instances patch REPLICA_INSTANCE_NAME \ --enable-bin-log
sync_binlog
flag, which controls how often the MySQL server synchronizes the binary log to disk.Backups cannot be enabled on replica instances, but binary logging can be enabled on a replica even when backups are disabled, unlike the primary.
The binlog retention period on replica instances is automatically set to one day, unlike seven days on primary instances.
Terraformar
To create a read replica, use Terraform resource .
Aplicar los cambios
Para aplicar su configuración de Terraform en un Google Cloud proyecto, complete los pasos de las siguientes secciones.
Preparar Cloud Shell
- Inicie Cloud Shell .
Set the default Google Cloud Proyecto donde desea aplicar sus 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 establece 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 , cree un directorio y un nuevo archivo dentro de él. El nombre del archivo debe tener la extensión
.tf
; por ejemplo,main.tf
En este tutorial, el archivo se denominamain.tf
mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Si está siguiendo un tutorial, puede copiar el código de muestra en cada sección o paso.
Copie el código de muestra en el
main.tf
recién creado.Opcionalmente, copie el código de GitHub. Esto se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revise y modifique los parámetros de muestra para aplicarlos a su entorno.
- Guarde sus cambios.
- Inicialice Terraform. Solo necesita hacerlo una vez por directorio.
terraform init
Opcionalmente, para utilizar la última versión del proveedor de Google, incluya la opción
-upgrade
:terraform init -upgrade
Aplicar los cambios
- Revise la configuración y verifique que los recursos que Terraform va a crear o actualizar coincidan con sus expectativas:
terraform plan
Realice correcciones en la configuración según sea necesario.
- Aplique la configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el indicador:terraform apply
Espere hasta que Terraform muestre el mensaje "¡Aplicación completada!"
- Abre tu Google Cloud proyecto para ver los resultados. En el Google Cloud consola, navegue a sus recursos en la interfaz de usuario para asegurarse de que Terraform los haya creado o actualizado.
Eliminar los cambios
Para eliminar sus cambios, haga lo siguiente:
- Para deshabilitar la protección contra eliminación, en el archivo de configuración de Terraform configure el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Aplique la configuración actualizada de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform apply
Elimine los recursos aplicados previamente con su configuración de Terraform ejecutando el siguiente comando e ingresando
yes
en el mensaje:terraform destroy
REST versión 1
- Get the current backup configuration
Use the
get
method of the instances resource to return the database version and current backup configuration for the primary.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : The name of the primary instance
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/primary-instance-name
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verify that the replication fields are set
If either
enabled
orpointInTimeEnabled
arefalse
, use thepatch
method of the instances resource to enable them both. In the request, specify any properties of the backup configuration that you wish to change.To enable backups, set
enabled
totrue
and thestartTime
to a time of day inHH:MM
format. ThestartTime
parameter is specified in 24-hour time, in the UTC±00 time zone, and specifies the start of a 4-hour backup window. Backups can start any time during the backup window.To enable point-in-time recovery, set
pointInTimeEnabled
totrue
.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : the name of the primary or read replica instance that you're configuring for high availability
- START_TIME : the time (in hours and minutes)
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Create the read replica
Use the
insert
method of the instances resource to create the read replica. ThedatabaseVersion
property must be the same as the primary. If the primary instance uses an internal IP address, you can specify anallocatedIpRange
the same way as when you create a primary instance . If no range is specified, the replica is created in a random range. For a cross-region read replica, specify a region other than the primary instance's region.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : Enum version string (for example, MYSQL_8_0)
- primary-instance-name : The name of the primary instance
- primary-instance-region : The region of the primary instance
- replica-region : The region of the replica instance
- replica-name : The name of the replica instance
- machine-type : Enum string of the machine type. For example: "db-custom-1-3840"
- private-network : The authorized network that you're adding or selecting to create a private connection.
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
REST v1beta4
- Get the current backup configuration
Use the
get
method of the instances resource to return the database version and current backup configuration for the master.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- primary-instance-name : The name of the primary instance
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/primary-instance-name
Para enviar su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Verify that the replication fields are set
If either
enabled
orbinaryLogEnabled
arefalse
on the primary instance, use thepatch
method of the instances resource to enable them both. In the request, specify any properties of the backup configuration that you want to change.To enable backups, set
enabled
totrue
and thestartTime
to a time of day inHH:MM
format. ThestartTime
parameter is specified in 24-hour time, in the UTC±00 time zone, and specifies the start of a 4-hour backup window. Backups can start any time during the backup window.To enable point-in-time recovery, set
Binary logging is supported on read replica instances (MySQL 5.7 and later only). Enable binary logging on a replica with the same API, using the replica's instance ID instead of the primary's instance ID. Binary logging durability on the replica (but not on the primary) instance can be set with thebinaryLogEnabled
totrue
on the primary instance.sync_binlog
flag, which controls how often the MySQL server synchronizes the binary log to disk. Backups cannot be enabled on replica instances, but binary logging can be enabled on a replica even when backups are disabled, unlike the primary.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PROJECT_ID : el ID o número de proyecto del Google Cloud proyecto que contiene la instancia
- INSTANCE_NAME : the name of the primary or read replica instance that you're configuring for high availability
- START_TIME : the time (in hours and minutes)
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
- Create the read replica
Use the
insert
method of the instances resource to create the read replica. ThedatabaseVersion
property must be the same as the primary. If the primary instance uses an internal IP address, you can specify anallocatedIpRange
the same way as when you create a primary instance . For a cross-region read replica, specify a region other than the primary instance's region.Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- project-id : El ID del proyecto
- database-version : Enum version string (for example, MYSQL_8_0)
- primary-instance-name : The name of the primary instance
- primary-instance-region : The region of the primary instance
- replica-region : The region of the replica instance
- replica-name : The name of the replica instance
- machine-type : Enum string of the machine type. For example: "db-custom-1-3840"
- private-network : The authorized network that you're adding or selecting to create a private connection.
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
Create a read replica of an instance with Private Service Connect enabled
To create a read replica of an instance with Private Service Connect enabled, use gcloud CLI or the API. You can create this replica in either the same region or in a different region from the primary instance ( cross-region read replica ).
The read replica can't replicate from an instance with a different connectivity type. For example, an instance with Private Service Connect enabled can replicate only from another Private Service Connect instance. It also can't replicate from an instance that supports external IP connections or from an instance that's configured with private services access .
nube g
To create a read replica of an instance, use the gcloud sql instances create
command:
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
Realice las siguientes sustituciones:
- REPLICA_INSTANCE_NAME : the name of the replica instance.
- PRIMARY_INSTANCE_NAME : the name of the primary instance.
- PROJECT_ID : el ID o número de proyecto del Google Cloud project that contains the instance.
- REGION_NAME : the region name for the replica instance.
ALLOWED_PROJECTS : a list of allowed project IDs or numbers, separated by commas. If a project isn't contained in this list, then you can't use it to create an instance and enable Private Service Connect for it.
Cloud SQL doesn't copy the allowed projects for the primary instance over to the replica. For each replica, you must create a Private Service Connect endpoint . If you're using the Cloud SQL Auth Proxy or Cloud SQL Language Connectors , then create a DNS zone and DNS record for the replicas.
- AVAILABILITY_TYPE : enable high availability for the instance. For this parameter, specify one of the following values:
-
REGIONAL
: enable high availability and is recommended for production instances. The instance fails over to another zone within your selected region. -
ZONAL
: provide no failover capability. This is the default value.
For more information about setting and removing high availability for instances, see Configure an existing instance for high availability and Deactivate high availability for an instance .
-
REST versión 1
Antes de utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : the name of the primary instance.
- PROJECT_ID : el ID o número de proyecto del Google Cloud project that contains the instance.
- REPLICA_INSTANCE_NAME : the name of the replica instance.
- REGION_NAME : the region name for the replica instance.
- MACHINE_TYPE : the machine type for the instance.
- AVAILABILITY_TYPE : enable high availability for the instance. For this parameter, specify one of the following values:
-
REGIONAL
: enable high availability and is recommended for production instances. The instance fails over to another zone within your selected region. -
ZONAL
: provide no failover capability. This is the default value.
For more information about setting and removing high availability for instances, see Configure an existing instance for high availability and Deactivate high availability for an instance .
-
ALLOWED_PROJECTS : a list of allowed project IDs or numbers, separated by commas. If a project isn't contained in this list, then you can't use it to create an instance and enable Private Service Connect for it.
Cloud SQL doesn't copy the allowed projects for the primary instance over to the replica. For each replica, you must create a Private Service Connect endpoint . If you're using the Cloud SQL Auth proxy or Cloud SQL Language Connectors , then you must create a DNS zone and DNS record for the replicas.
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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 utilizar cualquiera de los datos solicitados, realice las siguientes sustituciones:
- PRIMARY_INSTANCE_NAME : the name of the primary instance.
- PROJECT_ID : el ID o número de proyecto del Google Cloud project that contains the instance.
- REPLICA_INSTANCE_NAME : the name of the replica instance.
- REGION_NAME : the region name for the replica instance.
- MACHINE_TYPE : the machine type for the instance.
- AVAILABILITY_TYPE : enable high availability for the instance. For this parameter, specify one of the following values:
-
REGIONAL
: enable high availability and is recommended for production instances. The instance fails over to another zone within your selected region. -
ZONAL
: provide no failover capability. This is the default value.
For more information about setting and removing high availability for instances, see Configure an existing instance for high availability and Deactivate high availability for an instance .
-
ALLOWED_PROJECTS : a list of allowed project IDs or numbers, separated by commas. If a project isn't contained in this list, then you can't use it to create an instance and enable Private Service Connect for it.
Cloud SQL doesn't copy the allowed projects for the primary instance over to the replica. For each replica, you must create a Private Service Connect endpoint . If you're using the Cloud SQL Auth proxy or Cloud SQL Language Connectors , then you must create a DNS zone and DNS record for the replicas.
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 su solicitud, expanda una de estas opciones:
Debería recibir una respuesta JSON similar a la siguiente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "[email protected]", "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" }
Configure read replicas for IAM database authentication
Read replicas do not have thecloudsql_iam_authentication
flag enabled automatically when it is enabled on the primary instance.To configure a read replica for IAM database authentication:
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
- In the Configuration tile, look for the
cloudsql_iam_authentication
flag. If the flag isn't on the list, enabling the flag in the read replica is unnecessary. If the flag is on the list, you must enable the flag on the read replica. If you need to enable the flag on the read replica, continue with the next step.. - Select Replicas from the SQL navigation menu.
- Click the name of the replica you want to edit.
- Haga clic en Editar .
- In the Configuration options section, expand Flags .
- Select + Add item.
- Enter
cloudsql_iam_authentication
for the flag name. Make sure that On is selected for this flag. - Haga clic en Guardar .
Create cascading replicas
This section describes how to create and manage cascading replicas.
For information about how cascading replicas work, see Cascading replicas .
Steps to create a cascading replica
Consola
En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .
- For MySQL 5.7 or later, enable replication .
- Click the Replicas tab for the replica that will act as a parent for the replica that you want to create.
- Click Create replica .
- On the Create read replica page, update the instance ID, and any other configuration options, including the name, region, and zone.
- Haga clic en Crear .
Cloud SQL creates a replica. You're returned to the instance page for the parent replica.
- Follow steps 4-6 for each new cascading replica that you want to create.
nube g
- If you're using MySQL version 5.7 or later, then enable binlogs for the primary of the new replica:
Replace PARENT_REPLICA_NAME with the name of the parent replica.gcloud sql instances patch --enable-bin-log PARENT_REPLICA_NAME
- Create the new replica by specifying your primary replica as the primary instance using the
--master-instance-name
flag: - REPLICA_NAME : the unique ID for the replica that you are creating
- PARENT_REPLICA_NAME : the name of the parent replica
- After you create the cascading replica, you can see that the changes made to the primary instance are replicated through all the replicas in the cascading replicas chain.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PARENT_REPLICA_NAME \
rizo
- If you are using MySQL version 5.7 or later, enable binary logging:
To enable binary logging, save the following JSON in a file named request.JSON, then invoke the curl command to enable binary logging.{ "settings": { "backupConfiguration": { "enabled": false, "binaryLogEnabled": true } } }
- To create a replica under the parent replica, edit the following JSON code sample, and save it to a file called
request.json
:{ "masterInstanceName": "PARENT_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Ejecute 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
Asunto | Solución de problemas |
---|---|
Read replica didn't start replicating on creation. | There's probably a more specific error in the log files. Inspect the logs in Cloud Logging to find the actual error. |
Unable to create read replica - invalidFlagValue error. | One of the flags in the request is invalid. It could be a flag you provided explicitly or one that was set to a default value. First, check that the value of the If the |
Unable to create read replica - unknown error. | There's probably a more specific error in the log files. Inspect the logs in Cloud Logging to find the actual error. If the error is: |
Disk is full. | The primary instance disk size can become full during replica creation. Edit the primary instance to upgrade it to a larger disk size. |
The replica instance is using too much memory. | The replica uses temporary memory to cache often-requested read operations, which can lead it to use more memory than the primary instance. Restart the replica instance to reclaim the temporary memory space. |
Replication stopped. | The maximum storage limit was reached and automatic storage increase isn't enabled. Edit the instance to enable |
Replication lag is consistently high. | The write load is too high for the replica to handle. Replication lag takes place when the SQL thread on a replica is unable to keep up with the IO thread. Some kinds of queries or workloads can cause temporary or permanent high replication lag for a given schema. Some of the typical causes of replication lag are:
Some possible solutions include:
|
Replication lag suddenly spikes. | This is caused by long-running transaction(s). When a transaction (single statement or multi-statements) commits on the source instance, the start time of the transaction is recorded in the binary log. When the replica receives this binlog event, it compares that timestamp with the current timestamp to calculate replication lag. Hence, a long-running transaction on the source would result in an immediate large replication lag on the replica. If the amount of row changes in the transaction is large, the replica would also spend a long time to execute it. During the time, replication lag is increasing. Once the replica finishes this transaction, the catch up period would depend on the write workload on the source and the replica's processing speed. To avoid a long transaction, some possible solutions include:
|
Changing parallel replication flags results in an error. | An incorrect value is set for one of or more of these flags. On the primary instance that's displaying the error message, set the parallel replication flags:
|
Replica creation fails with timeout. | Long-running uncommitted transactions on the primary instance can cause read replica creation to fail. Recreate the replica after stopping all running queries. |
¿Qué sigue?
- Learn how to manage replicas .
- Learn about cross-region replicas .