Fazer upgrade para uma nova versão principal
IBM Cloud® Databases for Elasticsearch oferece dois caminhos de atualização diferentes:
- Atualização no local para uma nova versão principal (compatível com os planos Elasticsearch Enterprise Plan e Elasticsearch Platinum Plan).
- Restauração a partir de backup (com suporte para Elasticsearch Enterprise Plan e Elasticsearch Platinum Plan).
Atualizações de versões principais no local
O upgrade de versão principal no local permite que você atualize sua implementação para a próxima versão principal, eliminando a necessidade de restaurar um backup em uma nova implementação. Essa abordagem mantém as mesmas cadeias de conexão, sem a necessidade de reconfigurar a implantação. No entanto, se a nova versão principal exigir ajustes no aplicativo, esses ajustes deverão ser feitos.
Durante a janela de atualização da versão principal no local (incluindo um backup), a implantação é definida para o modo READ-ONLY, que permite apenas operações de leitura, mas nenhuma operação de gravação na implantação para garantir uma atualização segura. Um curto intervalo em que seu banco de dados fica indisponível é esperado como parte normal de uma atualização no local para esse serviço gerenciado. Assim que a atualização da versão principal da implantação for concluída, o modo READ-ONLY será removido.
Há duas opções ao realizar um upgrade de versão principal no local:
-
Upgrade de versão principal no local com backup: Esse caminho cria um backup antes de executar o upgrade real, fornecendo uma camada adicional de segurança (a única opção para o plano Elasticsearch Platinum).
-
Upgrade de versão principal no local sem backup: Essa opção prossegue com o upgrade sem criar um backup previamente. Caso o upgrade no local não seja bem-sucedido, será necessário restaurar a implementação a partir do backup mais recente em uma nova implementação.
O upgrade no local sem backup não é recomendado. Isso pode resultar em perda de dados se o upgrade falhar em qualquer estágio, pois não haverá backup imediato para restauração.
Antes de Iniciar
Considere os seguintes aspectos antes de iniciar o procedimento de upgrade.
- Sua implementação deve estar em um estado saudável antes da atualização.
- Sua implantação deve ter pelo menos 2 GB de espaço livre em disco.
- Você só pode atualizar para a próxima versão principal, em vez de especificar a versão de sua escolha.
- Cada versão principal contém alguns recursos que podem não ser compatíveis com as versões anteriores. Verifique as notas de versão do fornecedor do banco de dados para ver as alterações que podem afetar seus aplicativos.
- Não há suporte para o downgrade de uma implementação para uma versão anterior.
- O upgrade de versão principal no local não pode ser cancelado depois de iniciado.
- No caso do Elasticsearch Platinum Edition, deve haver pelo menos um backup disponível antes do upgrade para garantir que um backup possa ser feito após o upgrade.
Fazendo upgrade na IU
-
Crie um novo site Databases for Elasticsearch para testar o processo de upgrade.
Crie a implementação restaurando um backup de sua implementação existente com a mesma versão. -
Aponte seu aplicativo de preparação para a implantação de teste.
Atualize seu aplicativo de preparação para apontar para a implantação de teste. Confirme se o aplicativo de teste pode se conectar com êxito à implantação de teste e se o aplicativo funciona conforme o esperado. Realizar todos os testes operacionais e de desempenho necessários do ambiente de preparação. -
Atualize a versão principal de sua implantação de teste clicando no botão Atualizar versão principal na página Visão geral.
Isso colocará seu banco de dados no modo READ-ONLY enquanto o processo de atualização é concluído. Observe o tempo que o upgrade leva para ser concluído para que você possa usar a configuração de expiração do upgrade para conter os upgrades dentro da janela de manutenção. -
Confirme se o aplicativo de teste funciona com a nova versão do banco de dados.
Se o aplicativo funcionar, esta etapa confirma que é seguro fazer o upgrade do banco de dados de produção. -
Atualize a implementação do banco de dados de produção para a nova versão.
Depois de confirmar que o aplicativo funciona corretamente usando a nova versão do banco de dados, você pode retornar ao console de gerenciamento e iniciar o processo de atualização da implementação de produção. Na seção Detalhes da implantação da página Visão geral, clique no botão Atualizar a versão principal e siga as etapas.Uma vez iniciado o processo de upgrade no local, ele não pode ser interrompido ou revertido. Portanto, no caso improvável de um erro, a implementação do banco de dados pode se tornar irrecuperável. Portanto, crie um backup que possa ser usado para restaurar em uma nova implementação. Se você selecionar `In-place major version upgrade with backup', o backup criado poderá ser usado para restauração em uma nova implementação.
O site expiration for starting upgrade permite que você configure um período de "tempo limite" dentro do qual o trabalho de upgrade deve ser iniciado antes de ser automaticamente cancelado. Além disso, teste o upgrade
na preparação antecipadamente para garantir que o upgrade seja concluído dentro da janela de tempo desejada. Se, por exemplo, você quiser concluir o upgrade em 1 hora, testou o upgrade e sabe que ele leva 30 minutos, então o trabalho de
upgrade deve ser iniciado em 30 minutos após a confirmação de que deseja fazer o upgrade. Portanto, defina a expiração para 30 minutos, para que, se não for iniciada dentro desse período, ela não ultrapasse sua janela.
Fazendo upgrade por meio da API
Use o seguinte comando para fazer o upgrade no local:
curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "8.0"}'
O site expiration for starting upgrade permite que você configure um período de "tempo limite" dentro do qual o trabalho de upgrade deve ser iniciado antes de ser automaticamente cancelado. Além disso, teste o upgrade
na preparação antecipadamente para garantir que o upgrade seja concluído dentro da janela de tempo desejada. Se, por exemplo, você quiser concluir o upgrade em 1 hora, testou o upgrade e sabe que ele leva 30 minutos, então o trabalho de
upgrade deve ser iniciado em 30 minutos após a confirmação de que deseja fazer o upgrade. Portanto, defina a expiração para um carimbo de data/hora de 30 minutos a partir de agora, para que, se não for iniciada dentro desse período, não
ultrapasse sua janela. A expiração deve estar entre 5 minutos (padrão) e 24 horas a partir de agora. Para obter mais informações, consulte a API Cloud Databases.
Fazendo upgrade por meio da CLI
Disponível na versão do plug-in CDB >= 0.20.0
Para exibir a lista de transições de upgrade e restauração permitidas para a implementação:
ibmcloud cdb deployment-capability-show <NAME|CRN> versions
Para atualizar o comando com os parâmetros necessários:
ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>
Para ver todos os detalhes dos parâmetros de comando:
ibmcloud cdb deployment-version-upgrade --help
O site expiration for starting upgrade permite que você configure um período de "tempo limite" dentro do qual o trabalho de upgrade deve ser iniciado antes de ser automaticamente cancelado. Além disso, teste o upgrade
na preparação antecipadamente para garantir que o upgrade seja concluído dentro da janela de tempo desejada. Se, por exemplo, você quiser concluir o upgrade em 1 hora, testou o upgrade e sabe que ele leva 30 minutos, então o trabalho de
upgrade deve ser iniciado em 30 minutos após a confirmação de que deseja fazer o upgrade. Portanto, defina a expiração para 30 minutos, para que, se não for iniciada dentro desse período, ela não ultrapasse sua janela. A expiração deve estar
entre 5 minutos (padrão) e 24 horas a partir de agora. Há duas maneiras de definir a expiração usando a CLI --expire-in ou --expire-at. Para obter mais informações, consulte a ajuda do comando.
Atualização por meio do Terraform
Disponível na versão do provedor Terraform >= 1.79.2
Para atualizar, basta adicionar ou alterar o valor version em sua configuração. Há também um sinalizador bool opcional, version_upgrade_skip_backup, que você pode definir para ignorar o backup.
Não é recomendável pular um backup. Ignorar um backup antes de uma atualização de versão é perigoso e pode resultar em perda de dados. Se o upgrade falhar em qualquer estágio, não haverá backup imediato para restauração.
O banco de dados será colocado no modo READ-ONLY durante a atualização. É altamente recomendável testar antes de fazer o upgrade.
A atualização pode exigir mais tempo do que o tempo limite padrão. Um valor de tempo limite mais longo pode ser definido com o uso do atributo timeouts.
O Terraform tem timeouts em vez de carimbos de data/hora de expiração. Portanto, aumente o tempo limite, pois o valor de atualização do tempo limite é usado como expiração. Por exemplo, se você definir um tempo limite de 20 minutos, a expiração será definida para 20 minutos e, se o upgrade não for iniciado nesse período, ela expirará e o upgrade não será iniciado. Observe que a expiração máxima é de 24 horas, portanto, mesmo que você defina um tempo limite de 36 horas, o upgrade expirará se não for iniciado nas primeiras 24 horas.
Se uma atualização estiver em andamento, observe que algumas tarefas podem estar na fila e não serão executadas até que a atualização da versão seja concluída.
Resolução de problemas
Controles de saúde
Se uma instância de serviço estiver com poucos recursos, a tarefa falhará porque não é possível garantir uma atualização segura nessas circunstâncias. O consumo de recursos pode ser avaliado usando a integração de monitoramento. Se nem todos os componentes do banco de dados estiverem disponíveis para upgrade, a tarefa de upgrade falhará.
Antes de iniciar um upgrade do Elasticsearch, é fundamental verificar se o cluster tem recursos suficientes e se está em um estado saudável. Certifique-se de que o status de integridade do cluster seja VERDE. Confirme se o uso do disco está abaixo de 85% para evitar falhas no upgrade devido a espaço insuficiente. Execute uma pré-verificação secundária para detectar depreciações no cluster. Se forem encontradas depreciações, o processo de atualização será interrompido e deverá ser tentado novamente somente depois que todos os problemas forem resolvidos.
Esse problema pode ocorrer devido à manutenção ou ao uso do banco de dados. As tarefas que falharam devido a falhas nos controles de integridade podem ser tentadas novamente mais tarde. Se a tarefa falhar continuamente, abra um tíquete de suporte no site IBM Cloud support.
Restaurando do backup
Antes que uma versão principal de um banco de dados chegue ao fim de sua vida útil (EOL), faça o upgrade para a próxima versão principal disponível restaurando a partir de um backup em uma nova instância do banco de dados.
Prepare-se para executar e depois migrar para a versão mais recente antes da data de EOL. Para obter mais informações, consulte Política de controle de versão.
Não há suporte para a reversão de versões.
Atualize para a versão mais recente do Elasticsearch, disponível em Databases for Elasticsearch. Encontre a versão mais recente na página do catálogo, no comando do plug-in da CLI Cloud Databases ibmcloud cdb deployables-showou no endpoint da API Cloud Databases /deployables endpoint.
A atualização é feita por meio da restauração de um backup dos seus dados em uma nova implantação. A restauração a partir de um backup tem várias vantagens:
- O banco de dados original permanece em execução e o trabalho de produção pode ficar sem interrupção.
- É possível testar o novo banco de dados fora de produção e tomar ações com relação a quaisquer incompatibilidades do aplicativo.
- O processo inteiro pode ser executado novamente em qualquer ponto.
- Uma nova restauração reduz a probabilidade de que artefatos desnecessários da versão mais antiga do banco de dados sejam transportados para o novo banco de dados.
Caminhos de upgrade
| Versão atual | Caminho de upgrade da versão principal |
|---|---|
| Elasticsearch 8.10 | Elasticsearch 8.19 |
| Elasticsearch 8.12 | Elasticsearch 8.19 |
| Elasticsearch 8.15 | Elasticsearch 8.19 |
| Elasticsearch 8.19 | Elasticsearch 9.1 |
Fazendo upgrade na IU
Para novos modelos de hospedagem (computação isolada e computação compartilhada), a atualização para uma nova versão principal está disponível por meio da CLI e da API.
Você pode fazer upgrade para uma nova versão restaurando um backup na página Backups e restauração da sua implementação no console IBM Cloud. Clique em Restaurar backup em um backup para abrir uma página em uma nova guia, onde você pode alterar algumas opções para a nova implantação. Uma delas é a versão do banco de dados, que é preenchida automaticamente com as versões disponíveis para as quais você fará upgrade. Selecione uma versão e clique em “Restaurar backup” para iniciar o processo de provisionamento e restauração.
Fazendo upgrade por meio da CLI
Ao fazer upgrade e restauração do backup por meio da CLI da IBM Cloud, use o comando de fornecimento do controlador de recurso.
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>
Os parâmetros instance_name, service_id, service_plan_id e region são todos obrigatórios. Você também fornece o -p com a versão e os parâmetros de ID de backup em um objeto JSON.
A nova implementação é dimensionada automaticamente com o mesmo disco e a memória que a implementação de origem no momento do backup.
ibmcloud resource service-instance-create example-upgrade databases-for-elasticsearch enterprise us-south \
-p \ '{
"backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
"version":"8.0"
}'
Fazendo upgrade por meio da API
Assim como no provisionamento por meio da API, é necessário concluir as etapas necessárias para usar a API do controlador de recursos antes de poder utilizá-la para atualizar a partir de um backup. Em seguida, envie à API uma solicitação de POST. Os parâmetros name, target, resource_group e resource_plan_id são todos
necessários. Informe também a versão e o ID do backup. A nova implementação tem a mesma alocação de memória e de disco que a implementação de origem no momento do backup.
curl -X POST https://resource-controller.cloud.ibm.com/v2/resource_instances -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{
"name": "my-instance",
"target": "us-south",
"resource_group": "5g9f447903254bb58972a2f3f5a4c711",
"resource_plan_id": "databases-for-elasticsearch-enterprise",
"backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
"version":"8.0"
}'
Atualização por meio do Terraform
Use o Terraform para restaurar um backup de uma versão mais antiga para uma nova versão.
- Defina seu
backup_id. Para obter mais informações, consultebackup_id. - Defina seu
versionno atributo de versão. Para obter mais informações, consulteversion.
O código é parecido com o seguinte:
resource "ibm_database" "<your-instance>" {
name = "<your_database_name>"
service = "databases-for-elasticsearch"
plan = "enterprise"
location = "<region>"
version = "<version>"
backup_id = "<backup_id>"
}
Para obter mais informações, consulte o Cloud Databases Terraform Registry. Como alternativa, você pode usar o Terraform IBM Modules(TIM) para criar uma nova instância de banco de dados a partir de uma instância de backup. Para obter mais informações, consulte Exemplo de restauração a partir de backup.