O Cloud SQL para MySQL suporta várias versões secundárias do MySQL 8.0 e aprovisiona instâncias do MySQL 8.0 na versão secundária predefinida, que é uma versão secundária anterior à versão secundária mais recente.
Com cada nova versão secundária, os fornecedores de bases de dados lançam novas funcionalidades, patches de segurança, correções de erros e melhorias de desempenho.
O MySQL 8.0 não suporta a desatualização.
Atualização automática
O Cloud SQL suporta a atualização automática da versão secundária das instâncias do Cloud SQL para MySQL 8.0 que não estão associadas a uma versão secundária específica. A instância tem de estar a executar a versão 8.0.35 ou posterior do MySQL.
Se a sua instância estiver ativada para a atualização automática da versão secundária, a instância do Cloud SQL para MySQL 8.0 é atualizada automaticamente para a versão secundária predefinida do Cloud SQL para MySQL 8.0 durante a atualização de manutenção agendada regularmente. Já não tem de fazer atualizações manuais das versões secundárias para manter a sua instância do Cloud SQL para MySQL atualizada com os mais recentes patches de segurança e correções de erros lançados pela comunidade do MySQL.
Verifique se a ativação do upgrade secundário automático está disponível
Para verificar se a sua instância está ativada para a atualização automática da versão secundária, execute o seguinte comando:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Substitua INSTANCE_NAME pelo nome da instância e PROJECT_ID pelo ID do projeto da instância. No resultado do comando, localize os seguintes campos.
databaseVersion: o valor tem de serMYSQL_8_0databaseInstalledVersion: o valor tem de ser uma versão secundária igual ou superior aMYSQL_8_0_35
Atualização manual
Esta secção descreve como atualizar manualmente a versão secundária de uma instância do Cloud SQL para MySQL 8.0. Se estiver a usar uma versão 8.0.34 ou anterior do Cloud SQL para MySQL, tem de atualizar manualmente a versão secundária do Cloud SQL para MySQL.
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 usar o Cloud SQL para MySQL 5.6 ou 5.7, o Cloud SQL gere automaticamente a versão secundária da sua instância. Quando aprovisiona uma nova instância, o Cloud SQL configura automaticamente a instância com a versão da base de dados mais recente disponível. Durante a manutenção de rotina, o Cloud SQL atualiza automaticamente a sua instância para a versão suportada mais recente.
Para atualizar a versão secundária da base de dados da sua instância do MySQL 8.0, tem de atualizar a instância com a versão secundária preferida, que tem de ser superior à versão secundária instalada. Não pode reverter para uma versão secundária não especificada depois de uma instância ter sido aprovisionada.
Se estiver a executar uma instância da edição Cloud SQL Enterprise Plus, a atualização da versão secundária é concluída com um tempo de inatividade quase nulo.
Antes de fazer a atualização manual
O Cloud SQL suporta a atualização da versão secundária para instâncias do MySQL 8.0. O MySQL 8.0 não permite atualizações inferiores. Assim, antes de atualizar a instância principal, siga estes passos para garantir que os seus dados estão seguros.
Escolha a versão secundária de destino da base de dados.
gcloud
Para obter informações sobre a instalação e o início da utilização da CLI gcloud, consulte o artigo Instale a CLI gcloud. Para obter informações sobre como iniciar a Cloud Shell, consulte o artigo Use a Cloud Shell.
Para verificar que versões secundárias da base de dados estão disponíveis para uma atualização no local, faça o seguinte:
- Execute o seguinte comando.
- Na saída do comando,
localize a secção com a etiqueta
upgradableDatabaseVersions. - Cada subsecção devolve uma versão da base de dados que está disponível para atualização. Em cada subsecção, reveja o seguinte campo.
name: a string da versão da base de dados que inclui a versão principal e secundária da base de dados que pode segmentar para a atualização no local da versão secundária do Cloud SQL para MySQL.
gcloud sql instances describe INSTANCE_NAME
Substitua INSTANCE_NAME pelo nome da instância.
REST v1
Para verificar que versões secundárias da base de dados estão disponíveis para uma atualização no local, use o método
instances.getda API Admin do Cloud SQL.Antes de usar qualquer um dos dados do pedido, 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 o seu pedido, expanda uma destas opções:
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 que versões secundárias da base de dados estão disponíveis para uma atualização no local, use o método
instances.getda API Admin do Cloud SQL.Antes de usar qualquer um dos dados do pedido, 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 o seu pedido, expanda uma destas opções:
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 ver a lista completa das versões de bases de dados suportadas pelo Cloud SQL, consulte o artigo Versões de bases de dados e políticas de versões.
Teste a atualização num ambiente de preparação.
Crie um clone da sua instância de produção para servir como instância de preparação. Esta ação cria uma nova instância da base de dados com as mesmas versões principal e secundária.
Faça uma atualização de versão secundária na instância de preparação.
Execute testes de carga de trabalho para verificar se a atualização foi bem-sucedida e se a sua aplicação tem o desempenho esperado. Quando o teste for bem-sucedido, avance para a atualização das instâncias de réplica de leitura.
Atualize as suas instâncias de réplica de leitura.
Atualize todas as réplicas de leitura na base de dados para a versão secundária de destino.
Verifique se a sua aplicação funciona conforme esperado.
Faça uma cópia de segurança da instância principal.
Tal como acontece com qualquer atualização significativa da base de dados, faça uma cópia de segurança da sua instância principal.
Atualize a versão secundária
Pode especificar a versão secundária da base de dados de uma instância existente através de gcloud ou da API REST. Faça atualizações de versões secundárias num momento em que a base de dados não esteja em utilização. Se a sua instância precisar de um reinício, a instância vai sofrer alguma indisponibilidade. As instâncias da edição Cloud SQL Enterprise Plus
têm um tempo de inatividade quase nulo.
Se a versão instalada for superior à versão pedida,
o pedido é rejeitado.
gcloud
Use o comando gcloud sql instances patch
com a flag --database-version.
Substitua as seguintes variáveis antes de executar o comando:
- INSTANCE_NAME: o nome da instância.
- DATABASE_VERSION: a versão da base de dados da instância. Se não especificar esta marca, é usada a versão principal predefinida.
gcloud sql instances patch INSTANCE_NAME \ --database-version=DATABASE_VERSION
REST v1
Use um pedido PATCH com o método
instances:patch e a flag databaseVersion.
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
- DATABASE_VERSION: a versão da base de dados para a qual atualizar.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
"databaseVersion": "DATABASE_VERSION"
}
Para enviar o seu pedido, expanda uma destas opções:
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": "user@example.com",
"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 um pedido PATCH com o método
instances:patch e a flag databaseVersion.
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
- DATABASE_VERSION: a versão da base de dados para a qual atualizar.
Método HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID
Corpo JSON do pedido:
{
"databaseVersion": "DATABASE_VERSION"
}
Para enviar o seu pedido, expanda uma destas opções:
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": "user@example.com",
"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 da base de dados
Quando vê as informações de resumo da instância, a versão secundária instalada da base de dados é visível na secção Configuração.
Reverta uma atualização
Durante o teste de uma atualização, se detetar um problema, pode reverter a base de dados para recuperar a instância da base de dados que executa a versão secundária anterior.
Para restaurar uma cópia de segurança anterior à atualização, conclua os seguintes passos:
- Aprovisione uma instância de base de dados de recuperação na versão secundária anterior.
- Configure as definições na instância da base de dados de recuperação para o estado anterior à atualização.
- Restaure a cópia de segurança anterior à atualização que fez na instância de recuperação.
Em alternativa à restauração de uma cópia de segurança, faça uma recuperação num determinado momento e crie uma nova instância.