En esta página, se describe cómo crear una réplica de lectura de una instancia de Cloud SQL.
A fin de configurar una instancia de Cloud SQL para que actúe como publicador para un suscriptor externo, consulta Configura réplicas externas.
Una réplica de lectura es una copia de la instancia principal que refleja los cambios de esta última casi en tiempo real, en circunstancias normales. Puedes usar una réplica de lectura para derivar las solicitudes de lectura o el tráfico de estadísticas de la instancia principal.
Además, para la recuperación ante desastres, puedes realizar una migración regional. Si una réplica es una réplica entre regiones, puedes realizar una conmutación por error a otra región. En particular, puedes ascender una réplica a una instancia independiente (en cuyo caso, las réplicas existentes no considerarán a esa instancia como principal).
Para obtener más información sobre cómo funciona la replicación, consulta Replicación en Cloud SQL.
Antes de comenzar
Si la réplica que crearás será la primera de esta instancia, asegúrate de que la instancia cumpla los requisitos de las instancias principales. Más información
Crea una réplica de lectura
Puedes crear un máximo de 8 réplicas de lectura por instancia principal.Los pasos para crear una réplica de lectura son los que se describen a continuación.
, no puedes crear réplicas de lectura para la instancia.Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Busca la instancia para la que deseas crear una réplica y, luego, abre el menú
more actions
junto a la lista. - Selecciona Crear réplica de lectura.
Si no ves esa opción, significa que la instancia es una réplica. No puedes crear una réplica de una réplica.
En la sección Personaliza tu instancia, actualiza la configuración de la réplica. Primero, haz clic en Mostrar opciones de configuración para mostrar los grupos de los parámetros de configuración. Luego, expande los grupos que desees para revisar y personalizar la configuración. A la derecha, aparecerá un Resumen de todas las opciones que seleccionaste. Personalizar esta configuración es opcional. Los valores predeterminados se asignan en todos los casos en los que no se realizan personalizaciones.
Para obtener más detalles sobre cada parámetro de configuración, consulta la página Acerca de la configuración de instancias.
- Haz clic en Crear réplica.
Cloud SQL crea una copia de seguridad si es necesario, y crea la réplica. Volverás a la página de la instancia principal.
gcloud
Crea la réplica:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME
Si es necesario, puedes especificar un tamaño de nivel diferente con el parámetro --tier
.
Puedes especificar una región diferente mediante el parámetro --region
.
Si la instancia principal solo tiene una dirección IP interna, agrega el parámetro --no-assign-ip
al comando.
Puedes agregar más parámetros para otras opciones de configuración de la instancia. Para obtener más información, consulta gcloud sql instances create.
Debes crear la réplica en la misma red de VPC que la instancia principal. También puedes especificar un allocated-ip-range-name
en esa red de VPC. Si no se especifica ningún rango, la réplica se crea en un rango aleatorio.
Terraform
Para crear una réplica de lectura, usa un recurso de Terraform.
REST v1beta4
Usa el método insert
del recurso de las instancias para crear la réplica de lectura. Las propiedades de la región y databaseVersion deben ser las mismas que las de la instancia principal.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto
- database-version: La string de la versión de Enum (por ejemplo, SQLSERVER_2017_ENTERPRISE)
- primary-instance-name: Es el nombre de la instancia principal.
- primary-instance-region: Es la región de la instancia principal.
- replica-region: La región de la instancia de réplica
- replica-name: El nombre de la instancia de réplica
- machine-type: La string de enumeración del tipo de máquina. Por ejemplo: “db-custom-1-3840”
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, } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Crea una réplica de lectura de una instancia con Private Service Connect habilitado
Para crear una réplica de lectura de una instancia con Private Service Connect habilitado, usa gcloud CLI o la API. Puedes crear esta réplica en la misma región o en una región diferente de la que usa la instancia principal (réplica de lectura entre regiones).
La réplica de lectura no puede replicar desde una instancia con un tipo de conectividad diferente. Por ejemplo, una instancia con Private Service Connect habilitado solo puede replicarse desde otra instancia de Private Service Connect. No se puede replicar desde una instancia que admita conexiones IP externas o desde una instancia configurada con el acceso privado a servicios.
gcloud
Para crear una réplica de lectura de una instancia, usa el comando gcloud sql instances create
:
gcloud sql instances create REPLICA_INSTANCE_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --project=PROJECT_ID \ --region=REGION_NAME \ --enable-private-service-connect \ --allowed-psc-projects=ALLOWED_PROJECTS \ --availability-type=AVAILABILITY_TYPE \ --no-assign-ip
Realiza los siguientes reemplazos:
- REPLICA_INSTANCE_NAME: el nombre de la instancia de réplica.
- PRIMARY_INSTANCE_NAME: el nombre de la instancia principal.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REGION_NAME: el nombre de la región para la instancia de réplica.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
Cloud SQL no copia los proyectos permitidos para la instancia principal en la réplica. Para cada réplica, debes crear un extremo de Private Service Connect. Si usas el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, debes crear una zona de DNS y un registro DNS para las réplicas.
- AVAILABILITY_TYPE: habilita la alta disponibilidad para la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
REST v1
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PRIMARY_INSTANCE_NAME: el nombre de la instancia principal.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REPLICA_INSTANCE_NAME: el nombre de la instancia de réplica.
- REGION_NAME: el nombre de la región para la instancia de réplica.
- MACHINE_TYPE: el tipo de máquina para la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad para la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
Cloud SQL no copia los proyectos permitidos para la instancia principal en la réplica. Para cada réplica, debes crear un extremo de Private Service Connect. Si usas el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, debes crear una zona del DNS y un registro DNS para las réplicas.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "SQLSERVER_2019_STANDARD", "name": "REPLICA_INSTANCE_NAME", "region": "REGION_NAME", "kind": "sql#instance", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "ASYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "CREATE_REPLICA", "name": "OPERATION_ID", "targetId": "REPLICA_INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PRIMARY_INSTANCE_NAME: el nombre de la instancia principal.
- PROJECT_ID: el ID o el número del proyecto de Google Cloud que contiene la instancia.
- REPLICA_INSTANCE_NAME: el nombre de la instancia de réplica.
- REGION_NAME: el nombre de la región para la instancia de réplica.
- MACHINE_TYPE: el tipo de máquina para la instancia.
- AVAILABILITY_TYPE: habilita la alta disponibilidad para la instancia. Para este parámetro, especifica uno de los siguientes valores:
REGIONAL
: habilita la alta disponibilidad y se recomienda para las instancias de producción. La instancia se conmuta por error a otra zona dentro de la región que seleccionaste.ZONAL
: no proporciona capacidad de conmutación por error. Este es el valor predeterminado.
Para obtener más información sobre cómo configurar y quitar la alta disponibilidad de las instancias, consulta las secciones Configura una instancia existente para alta disponibilidad y Desactiva la alta disponibilidad para una instancia.
ALLOWED_PROJECTS: una lista de IDs o números de proyectos permitidos, separados por comas. Si un proyecto no aparece en esta lista, no puedes usarlo para crear una instancia y habilitar Private Service Connect para dicho proyecto.
Cloud SQL no copia los proyectos permitidos para la instancia principal en la réplica. Para cada réplica, debes crear un extremo de Private Service Connect. Si usas el proxy de autenticación de Cloud SQL o los conectores de lenguaje de Cloud SQL, debes crear una zona del DNS y un registro DNS para las réplicas.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "SQLSERVER_2019_STANDARD", "name": "REPLICA_INSTANCE_NAME", "region": "REGION_NAME", "kind": "sql#instance", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "ipConfiguration": { "ipv4Enabled": false, "pscConfig": { "allowedConsumerProjects": [ALLOWED_PROJECTS], "pscEnabled": true } }, "kind": "sql#settings", "pricingPlan": "PER_USE", "replicationType": "ASYNCHRONOUS", "tier": "MACHINE_TYPE" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "CREATE_REPLICA", "name": "OPERATION_ID", "targetId": "REPLICA_INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Crea réplicas en cascada
En esta sección, se describe cómo crear y administrar réplicas en cascada.
Para obtener más información sobre cómo funcionan las réplicas en cascada, consulta Réplicas en cascada.
Antes de comenzar
La instancia principal debe tener una réplica en cascada. En la siguiente sección, se proporcionan los pasos para crear una réplica en cascada.
Pasos para crear una réplica en cascada
Cuando creas una réplica en cascada, debes crearla en una región diferente a la de la instancia principal.
Para configurar una réplica en cascada, establece la marca cascadable-replica
.
gcloud
Para crear la réplica nueva, especifica la instancia principal con la marca --master-instance-name
y la marca --cascadable-replica
:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --cascadable-replica \ --region=REGION
Reemplaza lo siguiente:
- REPLICA_NAME: el ID único de la réplica que estás creando.
- PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
- REGION: la región en la que deseas crear la réplica nueva. Esta región debe ser diferente de la región de la instancia principal.
Debes crear la réplica en la misma red de VPC que la instancia principal. También puedes especificar un nombre de rango de IP asignado en esa red de VPC. Si no se especifica ningún rango, la réplica se crea en un rango aleatorio.
Puedes agregar más parámetros para otras opciones de configuración de la instancia. Por ejemplo:
- Puedes especificar un tamaño de nivel de máquina diferente con el parámetro
--tier
. - Si la instancia principal solo tiene una dirección IP privada, agrega el parámetro
--no-assign-ip
al comando.
Para obtener más información sobre cómo agregar parámetros para la configuración de instancias, consulta gcloud sql instances create.
Después de crear la réplica en cascada, puedes crear una réplica en cascada.
curl
- Para crear una réplica en cascada en la instancia principal, edita la siguiente muestra de código JSON y guárdala en un archivo llamado
request.json
.Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: El ID del proyecto.
- DATABASE_VERSION: la string de enumeración de la versión de la base de datos. Por ejemplo,
SQLSERVER_2017_ENTERPRISE.
- PRIMARY_INSTANCE_NAME: Es 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: la string de enumeración del tipo de máquina. Por ejemplo,
db-custom-2-3840
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "DATABASE_VERSION" "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", "settingsVersion": 0, } "replicaConfiguration": { "cascadableReplica": true } }
- En la sección
replicaConfiguration
, asegúrate de que el campocascadadableReplica
esté configurado comotrue
. - Ejecuta el siguiente comando:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -d @request.json "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
Después de crear la réplica en cascada, puedes crear una réplica en cascada.
Pasos para crear una réplica en cascada
Cuando creas una réplica en cascada, debes crearla en la misma región que la réplica en cascada. Para configurar una réplica en cascada, proporciona el nombre de la réplica en cascada en el parámetro–master-instance-name
.
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Haz clic en la pestaña Réplicas de la réplica que funcionará como superior de la réplica que deseas crear.
- Haz clic en Crear réplica.
- En la página Crea réplicas de lectura, actualiza el ID de la instancia y cualquier otra opción de configuración, incluidos el nombre, la región y la zona.
- Haz clic en Crear.
Cloud SQL crea una réplica. Volverás a la página de la instancia de la réplica superior.
- Sigue los pasos 4 a 6 para cada réplica en cascada nueva que desees crear.
gcloud
- Para crear la réplica nueva, especifica la instancia de réplica en cascada en la marca
--master-instance-name
: - REPLICA_NAME: el ID único de la réplica que estás creando
- CASCADABLE_REPLICA_NAME: Es el nombre de la réplica en cascada.
- Después de crear la réplica en cascada, puedes ver que los cambios realizados en la instancia principal se replican en todas las réplicas de la cadena de réplicas en cascada.
gcloud sql instances create REPLICA_NAME \ --master-instance-name=CASCADABLE_REPLICA_NAME \
curl
- Para crear una réplica en cascada debajo de la réplica en cascada, edita la siguiente muestra de código JSON y guárdala en un archivo llamado
request.json
:{ "masterInstanceName": "CASCADABLE_REPLICA_NAME", "project": "PROJECT_ID", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", } }
- Ejecuta el siguiente comando:
curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -d @request.json "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
Solucionar problemas
Problema | Soluciona problemas |
---|---|
La réplica de lectura no comenzó a replicarse cuando se creó. | Es probable que haya un error más específico en los archivos de registro. Inspecciona los registros en Cloud Logging para encontrar el error real. |
No se puede crear una réplica de lectura: error invalidFlagValue. | Una de las marcas de la solicitud no es válida. Puede ser una marca que proporcionaste explícitamente o una que se configuró como un valor predeterminado.
Primero, comprueba que el valor de la marca Si la marca |
No se puede crear una réplica de lectura: error desconocido. | Es probable que haya un error más específico en los archivos de registro.
Inspecciona los registros en Cloud Logging para encontrar el error real.
Si el error es |
El disco está lleno. | El tamaño del disco de la instancia principal puede llenarse durante la creación de una réplica. Edita la instancia principal para actualizarla a un tamaño de disco más grande. |
La instancia de réplica usa demasiada memoria. | La réplica usa memoria temporal para almacenar en caché las operaciones de lectura solicitadas con frecuencia, lo que puede ocasionar que use más memoria que la instancia principal.
Reinicia la instancia de réplica para recuperar el espacio de memoria temporal. |
Se detuvo la replicación. | Se alcanzó el límite de almacenamiento máximo y el aumento de almacenamiento automático no está habilitado.
Edita la instancia para habilitar |
El retraso de replicación se mantiene alto. | La carga de escritura es demasiado alta para que la réplica la maneje. El retraso de la replicación se produce cuando el subproceso de SQL en una réplica no puede mantener el ritmo del subproceso de E/S. Algunos tipos de consultas o cargas de trabajo pueden causar un gran retraso de la replicación de forma temporal o permanente en un esquema determinado. Algunas de las causas típicas del retraso de la replicación son las siguientes:
Estas son algunas de las soluciones posibles:
|
La creación de la réplica falla con el tiempo de espera. | Las transacciones no confirmadas de larga duración en la instancia principal pueden generar una falla en la creación de la réplica de lectura.
Vuelve a crear la réplica después de detener todas las consultas en ejecución. |
¿Qué sigue?
- Obtén información sobre cómo administrar réplicas.
- Obtén información sobre las réplicas entre regiones.