En esta página, se describe cómo crear y administrar grupos de lectura para tus grandes cargas de trabajo de lectura.
Antes de comenzar
- Los grupos de lectura contienen copias de una instancia principal. Si aún no lo hiciste, crea una instancia principal de la edición Cloud SQL Enterprise Plus. Si bien los grupos de lectura admiten la conectividad de IP pública, para los fines de esta guía, crea una instancia principal con conectividad de IP privada (PSA). Para obtener más información sobre las instancias principales y la replicación, consulta Acerca de la replicación en Cloud SQL.
- Después de crear la instancia principal, elige una contraseña para el usuario raíz y ejecuta el siguiente comando para establecer la contraseña en la instancia principal. Guarda esta contraseña para usarla más adelante cuando te conectes al grupo de lectura.
- PROJECT: Es el nombre del proyecto en el que deseas que residan la instancia principal y el grupo de lectura.
- PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
gcloud --project=PROJECT \ sql users set-password root --host=% \ --instance=PRIMARY_INSTANCE_NAME --prompt-for-password
Realiza los siguientes reemplazos:
Crea un grupo de lectura
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando de gcloud beta sql instances create
para crear un grupo de lectura con varios nodos de grupo de lectura:
gcloud beta sql instances create READ_POOL_NAME \ --tier=TIER --edition=ENTERPRISE_PLUS \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT \ --master-instance-name=PRIMARY_INSTANCE_NAME
Realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre que deseas usar para el grupo de lectura.
- TIER: Es el tipo de máquina que deseas usar para cada nodo del grupo de lectura, como
db-perf-optimized-N-4
. - NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
. - PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal asociada al grupo de lectura, como
my-primary-instance
.
REST v1
Usa el método
insert
del recurso de las instancias para crear un grupo de lectura con varios nodos de grupo de lectura. La propiedad databaseVersion
debe ser la misma que la instancia principal.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que deseas que residan la instancia principal y el grupo de lectura.
- REGION: Es la región del grupo de lectura, como
us-east1
. La región debe ser la misma que la de la instancia principal. - TIER: Es el tipo de máquina que deseas usar para cada nodo del grupo de lectura, como
db-perf-optimized-N-4
. - PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
- READ_POOL_NAME: Es el nombre que deseas usar para el grupo de lectura, como
my-read-pool
. - DATABASE_VERSION: Es la versión de la base de datos que deseas usar.
Por ejemplo,
MYSQL_8_0_37
- NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
. - FULL_NETWORK_NAME: Es la ruta de acceso de red completa en la que deseas que resida el grupo de lectura, como
projects/vpc-host-project/global/networks/my-network-name
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT/instances
Cuerpo JSON de la solicitud:
{ "name": "READ_POOL_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT", "databaseVersion": "DATABASE_VERSION", "region": "REGION", "instanceType": "READ_POOL_INSTANCE", "nodeCount": NODE_COUNT, "settings": { "tier": "TIER", "edition": "ENTERPRISE_PLUS", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "FULL_NETWORK_NAME" } } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
insert
del recurso de las instancias para crear un grupo de lectura con varios nodos de grupo de lectura. La propiedad databaseVersion
debe ser la misma que la instancia principal.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que deseas que residan la instancia principal y el grupo de lectura.
- REGION: Es la región del grupo de lectura, como
us-east1
. La región debe ser la misma que la de la instancia principal. - TIER: Es el tipo de máquina que deseas usar para cada nodo del grupo de lectura, como
db-perf-optimized-N-4
. - PRIMARY_INSTANCE_NAME: Es el nombre de la instancia principal.
- READ_POOL_NAME: Es el nombre que deseas usar para el grupo de lectura, como
my-read-pool
. - DATABASE_VERSION: Es la versión de la base de datos que deseas usar.
Por ejemplo,
MYSQL_8_0_37
- NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
. - FULL_NETWORK_NAME: Es la ruta de acceso de red completa en la que deseas que resida el grupo de lectura, como
projects/vpc-host-project/global/networks/my-network-name
.
Método HTTP y URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances
Cuerpo JSON de la solicitud:
{ "name": "READ_POOL_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT", "databaseVersion": "DATABASE_VERSION", "region": "REGION", "instanceType": "READ_POOL_INSTANCE", "nodeCount": NODE_COUNT, "settings": { "tier": "TIER", "edition": "ENTERPRISE_PLUS", "ipConfiguration": { "ipv4Enabled": false, "privateNetwork": "FULL_NETWORK_NAME" } } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Cómo convertir una réplica de lectura en un grupo de lectura
Puedes convertir una réplica de lectura existente de la edición Cloud SQL Enterprise Plus en un grupo de lectura especificando la cantidad de nodos en el grupo. Durante este proceso de conversión, la IP de la réplica se convertirá en la IP del grupo de lectura (el extremo de lectura), por lo que los clientes existentes podrán conectarse al grupo sin necesidad de volver a configurarlo.
Los nodos del grupo de lectura recién creados tendrán el mismo tipo de máquina y la misma configuración que la réplica de lectura original. Cambiar este tipo de máquina o configuración requiere una operación independiente. Esta operación solo se admite para las réplicas de lectura zonales. Para convertir una réplica de lectura con alta disponibilidad (HA) en un grupo de lectura, primero debes convertirla en una réplica de lectura zonal.
Para obtener más información, consulta Cómo editar la configuración del grupo de lectura.
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando gcloud beta sql instances patch
para convertir una réplica de lectura y usarla con un grupo de lectura:
gcloud beta sql instances patch READ_REPLICA_NAME \ --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT
Realiza los siguientes reemplazos:
- READ_REPLICA_NAME: Es el nombre de la réplica de lectura que deseas convertir.
- NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
.
REST v1
Usa el método
patch
del recurso de las instancias para convertir una réplica de lectura en un grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- READ_REPLICA_NAME: Es el nombre de la réplica de lectura que deseas convertir, como
my-read-replica
. - NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_REPLICA_NAME
Cuerpo JSON de la solicitud:
{ "instanceType": "READ_POOL_INSTANCE", "nodeCount": NODE_COUNT }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
patch
del recurso de las instancias para convertir una réplica de lectura en un grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- READ_REPLICA_NAME: Es el nombre de la réplica de lectura que deseas convertir, como
my-read-replica
. - NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_REPLICA_NAME
Cuerpo JSON de la solicitud:
{ "instanceType": "READ_POOL_INSTANCE", "nodeCount": NODE_COUNT }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Cómo convertir un grupo de lectura en una réplica de lectura
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando gcloud beta sql instances patch
para convertir una réplica de lectura y usarla con un grupo de lectura:
gcloud beta sql instances patch READ_POOL_NAME \ --instance-type=READ_REPLICA_INSTANCE
Realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura que deseas convertir.
REST v1
Usa el método
patch
del recurso de las instancias para convertir un grupo de lectura en una réplica de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME
Cuerpo JSON de la solicitud:
{ "instanceType": "READ_REPLICA_INSTANCE" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
patch
del recurso de las instancias para convertir un grupo de lectura en una réplica de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME
Cuerpo JSON de la solicitud:
{ "instanceType": "READ_REPLICA_INSTANCE" }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Cómo ver la información del grupo de lectura
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando gcloud beta sql instances describe
para describir el grupo de lectura:
gcloud beta sql instances describe READ_POOL_NAME
Realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura que deseas describir.
Un ejemplo de respuesta con información de la dirección IP y el nodo podría ser similar al siguiente:
... connectionName: my-project:us-central1:read-pool ipAddresses: - ipAddress: 10.3.0.108 type: PRIVATE nodeCount: 2 nodes: - dnsName: c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog. gceZone: us-central1-f ipAddresses: - ipAddress: 10.3.0.112 type: PRIVATE name: read-pool-node-01 state: RUNNABLE - dnsName: 8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog. gceZone: us-central1-c ipAddresses: - ipAddress: 10.3.0.113 type: PRIVATE name: read-pool-node-02 state: RUNNABLE
REST v1
Usa el método
get
para ver los detalles del grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
get
para ver los detalles del grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ [...], "connectionName": "my-project:us-central1:read-pool", "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.108" } ], "nodeCount": 2, "nodes": [ { "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.112" } ], "name": "read-pool-node-01", "gceZone": "us-central1-f", "dnsName": "c5bdacb09ffc.j10o8yqc7pve.us-central1.sql.goog.", "state": "RUNNABLE" }, { "ipAddresses": [ { "type": "PRIVATE", "ipAddress": "10.3.0.113" } ], "name": "read-pool-node-02", "gceZone": "us-central1-c", "dnsName": "8f77c454d6b2.j10o8yqc7pve.us-central1.sql.goog.", "state": "RUNNABLE" } ] }
Cómo agregar o quitar nodos del grupo de lectura
En los siguientes pasos, se modifica la cantidad de nodos de un grupo de lectura para escalar el grupo de lectura de forma vertical. Se aplican algunas limitaciones de funcionamiento. Para obtener más información, consulta Limitaciones del grupo de lectura.
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando de gcloud beta sql instances patch
para escalar el grupo de lectura:
gcloud beta sql instances patch READ_POOL_NAME \ --node-count=NODE_COUNT
Realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura.
- NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
.
REST v1
Usa el método
patch
para escalar un grupo de lectura de forma horizontal o vertical modificando
la cantidad de nodos del grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME
Cuerpo JSON de la solicitud:
{ "nodeCount": NODE_COUNT }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
patch
para escalar un grupo de lectura de forma horizontal o vertical modificando
la cantidad de nodos del grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- NODE_COUNT: Es la cantidad de nodos del grupo de lectura que deseas incluir en el grupo de lectura. Elige cualquier número del
1
al20
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME
Cuerpo JSON de la solicitud:
{ "nodeCount": NODE_COUNT }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Editar la configuración del grupo de lectura
En los siguientes pasos, se muestra cómo editar la configuración del grupo de lectura. Para obtener información más detallada, consulta Acerca de la configuración de instancias y Edita instancias.
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando de gcloud beta sql instances patch
para escalar verticalmente el grupo de lectura, por ejemplo, modificando el tipo de máquina:
gcloud beta sql instances patch READ_POOL_NAME \ --tier=TIER
Realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura.
- TIER: Es el tipo de máquina que deseas aplicar a cada nodo del grupo de lectura, como
db-perf-optimized-N-8
.
REST v1
Usa el método
patch
para modificar la configuración del nodo del grupo de lectura.
La configuración se aplica de manera uniforme a todos los nodos del grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- TIER: Es el tipo de máquina que deseas usar para cada nodo del grupo de lectura, como
db-perf-optimized-N-4
. - READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME
Cuerpo JSON de la solicitud:
{ "settings": { "tier": "TIER" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
patch
para modificar la configuración del nodo del grupo de lectura.
La configuración se aplica de manera uniforme a todos los nodos del grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- TIER: Es el tipo de máquina que deseas usar para cada nodo del grupo de lectura, como
db-perf-optimized-N-4
. - READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME
Cuerpo JSON de la solicitud:
{ "settings": { "tier": "TIER" } }
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
Conéctate a un grupo de lectura
Hay muchas formas de conectarse a un grupo de lectura. En los siguientes pasos, se muestra una forma de conectarse a un grupo de lectura con una dirección IP privada, que consiste en crear una VM en la misma red de VPC para que actúe como fuente de conexión.
Para obtener más información sobre otras formas de configurar la conectividad a una instancia de Cloud SQL, consulta Acerca de las conexiones de Cloud SQL. Por lo general, los métodos de conexión requieren que primero obtengas la dirección IP o el nombre de conexión de la instancia, como se describe en Cómo ver la información del grupo de lectura. Los grupos de lectura admiten la mayoría de los métodos de conexión disponibles para otras instancias de Cloud SQL, con algunas limitaciones.
Si te conectas con el proxy de Cloud SQL Auth o los conectores de Cloud SQL, asegúrate de actualizar a la versión más reciente. Para la compatibilidad con el grupo de lectura, las versiones mínimas requeridas incluyen lo siguiente:
- Proxy de Cloud SQL Auth: v2.15.2
- Conector de Python de Cloud SQL: v1.18.0
- Conector de Go de Cloud SQL: v1.16.0
- Conector de Cloud SQL Node: v1.7.0
- Conector de Java de Cloud SQL: v1.24.0
Console
Para conectarte a un grupo de lectura, completa los siguientes pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
Se te redireccionará a la página Descripción general de la instancia. Haz clic en el nuevo grupo de lectura para ver los detalles, incluida su dirección IP privada. En la sección Conéctate a esta instancia, copia y guarda el Nombre de la conexión de la instancia. Elconnection name
tiene el formatoprojectID:region:instanceID
. Usarás esteconnection name
más adelante cuando inicies el proxy de Cloud SQL Auth. - Crea una VM de Compute Engine.
- Abre dos conexiones SSH a la VM de Compute Engine Estos se usan en pasos posteriores para ejecutar el proxy de autenticación de Cloud SQL y el cliente de la base de datos.
- Instala el cliente.
- Instala el proxy de Cloud SQL Auth.
- Inicia el proxy de Cloud SQL Auth.
- Conéctate a tu instancia de Cloud SQL.
Para obtener más información, consulta Conéctate a una instancia de Cloud SQL con una IP privada.
Borra un grupo de lectura
gcloud
Para obtener información sobre cómo instalar y comenzar a usar la CLI de gcloud, consulta Instala la CLI de gcloud. Para obtener información sobre cómo iniciar Cloud Shell, consulta Usa Cloud Shell.
Usa el siguiente comando de gcloud sql instances delete
para borrar un grupo de lectura:
gcloud sql instances delete READ_POOL_NAME
Realiza los siguientes reemplazos:
- READ_POOL_NAME: Es el nombre del grupo de lectura que deseas borrar.
REST v1
Usa el método
delete
para borrar un grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
REST v1beta4
Usa el método
delete
para borrar un grupo de lectura.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT: Es el nombre del proyecto en el que reside el grupo de lectura.
- READ_POOL_NAME: Es el nombre del grupo de lectura, como
my-read-pool
.
Método HTTP y URL:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación: