Criar e gerenciar pools de leitura

Esta página descreve como criar e gerenciar pools de leitura para suas grandes cargas de trabalho de leitura.

Antes de começar

  1. Os pools de leitura contêm cópias de uma instância primária. Caso ainda não tenha feito isso, crie uma instância primária do Cloud SQL Enterprise Plus Edition . Embora os pools de leitura suportem conectividade de IP público, para os fins deste guia, crie uma instância primária com conectividade de IP privado (PSA). Para obter mais informações sobre instâncias primárias e replicação, consulte Sobre replicação no Cloud SQL .
  2. Após a criação da instância primária, escolha uma senha para o usuário root e execute o seguinte comando para definir a senha na instância primária. Salve essa senha para usar posteriormente ao se conectar ao pool de leitura.
  3.     gcloud --project=PROJECT \
        sql users set-password root --host=% \
        --instance=PRIMARY_INSTANCE_NAME --prompt-for-password
      

    Faça as seguintes substituições:

    • PROJECT : o nome do projeto onde você deseja que a instância primária e o pool de leitura residam.
    • PRIMARY_INSTANCE_NAME : o nome da instância primária.

Criar um pool de leitura

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud beta sql instances create para criar um pool de leitura com vários nós de pool de leitura:

      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
    

Faça as seguintes substituições:

  • READ_POOL_NAME : o nome que você deseja usar para o pool de leitura.
  • TIER : o tipo de máquina que você deseja usar para cada nó do pool de leitura, como db-perf-optimized-N-4 .
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .
  • PRIMARY_INSTANCE_NAME : o nome da instância primária associada ao pool de leitura, como my-primary-instance .

REST v1

Use o método insert do recurso instances para criar um pool de leitura com vários nós de pool de leitura. A propriedade databaseVersion deve ser a mesma que a primária.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde você deseja que a instância primária e o pool de leitura residam.
  • REGION : a região para o pool de leitura, como us-east1 . A região deve ser a mesma da instância primária.
  • TIER : o tipo de máquina que você deseja usar para cada nó do pool de leitura, como db-perf-optimized-N-4 .
  • PRIMARY_INSTANCE_NAME : o nome da instância primária.
  • READ_POOL_NAME : o nome que você deseja usar para o pool de leitura, como my-read-pool .
  • DATABASE_VERSION : a versão do banco de dados que você deseja usar. Por exemplo, MYSQL_8_0_37 .
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .
  • FULL_NETWORK_NAME : o caminho completo da rede onde você deseja que o pool de leitura resida, como projects/vpc-host-project/global/networks/my-network-name .

Método HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT/instances

Corpo JSON da solicitação:

