Atualizar a versão secundária do banco de dados

Esta página descreve como atualizar a versão secundária de uma instância do MySQL. Para versões compatíveis, consulte Versões do banco de dados e políticas de versão .

A cada nova versão secundária, os provedores de banco de dados lançam novos recursos, patches de segurança, correções de bugs e melhorias de desempenho. Além disso, o Cloud SQL atualiza regularmente sua versão secundária durante a manutenção.

No entanto, o MySQL 8.0 não oferece suporte para downgrade. Portanto, atualizações de versões secundárias não são incluídas automaticamente na manutenção de rotina . Você pode especificar a versão secundária do Cloud SQL para MySQL 8.0 ao criar uma instância ou posteriormente por meio de um processo de atualização, ambos descritos nesta página.

Antes de atualizar para uma nova versão secundária do MySQL 8.0, familiarize-se com as alterações. Consulte as Notas de Lançamento do MySQL 8.0 . Se você usa o Cloud SQL para MySQL 5.6 ou 5.7, o Cloud SQL gerencia automaticamente a versão secundária da sua instância. Ao provisionar uma nova instância, o Cloud SQL a configura automaticamente com a versão mais recente do banco de dados disponível. Durante a manutenção de rotina, o Cloud SQL atualiza automaticamente sua instância para a versão mais recente com suporte.

Para atualizar a versão secundária do banco de dados da sua instância do MySQL 8.0, você precisa atualizar a instância com a versão secundária de sua preferência, que deve ser superior à versão secundária instalada. Não é possível reverter para uma versão secundária não especificada após o provisionamento de uma instância.

Se você estiver executando uma instância da edição Enterprise Plus do Cloud SQL, a atualização da versão secundária será concluída com tempo de inatividade quase zero.

Antes de atualizar

O Cloud SQL oferece suporte a atualizações secundárias para instâncias do MySQL 8.0. O MySQL 8.0 não permite downgrades. Portanto, antes de atualizar sua instância primária, siga estas etapas para garantir a segurança dos seus dados.

  1. Escolha a versão secundária de destino do banco de dados .

    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 .

    Para verificar quais versões secundárias do banco de dados estão disponíveis para uma atualização local, faça o seguinte:

    1. Execute o seguinte comando.
    2. gcloud sql instances describe INSTANCE_NAME
         

      Substitua INSTANCE_NAME pelo nome da instância.

    3. Na saída do comando, localize a seção rotulada upgradableDatabaseVersions .
    4. Cada subseção retorna uma versão do banco de dados disponível para atualização. Em cada subseção, revise o seguinte campo.
      • name : a sequência de caracteres da versão do banco de dados que inclui a versão principal e secundária do banco de dados que você pode direcionar para a atualização local da versão secundária do Cloud SQL para MySQL.

    REST v1

    Para verificar quais versões secundárias do banco de dados estão disponíveis para uma atualização local, use o método instances.get da API de administração do Cloud SQL.

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

    • INSTANCE_NAME : O nome da instância.

    Método HTTP e URL:

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

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

    Você deve receber uma resposta JSON semelhante à seguinte:

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    REST v1beta4

    Para verificar quais versões secundárias do banco de dados estão disponíveis para uma atualização local, use o método instances.get da API de administração do Cloud SQL.

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

    • INSTANCE_NAME : O nome da instância.

    Método HTTP e URL:

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

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

    Você deve receber uma resposta JSON semelhante à seguinte:

    
    upgradableDatabaseVersions:
    
    {
      major_version: "MYSQL_8_0"
      name: "MYSQL_8_0_36"
      display_name: "MySQL 8.0.36"
    }
    
    

    Para obter a lista completa das versões de banco de dados compatíveis com o Cloud SQL, consulte Versões do banco de dados e políticas de versão .

  2. Teste sua atualização em um ambiente de preparação.

    1. Crie um clone da sua instância de produção para servir como instância de preparação. Isso cria uma nova instância de banco de dados, com as mesmas versões principal e secundária.

    2. Execute uma atualização de versão secundária na instância de preparação.

    3. Execute testes de carga de trabalho para verificar se a atualização foi bem-sucedida e se o seu aplicativo funciona conforme o esperado. Após o teste ser bem-sucedido, prossiga com a atualização das suas instâncias de réplica de leitura.

  3. Atualize suas instâncias de réplica de leitura.

    1. Atualize todas as réplicas de leitura no banco de dados para a versão secundária de destino.

    2. Verifique se seu aplicativo funciona conforme o esperado.

  4. Faça backup da sua instância primária.

    Como em qualquer atualização significativa do banco de dados, faça um backup da sua instância principal.

Atualize a versão secundária

Você pode especificar a versão secundária do banco de dados de uma instância existente usando gcloud ou a API REST. Execute atualizações de versão secundária quando o banco de dados não estiver em uso. Se a sua instância precisar ser reiniciada, ela sofrerá algum tempo de inatividade. As instâncias da edição Enterprise Plus do Cloud SQL sofrem praticamente nenhum tempo de inatividade. Se a versão instalada for superior à versão solicitada, a solicitação será rejeitada.

gcloud

Use o comando gcloud sql instances patch com o sinalizador --database-version .

Substitua as seguintes variáveis ​​antes de executar o comando:

  • INSTANCE_NAME : O nome da instância.
  • DATABASE_VERSION : A versão do banco de dados da instância. Se você não especificar este sinalizador, a versão principal padrão será usada.
gcloud sql instances patch INSTANCE_NAME \
   --database-version=DATABASE_VERSION

REST v1

Use uma solicitação PATCH com o método instances:patch e o sinalizador databaseVersion .

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

  • PROJECT_ID : O ID do projeto
  • INSTANCE_ID : O ID da instância
  • DATABASE_VERSION : A versão do banco de dados para a qual será feita a atualização.

Método HTTP e URL:

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

Corpo JSON da solicitação:

{
  "databaseVersion": "DATABASE_VERSION"
}

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

Você deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "[email protected]",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Use uma solicitação PATCH com o método instances:patch e o sinalizador databaseVersion .

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

  • PROJECT_ID : O ID do projeto
  • INSTANCE_ID : O ID da instância
  • DATABASE_VERSION : A versão do banco de dados para a qual será feita a atualização.

Método HTTP e URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID

Corpo JSON da solicitação:

{
  "databaseVersion": "DATABASE_VERSION"
}

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

Você deve receber uma resposta JSON semelhante à seguinte:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "[email protected]",
  "insertTime": "2022-07-17T20:23:15.540Z",
  "operationType": "UPDATE",
  "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetId": "INSTANCE-ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032",
  "targetProject": "PROJECT_ID"
}

Verifique a versão secundária instalada do banco de dados

Ao visualizar as informações de resumo da instância , a versão secundária instalada do banco de dados fica visível na seção Configuração.

Reverter uma atualização

Ao testar uma atualização, se você notar um problema, talvez seja necessário reverter seu banco de dados para recuperar a instância do banco de dados que está executando a versão secundária anterior.

Para restaurar um backup pré-atualização, conclua as seguintes etapas:

  1. Provisione uma instância de banco de dados de recuperação na versão secundária anterior.
  2. Configure as definições na instância do banco de dados de recuperação para o estado pré-atualização.
  3. Restaure o backup de pré-atualização que você fez na instância de recuperação.

Como alternativa à restauração de um backup, execute uma recuperação de ponto no tempo e crie uma nova instância.