Ative e desative a alta disponibilidade

Esta página descreve como configurar uma instância para alta disponibilidade.

Pode configurar uma instância para alta disponibilidade quando a cria ou pode ativar a alta disponibilidade numa instância existente.

Para mais informações sobre a elevada disponibilidade, consulte o Resumo da configuração de elevada disponibilidade.

Crie uma nova instância configurada para alta disponibilidade

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

Para criar uma instância configurada para alta disponibilidade:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Selecione Criar instância.
  3. Selecione o motor da base de dados.
  4. Na secção Escolher região e disponibilidade zonal, selecione Várias zonas (Altamente disponível).
  5. Expanda Especificar zonas.
  6. Selecione as zonas principal e secundária. As seguintes condições aplicam-se quando a zona secundária é usada durante a criação ou a edição da instância:
    • As zonas são predefinidas como Any para a zona principal e Any (different from primary) para a zona secundária.
    • Se forem especificadas as zonas principal e secundária, têm de ser zonas diferentes.

  7. Clique em Guardar.

    Regressa à página da instância principal enquanto a instância secundária é atualizada.

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 dos parâmetros disponíveis, consulte a página de referência gcloud sql instances create.
  2. Configure o utilizador de raiz:
    gcloud sql users set-password root no-host \
    --instance=REGIONAL_INSTANCE_NAME \
    --password=PASSWORD

Terraform

Para criar uma instância com alta disponibilidade, use um recurso do Terraform.