{
  "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 sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método insert do recurso instances para criar um pool de leitura com vários nós de pool de leitura. A propriedade databaseVersion deve ser a mesma que a primária.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde você deseja que a instância primária e o pool de leitura residam.
  • REGION : a região para o pool de leitura, como us-east1 . A região deve ser a mesma da instância primária.
  • TIER : o tipo de máquina que você deseja usar para cada nó do pool de leitura, como db-perf-optimized-N-4 .
  • PRIMARY_INSTANCE_NAME : o nome da instância primária.
  • READ_POOL_NAME : o nome que você deseja usar para o pool de leitura, como my-read-pool .
  • DATABASE_VERSION : a versão do banco de dados que você deseja usar. Por exemplo, MYSQL_8_0_37 .
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .
  • FULL_NETWORK_NAME : o caminho completo da rede onde você deseja que o pool de leitura resida, como projects/vpc-host-project/global/networks/my-network-name .

Método HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances

Corpo JSON da solicitação:

{
  "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 sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

Converter uma réplica de leitura em um pool de leitura

Você pode converter uma réplica de leitura existente do Cloud SQL Enterprise Plus Edition em um pool de leitura especificando o número de nós no pool. Durante esse processo de conversão, o IP da réplica se tornará o IP do pool de leitura (o ponto de extremidade de leitura), para que os clientes existentes possam se conectar ao pool sem reconfiguração.

Os nós do pool de leitura recém-criados terão o mesmo tipo de máquina e configuração da réplica de leitura original. Alterar esse tipo de máquina ou configuração requer uma operação separada. Esta operação é suportada apenas para réplicas de leitura zonais. Para converter uma réplica de leitura de alta disponibilidade (HA) em um pool de leitura, você deve primeiro convertê-la em uma réplica de leitura zonal.

Para obter mais informações, consulte Editar configuração do pool de leitura .

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud beta sql instances patch para converter uma réplica de leitura para uso com um pool de leitura:

      gcloud beta sql instances patch READ_REPLICA_NAME \
      --instance-type=READ_POOL_INSTANCE --node-count=NODE_COUNT
    

Faça as seguintes substituições:

  • READ_REPLICA_NAME : o nome da réplica de leitura que você deseja converter.
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .

REST v1

Use o método patch do recurso de instâncias para converter uma réplica de leitura em um pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • READ_REPLICA_NAME : o nome da réplica de leitura que você deseja converter, como my-read-replica .
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_REPLICA_NAME

Corpo JSON da solicitação:

{
  "instanceType": "READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método patch do recurso de instâncias para converter uma réplica de leitura em um pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • READ_REPLICA_NAME : o nome da réplica de leitura que você deseja converter, como my-read-replica .
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_REPLICA_NAME

Corpo JSON da solicitação:

{
  "instanceType": "READ_POOL_INSTANCE",
  "nodeCount": NODE_COUNT
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

Converter um pool de leitura em uma réplica de leitura

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud beta sql instances patch para converter uma réplica de leitura para uso com um pool de leitura:

      gcloud beta sql instances patch READ_POOL_NAME \
      --instance-type=READ_REPLICA_INSTANCE
    

Faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura que você deseja converter.

REST v1

Use o método patch do recurso de instâncias para converter um pool de leitura em uma réplica de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME

Corpo JSON da solicitação:

{
  "instanceType": "READ_REPLICA_INSTANCE"
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método patch do recurso de instâncias para converter um pool de leitura em uma réplica de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME

Corpo JSON da solicitação:

{
  "instanceType": "READ_REPLICA_INSTANCE"
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

Ver informações do pool de leitura

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud beta sql instances describe para descrever o pool de leitura:

      gcloud beta sql instances describe READ_POOL_NAME
    

Faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura que você deseja descrever.

Um exemplo de resposta com endereço IP e informações do nó pode ser semelhante ao seguinte:

      ...
      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

Use o método get para visualizar detalhes do pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método get para visualizar detalhes do pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

{
  [...],
  "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"
    }
  ]
}

Adicionar ou remover nós do pool de leitura

As etapas a seguir aumentam ou diminuem a escala de um pool de leitura, modificando o número de nós do pool de leitura. Algumas limitações de operação se aplicam. Para obter mais informações, consulte Limitações do pool de leitura .

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud beta sql instances patch para dimensionar o pool de leitura:

      gcloud beta sql instances patch READ_POOL_NAME \
      --node-count=NODE_COUNT
    

Faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura.
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .

REST v1

Use o método patch para ampliar ou reduzir um pool de leitura modificando o número de nós do pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME

Corpo JSON da solicitação:

{
  "nodeCount": NODE_COUNT
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método patch para ampliar ou reduzir um pool de leitura modificando o número de nós do pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • NODE_COUNT : o número de nós do pool de leitura que você deseja no pool de leitura. Escolha qualquer número de 1 a 20 .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME

Corpo JSON da solicitação:

{
  "nodeCount": NODE_COUNT
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

Editar configuração do pool de leitura

As etapas a seguir mostram como editar a configuração do pool de leitura. Para obter informações mais detalhadas, consulte Sobre configurações de instância e Editar instâncias .

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud beta sql instances patch para dimensionar verticalmente o pool de leitura, por exemplo, modificando o tipo de máquina:

      gcloud beta sql instances patch READ_POOL_NAME \
      --tier=TIER
    

Faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura.
  • TIER : o tipo de máquina que você deseja aplicar a cada nó do pool de leitura, como db-perf-optimized-N-8 .

REST v1

Use o método patch para modificar a configuração dos nós do pool de leitura. As configurações são aplicadas uniformemente a todos os nós do pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • TIER : o tipo de máquina que você deseja usar para cada nó do pool de leitura, como db-perf-optimized-N-4 .
  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME

Corpo JSON da solicitação:

{
  "settings": {
    "tier": "TIER"
  }
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método patch para modificar a configuração dos nós do pool de leitura. As configurações são aplicadas uniformemente a todos os nós do pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • TIER : o tipo de máquina que você deseja usar para cada nó do pool de leitura, como db-perf-optimized-N-4 .
  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME

Corpo JSON da solicitação:

{
  "settings": {
    "tier": "TIER"
  }
}

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

Conectar a um pool de leitura

Há muitas maneiras de se conectar a um pool de leitura. As etapas a seguir mostram uma delas: conectar-se a um pool de leitura com um endereço IP privado, criando uma VM na mesma rede VPC para servir como origem da conexão.

Para obter mais informações sobre outras maneiras de configurar a conectividade com uma instância do Cloud SQL, consulte Sobre conexões do Cloud SQL . Os métodos de conexão geralmente exigem que você primeiro obtenha o endereço IP ou o nome da conexão da instância, conforme descrito em Exibir informações do pool de leitura . Os pools de leitura oferecem suporte à maioria dos métodos de conexão disponíveis para outras instâncias do Cloud SQL, com algumas limitações .

Se estiver se conectando usando o Cloud SQL Auth Proxy ou os Cloud SQL Connectors, atualize para a versão mais recente. Para suporte ao pool de leitura, as versões mínimas necessárias incluem o seguinte:

  • Proxy de autenticação do Cloud SQL: v2.15.2
  • Conector Python do Cloud SQL: v1.18.0
  • Conector Cloud SQL Go: v1.16.0
  • Conector de nó do Cloud SQL: v1.7.0
  • Conector Java do Cloud SQL: v1.24.0

Console

Para se conectar a um pool de leitura, conclua as seguintes etapas:

  1. No Google Cloud console, acesse a página Instâncias do Cloud SQL .

    Acesse Instâncias do Cloud SQL

    Você será direcionado para a página Visão geral da instância. Clique no novo pool de leitura para visualizar os detalhes, incluindo seu endereço IP privado. Na seção Conectar a esta instância , copie e salve o nome da conexão da instância. O connection name está no formato projectID:region:instanceID . Você usará esse connection name posteriormente ao iniciar o Proxy de Autenticação do Cloud SQL.
  2. Crie uma VM do Compute Engine .
  3. Abra duas conexões SSH com a VM do Compute Engine . Elas serão usadas nas etapas subsequentes para executar o Proxy de Autenticação do Cloud SQL e o cliente do banco de dados.
  4. Instale o cliente .
  5. Instalar o proxy de autenticação do Cloud SQL .
  6. Inicie o Cloud SQL Auth Proxy .
  7. Conecte-se à sua instância do Cloud SQL .

Para obter mais informações, consulte Conectar-se a uma instância do Cloud SQL com IP privado .

Excluir um pool de leitura

gcloud

Para obter informações sobre como instalar e começar a usar a CLI do gcloud, consulte Instalar a CLI do gcloud . Para obter informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell .

Use o seguinte comando gcloud sql instances delete para excluir um pool de leitura:

      gcloud sql instances delete READ_POOL_NAME
    

Faça as seguintes substituições:

  • READ_POOL_NAME : o nome do pool de leitura que você deseja excluir.

REST v1

Use o método delete para excluir um pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT/instances/READ_POOL_NAME

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

REST v1beta4

Use o método delete para excluir um pool de leitura.

Antes de usar qualquer um dos dados solicitados, faça as seguintes substituições:

  • PROJECT : o nome do projeto onde o pool de leitura reside.
  • READ_POOL_NAME : o nome do pool de leitura, como my-read-pool .

Método HTTP e URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT/instances/READ_POOL_NAME

Para enviar sua solicitação, expanda uma destas opções:

Você deve receber uma resposta JSON semelhante à seguinte:

O que vem a seguir