Criar e gerenciar pools de leitura

Nesta página, você vai aprender a 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 principal. Se ainda não tiver feito isso, crie uma instância principal do Cloud SQL Enterprise Plus. Embora os pools de leitura sejam compatíveis com a conectividade de IP público, para fins deste guia, crie uma instância principal com conectividade de IP particular (PSA). Para mais informações sobre instâncias principais e replicação, consulte Sobre a replicação no Cloud SQL.
  2. Depois que a instância principal for criada, escolha uma senha para o usuário raiz e execute o comando a seguir para definir a senha na instância principal. Salve essa senha para usar depois 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 em que você quer que a instância principal e o pool de leitura estejam.
    • PRIMARY_INSTANCE_NAME: o nome da instância principal.

Criar um pool de leitura

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais 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:

      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ê quer usar para o pool de leitura.
  • TIER: o tipo de máquina que você quer 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ê quer no pool de leitura. Escolha qualquer número de 1 a 20.
  • PRIMARY_INSTANCE_NAME: o nome da instância principal associada ao pool de leitura, como my-primary-instance.

REST v1

Use o método insert do recurso de instâncias para criar um pool de leitura com vários nós. A propriedade databaseVersion precisa ser igual à principal.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que você quer que a instância principal e o pool de leitura estejam.
  • REGION: a região do pool de leitura, como us-east1. A região precisa ser a mesma da instância principal.
  • TIER: o tipo de máquina que você quer usar para cada nó do pool de leitura, como db-perf-optimized-N-4.
  • PRIMARY_INSTANCE_NAME: o nome da instância principal.
  • READ_POOL_NAME: o nome que você quer usar para o pool de leitura, como my-read-pool.
  • DATABASE_VERSION: a versão do banco de dados que você quer usar. Por exemplo, MYSQL_8_0_37.
  • NODE_COUNT: o número de nós do pool de leitura que você quer no pool de leitura. Escolha qualquer número de 1 a 20.
  • FULL_NETWORK_NAME: o caminho completo da rede em que você quer que o pool de leitura fique, 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Use o método insert do recurso de instâncias para criar um pool de leitura com vários nós. A propriedade databaseVersion precisa ser igual à principal.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que você quer que a instância principal e o pool de leitura estejam.
  • REGION: a região do pool de leitura, como us-east1. A região precisa ser a mesma da instância principal.
  • TIER: o tipo de máquina que você quer usar para cada nó do pool de leitura, como db-perf-optimized-N-4.
  • PRIMARY_INSTANCE_NAME: o nome da instância principal.
  • READ_POOL_NAME: o nome que você quer usar para o pool de leitura, como my-read-pool.
  • DATABASE_VERSION: a versão do banco de dados que você quer usar. Por exemplo, MYSQL_8_0_37.
  • NODE_COUNT: o número de nós do pool de leitura que você quer no pool de leitura. Escolha qualquer número de 1 a 20.
  • FULL_NETWORK_NAME: o caminho completo da rede em que você quer que o pool de leitura fique, 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

É possível converter uma réplica de leitura do Cloud SQL Enterprise Plus 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 endpoint de leitura), para que os clientes atuais 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. Mudar esse tipo de máquina ou configuração exige uma operação separada. Essa operação só é compatível com réplicas de leitura zonais. Para converter uma réplica de leitura de alta disponibilidade (HA) em um pool de leitura, primeiro é preciso convertê-la em uma réplica de leitura zonal.

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

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais 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ê quer converter.
  • NODE_COUNT: o número de nós do pool de leitura que você quer 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 os dados da solicitação abaixo, faça as substituições a seguir:

  • READ_REPLICA_NAME: o nome da réplica de leitura que você quer converter, como my-read-replica.
  • NODE_COUNT: o número de nós do pool de leitura que você quer 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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 os dados da solicitação abaixo, faça as substituições a seguir:

  • READ_REPLICA_NAME: o nome da réplica de leitura que você quer converter, como my-read-replica.
  • NODE_COUNT: o número de nós do pool de leitura que você quer 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

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

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais 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ê quer 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 os dados da solicitação abaixo, faça as substituições a seguir:

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

Você receberá uma resposta JSON semelhante a esta:

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 os dados da solicitação abaixo, faça as substituições a seguir:

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

Você receberá uma resposta JSON semelhante a esta:

Ver informações do pool de leitura

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais 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ê quer descrever.

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

      ...
      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 conferir os detalhes do pool de leitura.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  [...],
  "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 escalonam um pool de leitura aumentando ou diminuindo o número de nós no pool. Algumas limitações de operação se aplicam. Para mais informações, consulte Limitações do pool de leitura.

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell.

Use o seguinte comando gcloud beta sql instances patch para escalonar 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ê quer no pool de leitura. Escolha qualquer número de 1 a 20.

REST v1

Use o método patch para escalonar um pool de leitura aumentando ou diminuindo o número de nós.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que o pool de leitura reside.
  • NODE_COUNT: o número de nós do pool de leitura que você quer 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

Use o método patch para escalonar um pool de leitura aumentando ou diminuindo o número de nós.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que o pool de leitura reside.
  • NODE_COUNT: o número de nós do pool de leitura que você quer 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Editar configuração do pool de leitura

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

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais informações sobre como iniciar o Cloud Shell, consulte Usar o Cloud Shell.

Use o seguinte comando gcloud beta sql instances patch para escalonar 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ê quer 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 do nó do pool de leitura. As configurações são aplicadas de maneira uniforme a todos os nós do pool de leitura.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que o pool de leitura reside.
  • TIER: o tipo de máquina que você quer 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que o pool de leitura reside.
  • TIER: o tipo de máquina que você quer 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

Conectar-se a um pool de leitura

Há muitas maneiras de se conectar a um pool de leitura. As etapas a seguir mostram uma maneira, ou seja, conectar-se a um pool de leitura com um endereço IP particular criando uma VM na mesma rede VPC para servir como fonte de conexão.

Para 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 de conexão da instância, conforme descrito em Ver informações do pool de leitura. Os pools de leitura são compatíveis com a maioria dos métodos de conexão disponíveis para outras instâncias do Cloud SQL, com algumas limitações.

Se você estiver se conectando usando o proxy de autenticação do Cloud SQL ou os conectores do Cloud SQL, atualize para a versão mais recente. Para oferecer suporte a pools 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 do Cloud SQL para Go: v1.16.0
  • Conector do Cloud SQL para Node: v1.7.0
  • Conector Java do Cloud SQL: v1.24.0

Console

Para se conectar a um pool de leitura, siga estas etapas:

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

    Acesse "Instâncias do Cloud SQL"

    A página "Visão geral" da instância será aberta. Clique no novo pool de leitura para conferir os detalhes, incluindo o endereço IP privado. Na seção Conectar-se 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ê vai usar esse connection name mais tarde 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. Eles são usados nas etapas subsequentes para executar o proxy de autenticação do Cloud SQL e o cliente de banco de dados.
  4. Instale o cliente.
  5. Instalar o proxy do Cloud SQL Auth.
  6. Inicie o proxy do Cloud SQL Auth.
  7. Conecte-se à sua instância do Cloud SQL.

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

Excluir um pool de leitura

gcloud

Para informações sobre como instalar e dar os primeiros passos com a CLI gcloud, consulte Instalar a CLI gcloud. Para mais 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ê quer excluir.

REST v1

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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

REST v1beta4

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

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT: o nome do projeto em que 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 a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

A seguir