resource "google_sql_database_instance" "postgres_instance_ha" {
  name             = "postgres-instance-ha"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier              = "db-custom-2-7680"
    availability_type = "REGIONAL"
    backup_configuration {
      enabled                        = true
      point_in_time_recovery_enabled = true
      start_time                     = "20:55"
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Aplique as alterações

Para aplicar a configuração do Terraform num Google Cloud projeto, conclua os passos nas secções seguintes.

Prepare o Cloud Shell

  1. Inicie o Cloud Shell.
  2. Defina o Google Cloud projeto predefinido onde quer aplicar as suas configurações do Terraform.

    Só tem de executar este comando uma vez por projeto e pode executá-lo em qualquer diretório.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    As variáveis de ambiente são substituídas se definir valores explícitos no ficheiro de configuração do Terraform.

Prepare o diretório

Cada ficheiro de configuração do Terraform tem de ter o seu próprio diretório (também denominado módulo raiz).

  1. No Cloud Shell, crie um diretório e um novo ficheiro nesse diretório. O nome do ficheiro tem de ter a extensão .tf, por exemplo, main.tf. Neste tutorial, o ficheiro é denominado main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se estiver a seguir um tutorial, pode copiar o código de exemplo em cada secção ou passo.

    Copie o exemplo de código para o ficheiro main.tf criado recentemente.

    Opcionalmente, copie o código do GitHub. Isto é recomendado quando o fragmento do Terraform faz parte de uma solução completa.

  3. Reveja e modifique os parâmetros de exemplo para aplicar ao seu ambiente.
  4. Guarde as alterações.
  5. Inicialize o Terraform. Só tem de fazer isto uma vez por diretório.
    terraform init

    Opcionalmente, para usar a versão mais recente do fornecedor Google, inclua a opção -upgrade:

    terraform init -upgrade

Aplique as alterações

  1. Reveja a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expetativas:
    terraform plan

    Faça correções à configuração conforme necessário.

  2. Aplique a configuração do Terraform executando o seguinte comando e introduzindo yes no comando:
    terraform apply

    Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).

  3. Abra o seu Google Cloud projeto para ver os resultados. Na Google Cloud consola, navegue para os seus recursos na IU para se certificar de que o Terraform os criou ou atualizou.

Eliminar as alterações

Para eliminar as alterações, faça o seguinte:

  1. Para desativar a proteção contra eliminação, no ficheiro de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Aplique a configuração do Terraform atualizada executando o seguinte comando e introduzindo yes no comando:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a sua configuração do Terraform executando o seguinte comando e introduzindo yes no comando:

    terraform destroy

REST v1

Para ver a lista completa de parâmetros do pedido, consulte a página instances:insert.

Crie a instância regional.

  1. Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

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

    Método HTTP e URL:

    POST https://sqladmin.googleapis.com/v1/projects/project-id/instances

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Quando a inicialização da instância terminar, atualize a palavra-passe de raiz na instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • password: a nova palavra-passe do utilizador de raiz

    Método HTTP e URL:

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

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

REST v1beta4

Para ver a lista completa de parâmetros do pedido, consulte a página instances:insert.

Crie a instância regional.

  1. Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

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

    Método HTTP e URL:

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

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

  2. Quando a inicialização da instância terminar, atualize a palavra-passe de raiz na instância:

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

    • project-id: o ID do projeto
    • instance-id: o ID da instância
    • password: a nova palavra-passe do utilizador de raiz

    Método HTTP e URL:

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

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

Para ver mais detalhes sobre como criar uma instância, consulte o artigo Criar instâncias.

Configure uma instância existente para alta disponibilidade

Pode configurar uma instância do Cloud SQL para alta disponibilidade através da Google Cloud consola, da CLI gcloud ou da API.

Consola

Para configurar uma instância para alta disponibilidade:

  1. Na Google Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Clique em Edit.
  4. Na secção Opção de configuração de cópias de segurança automáticas e alta disponibilidade, selecione Alta disponibilidade (regional). Também recomendamos que ative a opção Automatizar cópias de segurança.
  5. Clique em Guardar.

gcloud

Para configurar uma instância como uma instância regional de alta disponibilidade, use o comando gcloud sql instances patch:

gcloud sql instances patch INSTANCE_NAME \
--availability-type REGIONAL

Substitua INSTANCE_NAME pelo nome da instância do Cloud SQL que está a configurar para alta disponibilidade.

REST v1

Para configurar uma instância como uma instância regional de alta disponibilidade:

  1. Verifique a instância para ver se as cópias de segurança automáticas e a recuperação num ponto específico no tempo estão ativadas. Estes são necessários para instâncias de alta disponibilidade.

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

    • PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
    • INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "POSTGRES_13"
    }
    

    O resultado contém uma secção semelhante à seguinte:

      "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "pointInTimeRecoveryEnabled": true
        }
      
  2. Se enabled ou pointInTimeRecoveryEnabled for false, use o método instances:patch para ativar ambos. Para ativar as cópias de segurança, defina enabled como true e startTime para um valor que seja o início da janela de cópia de segurança. Para ativar o registo binário, defina pointInTimeRecoveryEnabled como true.

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

    • PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
    • INSTANCE_NAME: o nome da instância principal ou de réplica de leitura que está a configurar para alta disponibilidade
    • START_TIME: a hora (em horas e minutos)

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    Corpo JSON do pedido:

    {
      "settings":
      {
        "backupConfiguration":
        {
          "startTime": "START_TIME",
          "enabled": true,
          "pointInTimeRecoveryEnabled": true
        }
      }
    }
    

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber uma resposta JSON semelhante à seguinte:

  3. Configure a instância para ser uma instância regional de alta disponibilidade:

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

    • PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
    • INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade

    Método HTTP e URL:

    PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

    Corpo JSON do pedido:

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

    Para enviar o seu pedido, expanda uma destas opções:

    Deve receber um código de estado de êxito (2xx) e uma resposta vazia.

REST v1beta4

Para configurar uma instância como uma instância regional de alta disponibilidade:

  1. Verifique a instância para ver se as cópias de segurança automáticas e a recuperação num ponto específico no tempo estão ativadas. Estes são necessários para instâncias de alta disponibilidade.

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

    • PROJECT_ID: o ID ou o número do projeto do Google Cloud projeto que contém a instância
    • INSTANCE_NAME: o nome da instância que está a configurar para alta disponibilidade

    Método HTTP e URL:

    GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

    Para enviar o seu pedido, expanda uma destas opções: