Crea réplicas de lectura

En esta página, se describe cómo crear una réplica de lectura de una instancia de Cloud SQL.

Una réplica de lectura es una copia de la instancia principal que refleja los cambios de esta última casi en tiempo real, en circunstancias normales. Puedes usar una réplica de lectura para derivar las solicitudes de lectura o el tráfico de estadísticas de la instancia principal.

Además, para la recuperación ante desastres, puedes realizar una migración regional. Si una réplica es una réplica entre regiones, puedes realizar una conmutación por error a otra región. En particular, puedes ascender una réplica a una instancia independiente (en cuyo caso, las réplicas existentes no considerarán a esa instancia como principal).

Para obtener más información sobre cómo funciona la replicación, consulta Replicación en Cloud SQL.

Antes de comenzar

Si la réplica que crearás será la primera de esta instancia, asegúrate de que la instancia cumpla los requisitos de las instancias principales. 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.

Console

  1. En Google Cloud Console, ve a la página Instancias de Cloud SQL.

    Ir a Instancias de Cloud SQL

  2. Busca la instancia para la que deseas crear una réplica y abre el menú de acciones adicionales en el extremo derecho de su listado.

    Imagen del menú de tres puntos

  3. Selecciona Crear réplica de lectura.

    Si no ves esa opción, significa que la instancia es una réplica y no puedes crear una réplica de una réplica.

  4. Haz clic en Crear.

    Volverás a la página de la instancia principal.

gcloud

Crea la réplica:

gcloud sql instances create REPLICA_NAME \
--master-instance-name=MASTER_INSTANCE_NAME
    

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 siguiente:

Soluciona 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 max_connections sea mayor o igual que el valor en el principal.

Si la marca max_connections se configuró de forma correcta, inspecciona los registros en Cloud Logging para encontrar el error real.

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 set Service Networking service account as servicenetworking.serviceAgent role on consumer project, inhabilita y vuelve a habilitar la Service Networking API. Esta acción crea la cuenta de servicio que se necesita para continuar con el proceso.

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 automatic storage increase.

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:
  • Consultas lentas en la réplica. Encuéntralas y corrígelas.
  • Las consultas como DELETE ... WHERE field < 50000000 provocan un retraso de la replicación basado en filas, ya que se acumula una gran cantidad de actualizaciones en la réplica.

Estas son algunas de las soluciones posibles:

  • Edita la instancia para aumentar el tamaño de la réplica.
  • Reduce la carga en la base de datos.
  • Indexa las tablas.
  • Identifica y corrige consultas lentas.
  • Vuelve a crear la réplica.
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?