Como ativar e desativar a alta disponibilidade em uma instância

Nesta página, descrevemos como configurar uma instância para alta disponibilidade.

É possível configurar uma instância para alta disponibilidade ao criá-la ou ativar a alta disponibilidade em uma instância atual.

Para mais informações sobre alta disponibilidade, consulte Visão geral da configuração de alta disponibilidade.

Como criar uma nova instância configurada para alta disponibilidade

Quando você cria uma instância e a configura para alta disponibilidade, o Cloud SQL a cria como uma instância regional.

Para criar uma instância configurada para alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Crie uma instância.
  3. Na página Informações da instância, selecione Mostrar opções de configuração.
  4. Abra Backups, recuperação e alta disponibilidade.
  5. Selecione o botão de opção Alta disponibilidade (regional).

gcloud

  1. Crie a instância regional:
    gcloud sql instances create [REGIONAL_INSTANCE_NAME] \
                         --availability-type=REGIONAL \
                         --database-version=[DATABASE_VERSION] \
                         --cpu=[NUMBER_CPUS] --memory=[MEMORY_SIZE]
    
    Para ver uma lista completa de parâmetros disponíveis, consulte a página de referência gcloud sql instances create.
  2. Configure o usuário raiz:
    gcloud sql users set-password root no-host \
               --instance=[REGIONAL_INSTANCE_NAME]
               --password=[PASSWORD]
    

REST

Para ver a lista completa de parâmetros dessa solicitação, consulte a página instances:insert.

Crie a instância regional.

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

    • project-id: o ID do projeto
    • instance-name: o nome da instância
    • database-version: a string de enum da versão do banco de dados
    • region: a região do GCP
    • machine-type: o tipo de máquina

    Método HTTP e URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

    Corpo JSON da solicitação:

    {
      "name": "instance-name",
      "region": "region",
      "databaseVersion": "database-version",
       "settings": {
         "tier": "machine-type",
         "backupConfiguration": {
             "enabled": true,
             "pointInTimeRecoveryEnabled": true
          },
          "availabilityType": "REGIONAL"
       }
    }
    

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

    Você receberá uma resposta JSON semelhante a esta:

  2. Quando a instância concluir a inicialização, atualize a senha raiz na instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • password: a nova senha de usuário raiz

    Método HTTP e URL:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=postgres'

    Corpo JSON da solicitação:

    {
       "name": "postgres",
       "host": "nohost",
       "password": "password"}
    

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

    Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Para mais detalhes sobre como criar uma instância, consulte Como criar instâncias.

Como configurar uma instância existente para alta disponibilidade

Quando uma instância existente é configurada para alta disponibilidade, ela fica inativa por alguns minutos durante a reconfiguração.

Para configurar uma instância existente para alta disponibilidade:

Console

Quando uma instância existente é configurada para alta disponibilidade, ela fica inativa por alguns minutos durante a reconfiguração.

Para configurar uma instância existente para alta disponibilidade:

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique no nome da instância para abrir a página Visão geral e clique em Editar na barra de botões.
  3. Na seção da opção de configuração Backups automáticos e alta disponibilidade, selecione Alta disponibilidade (regional). Também é recomendável ativar a opção Automatizar backups.
  4. Clique em Salvar.

    Você retornará à página da instância principal enquanto ela está sendo atualizada.

gcloud

Atualize a instância para ser regional:

gcloud sql instances patch [INSTANCE_NAME] --availability-type REGIONAL

Para informações de referência, consulte gcloud sql instances patch.

REST

  1. Verifique a instância principal para ver se os backups automáticos e o pointInTimeRecovery estão ativados. Eles são necessários para instâncias de alta disponibilidade.

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

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

    Você receberá uma resposta JSON semelhante a esta:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "MYSQL_5_7",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "db-f1-micro",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "asia-east1-a",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "08:00",
          "kind": "sql#backupConfiguration",
          "enabled": true,
          "pointInTimeRecoveryEnabled": true
        },
        "settingsVersion": "13",
        "storageAutoResizeLimit": "0",
        "storageAutoResize": true,
        "dataDiskSizeGb": "10"
      },
      "etag": "etag-id",
      "ipAddresses": [
        {
          "type": "PRIMARY",
          "ipAddress": "10.0.0.1"
        }
      ],
      "serverCaCert": {
        "kind": "sql#sslCert",
        "certSerialNumber": "0",
        "cert": "certificate-id",
        "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id",
        "sha1Fingerprint": "sha-id",
        "instance": "instance-id",
        "createTime": "2019-06-28T22:46:35.052Z",
        "expirationTime": "2029-06-25T22:47:35.052Z"
      },
      "instanceType": "CLOUD_SQL_INSTANCE",
      "project": "project-id",
      "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com",
      "backendType": "SECOND_GEN",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "connectionName": "project-id:region:instance-id",
      "name": "instance-id",
      "region": "asia-east1",
      "gceZone": "asia-east1-a"
    }
    

    A saída contém uma seção semelhante a esta:

      "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "pointInTimeRecoveryEnabled": true
        }
      
  2. Se enabled ou pointInTimeRecoveryEnabled forem false, use o método instances:patch para ativar os dois. Para ativar backups, defina enabled como true e startTime como um valor que seja o início da janela de backup. Para ativar a geração de registros binários, defina pointInTimeRecoveryEnabled como true.

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • start-time: o horário no formato "HH:MM"

    Método HTTP e URL:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Corpo JSON da solicitação:

    {
      "settings":
      {
        "backupConfiguration":
        {
          "startTime": "start-time",
          "enabled": true,
          "pointInTimeRecoveryEnabled": true
        }
      }
    }
    

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

    Você receberá uma resposta JSON semelhante a esta:

  3. Atualize a instância para que ela seja regional:

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

    • project-id: o ID do projeto
    • instance-name: o nome da instância

    Método HTTP e URL:

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name

    Corpo JSON da solicitação:

    {
      "settings": {"availabilityType": "REGIONAL" }
    }
    

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

    Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Como inicializar o failover

O teste de failover é opcional, mas é recomendado. Portanto, você pode ver como seu aplicativo responde em caso de um failover.

Para saber mais sobre failover, consulte a Visão geral do failover.

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique no nome da instância principal para abrir a página Detalhes da instância.
  3. Clique em Failover na barra de botões.

gcloud

Inicie o failover:

gcloud sql instances failover [PRIMARY_INSTANCE_NAME]

REST

  1. Descreva a instância principal para conseguir o valor do campo settingsVersion.

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância

    Método HTTP e URL:

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

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

    Você receberá uma resposta JSON semelhante a esta:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "MYSQL_5_7",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "db-f1-micro",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "asia-east1-a",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "08:00",
          "kind": "sql#backupConfiguration",
          "enabled": true,
          "binaryLogEnabled": true
        },
        "settingsVersion": "13",
        "storageAutoResizeLimit": "0",
        "storageAutoResize": true,
        "dataDiskSizeGb": "10"
      },
      "etag": "etag-id",
      "ipAddresses": [
        {
          "type": "PRIMARY",
          "ipAddress": "10.0.0.1"
        }
      ],
      "serverCaCert": {
        "kind": "sql#sslCert",
        "certSerialNumber": "0",
        "cert": "certificate-id",
        "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id",
        "sha1Fingerprint": "sha-id",
        "instance": "instance-id",
        "createTime": "2019-06-28T22:46:35.052Z",
        "expirationTime": "2029-06-25T22:47:35.052Z"
      },
      "instanceType": "CLOUD_SQL_INSTANCE",
      "project": "project-id",
      "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com",
      "backendType": "SECOND_GEN",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "connectionName": "project-id:region:instance-id",
      "name": "instance-id",
      "region": "asia-east1",
      "gceZone": "asia-east1-a"
    }
    
  2. Inicie o failover:

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

    • project-id: o ID do projeto
    • instance-name: o nome da instância
    • settings-version: a settingsVersion de instanceInfo

    Método HTTP e URL:

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name/failover

    Corpo JSON da solicitação:

    {
      "failoverContext":
         {
            "settingsVersion":"settings-version"
         }
    }
    

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

    Você receberá uma resposta JSON semelhante a esta:

A instância realizou failover e não está disponível para exibir dados por alguns minutos.

Como verificar se uma instância tem alta disponibilidade

Para verificar se uma instância tem alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Clique em um nome de instância para abrir a página Detalhes da instância.
  3. Em Configuração, aparece Altamente disponível (regional).

gcloud

gcloud sql instances describe [INSTANCE_NAME]
A resposta indica que availabilityType é REGIONAL.

REST

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

  • project-id: o ID do projeto
  • instance-id: o ID da instância

Método HTTP e URL:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

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

Você receberá uma resposta JSON semelhante a esta:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_5_7",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "asia-east1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "08:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    },
    "settingsVersion": "13",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "etag-id",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    "kind": "sql#sslCert",
    "certSerialNumber": "0",
    "cert": "certificate-id",
    "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id",
    "sha1Fingerprint": "sha-id",
    "instance": "instance-id",
    "createTime": "2019-06-28T22:46:35.052Z",
    "expirationTime": "2029-06-25T22:47:35.052Z"
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "asia-east1",
  "gceZone": "asia-east1-a"
}

A resposta indica que availabilityType é REGIONAL.

Como desativar a alta disponibilidade em uma instância

Antes de executar este procedimento, verifique se não há operações em execução na instância no momento.

Para desativar a alta disponibilidade:

Console

  1. Acesse a página Instâncias do Cloud SQL no Console do Google Cloud.

    Acessar a página "Instâncias" do Cloud SQL

  2. Selecione a instância em que você quer desativar a alta disponibilidade.
  3. Na página Detalhes da instância, clique em EDITAR.
  4. Abra Backups automáticos.
  5. Em Disponibilidade, clique em Única zona.
  6. Clique em Salvar. Essa edição requer que a instância seja reiniciada.
  7. Quando a caixa de mensagem aparecer, clique em SALVAR E REINICIAR.

gcloud

Para informações de referência, consulte gcloud sql instances patch.
gcloud sql instances patch [INSTANCE_NAME]
           --availability-type ZONAL

REST

A solicitação a seguir usa o método instances:patch para alterar o tipo de disponibilidade na instância para ZONAL.

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

  • project-id: o ID do projeto
  • instance-name: o nome da instância

Método HTTP e URL:

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name

Corpo JSON da solicitação:

{
  "settings": {"availabilityType": "ZONAL" }
}

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

Você receberá um código de status bem-sucedido (2xx) e uma resposta vazia.

Solução de problemas

Clique nos links da tabela para ver detalhes:

Para este problema... O problema pode ser... Tente o seguinte...
Não é possível encontrar métricas para failover manual. Somente failovers automáticos entram nas métricas. N/D
CPU e RAM próximas de 100% de uso O tamanho da máquina da instância é pequeno demais para a carga. Faça upgrade no tamanho da máquina da instância.

Não é possível encontrar métricas para failover manual

Você executou um failover manual e não consegue encontrar uma entrada correspondente nas métricas de failover automático do Metrics Explorer.

O problema pode ser

Somente failovers automáticos entram nas métricas. Failovers iniciados manualmente não.

O que você deve tentar

N/D


CPU e RAM próximas de 100% de uso

Os recursos da instância do Cloud SQL (CPU e RAM) estão quase com 100% de uso, fazendo com que a instância de alta disponibilidade fique inativa.

O problema pode ser

O tamanho da máquina da instância é pequeno demais para a carga.

O que você deve tentar

Edite a instância para fazer upgrade para um tamanho de máquina maior e receber mais CPUs e memória.

A seguir