Fazer upgrade para uma nova versão principal

2ª geração

Databases for MongoDB oferece duas opções diferentes de atualização:

  • Atualização direta para uma nova versão principal (atualmente compatível com o Plano Padrão do MongoDB ).
  • Restauração a partir de backup (compatível com o Plano Standard do MongoDB e o Plano Enterprise do MongoDB ).

Atualizações de versão principal sem remoção do sistema

A atualização da versão principal no próprio ambiente permite que você atualize sua implantação para a próxima versão principal, eliminando a necessidade de restaurar um backup em uma nova implantaçã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 realizados.

Durante o período de atualização da versão principal sem interrupção (incluindo um backup), a implantação é configurada para setUserWriteBlockMode, o que permite apenas operações de leitura, mas não de gravação na implantação, a fim de garantir uma atualização segura. Assim que a atualização da versão principal da implantação for concluída, o writeBlockMode é removido.

Existem duas opções ao realizar uma atualização de versão principal no local:

  • Atualização de versão principal no local com backup: essa opção cria um backup antes de realizar a atualização propriamente dita, oferecendo uma camada adicional de segurança.

  • Atualização de versão principal no local sem backup: essa opção realiza a atualização sem criar um backup previamente. Caso a atualização no local não seja bem-sucedida, você precisará restaurar sua implantação a partir do backup mais recente em uma nova implantação.

    Não é recomendável realizar uma atualização no local sem backup. Se a atualização falhar em qualquer etapa, isso poderá resultar em perda de dados, pois não haverá um backup imediato a partir do qual seja possível restaurá-los.

Antes de Iniciar

Leve em consideração os seguintes aspectos antes de iniciar o procedimento de atualização.

  • Sua implantação deve estar em bom estado antes da atualização.
  • Sua implantação deve ter pelo menos 2 GB de espaço livre em disco.
  • Sua implantação não deve conter nenhum usuário com privilégio para bypassWriteBlockingMode.
  • Você só pode atualizar para a próxima versão principal, em vez de especificar a versão de sua preferência.
  • Cada versão principal contém alguns recursos que podem não ser compatíveis com versões anteriores. Verifique as notas de lançamento do fornecedor do banco de dados para identificar quaisquer alterações que possam afetar seus aplicativos.
  • O retrocesso de uma implantação para uma versão anterior não é compatível.
  • A atualização de versão principal no local não pode ser cancelada depois de iniciada.
  • Para o MongoDB Enterprise Edition, deve haver pelo menos um backup disponível antes da atualização.

Fazendo upgrade na IU

  1. Crie um novo Databases for MongoDB para testar o processo de atualização.
    Crie a implantação restaurando um backup da sua implantação existente com a mesma versão.

  2. Direcione seu aplicativo de teste para a implantação de teste.
    Atualize seu aplicativo de teste para que ele aponte para a implantação de teste. Verifique se seu aplicativo de teste consegue se conectar com sucesso à implantação de teste e se o aplicativo funciona conforme o esperado. Realizar todos os testes de desempenho e operacionais necessários no ambiente de teste.

  3. Atualize a versão principal da 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 SOMENTE LEITURA enquanto o processo de atualização é concluído. Observe quanto tempo a atualização leva para ser concluída, para que você possa usar a configuração de validade da atualização para mantê-la dentro do seu horário de manutenção.

  4. Verifique se o seu aplicativo de teste funciona com a nova versão do banco de dados.
    Se o seu aplicativo estiver funcionando, esta etapa confirma que é seguro atualizar seu banco de dados de produção.

  5. Atualize a implantação do banco de dados de produção para a nova versão.
    Depois de confirmar que seu aplicativo funciona corretamente com a nova versão do banco de dados, você pode retornar ao console de gerenciamento e iniciar o processo de atualização da sua implantação em produção. Na seção “Detalhes da implantação ” da página “Visão geral ”, clique no botão “Atualizar versão principal” e siga as etapas.

    Uma vez iniciado o processo de atualização no local, ele não pode ser interrompido nem revertido. Portanto, na improvável hipótese de ocorrer um erro, a implantação do seu banco de dados poderia se tornar irrecuperável. Portanto, crie um backup que você possa usar posteriormente para restaurar em uma nova implantação. Se você selecionar “Atualização de versão principal no local com backup”, o backup criado poderá ser usado para restaurar em uma nova implantação.

O expiration for starting upgrade permite que você configure um período de “timeout” dentro do qual a tarefa de atualização deve ser iniciada, caso contrário ela será cancelada automaticamente. Além disso, teste a atualização no ambiente de teste com antecedência para garantir que ela seja concluída dentro do intervalo de tempo desejado. Se, por exemplo, você quiser concluir a atualização em até 1 hora e já tiver testado a atualização e souber que ela leva 30 minutos, então sua tarefa de atualização deverá ser iniciada no prazo de 30 minutos após você confirmar que deseja realizar a atualização. Portanto, defina o prazo de validade para 30 minutos, de modo que, se não iniciar dentro desse prazo, não ultrapasse o seu intervalo de tempo.

Fazendo upgrade por meio da API

Use o comando a seguir para atualizar 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": "7.0"}'

O expiration for starting upgrade permite que você configure um período de “timeout” dentro do qual a tarefa de atualização deve ser iniciada, caso contrário ela será cancelada automaticamente. Além disso, teste a atualização no ambiente de teste com antecedência para garantir que ela seja concluída dentro do intervalo de tempo desejado. Se, por exemplo, você quiser concluir a atualização em até 1 hora e já tiver testado a atualização e souber que ela leva 30 minutos, então sua tarefa de atualização deverá ser iniciada no prazo de 30 minutos após você confirmar que deseja realizar a atualização. Portanto, defina o prazo de validade para um carimbo de data e hora de 30 minutos a partir de agora, de modo que, se não começar dentro desse prazo, não ultrapasse o seu intervalo de tempo. O prazo de validade deve estar entre 5 minutos (padrão) e 24 horas a partir de agora. Para obter mais informações, consulte a API do Cloud Databases.

Fazendo upgrade por meio da CLI

Disponível na versão do plug-in CDB >= 0.20.0

Para visualizar a lista de transições permitidas de atualização e restauração para a implantação:

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

Para executar o comando de atualização com os parâmetros necessários:

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

Para visualizar todos os detalhes dos parâmetros do comando:

ibmcloud cdb deployment-version-upgrade --help

O expiration for starting upgrade permite que você configure um período de “timeout” dentro do qual a tarefa de atualização deve ser iniciada, caso contrário ela será cancelada automaticamente. Além disso, teste a atualização no ambiente de teste com antecedência para garantir que ela seja concluída dentro do intervalo de tempo desejado. Se, por exemplo, você quiser concluir a atualização em até 1 hora e já tiver testado a atualização e souber que ela leva 30 minutos, então sua tarefa de atualização deverá ser iniciada no prazo de 30 minutos após você confirmar que deseja realizar a atualização. Portanto, defina o prazo de validade para 30 minutos, de modo que, se não iniciar dentro desse prazo, não ultrapasse o seu intervalo de tempo. O prazo de validade deve estar entre 5 minutos (padrão) e 24 horas a partir de agora. Existem duas maneiras de definir o prazo de validade 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 de version na sua configuração. Há também um sinalizador booleano opcional, version_upgrade_skip_backup``, que você pode definir para ignorar o backup.

Não é recomendável pular um backup. Deixar de fazer um backup antes de uma atualização de versão é perigoso e pode resultar em perda de dados caso a atualização falhe em qualquer etapa — não haverá um backup imediato a partir do qual se possa restaurar os dados.

O banco de dados será colocado no modo SOMENTE LEITURA durante a atualização. É altamente recomendável realizar testes antes de atualizar.

A atualização pode levar mais tempo do que o tempo limite padrão. É possível definir um tempo limite mais longo usando o atributo timeouts.

O Terraform utiliza limites de tempo em vez de carimbos de data e hora de validade. Portanto, aumente o tempo de espera, pois o valor de atualização do tempo de espera é usado como prazo de validade. Por exemplo, se você definir um tempo limite de 20 minutos, o prazo de validade será fixado em 20 minutos e, se a atualização não for iniciada nesse período, ela expirará e a atualização não será iniciada. Observe que o prazo máximo de validade é de 24 horas — portanto, mesmo que você defina um tempo limite de 36 horas, a atualização expirará se não tiver sido iniciada 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 de versão seja concluída.

Resolução de problemas

Usuário com bypassWriteBlockingMode

Para garantir uma atualização segura, nenhum usuário deve poder realizar uma ação de gravação durante o backup ou a atualização. Antes que o banco de dados entre no modo writeBlockMode, é verificado se algum usuário possui o privilégio de bypassWriteBlockingMode. Caso tal usuário seja identificado, a tarefa passa para o estado de falha. Qualquer nova tentativa falhará, e somente a remoção de um usuário com esse privilégio permitirá a execução da atualização de versão principal no local.

Avaliações de saúde

Se uma instância de serviço estiver com poucos recursos, a tarefa falhará, pois não é possível garantir uma atualização segura nessas circunstâncias. O consumo de recursos pode ser avaliado por meio da integração de monitoramento. Se nem todos os componentes do banco de dados estiverem disponíveis para atualização, a tarefa de atualização falhará. Isso pode ocorrer devido a trabalhos de manutenção. As tarefas que falharam devido a verificações de integridade malsucedidas podem ser repetidas posteriormente. Se a tarefa continuar falhando, abra um ticket de suporte no site IBM Cloud.

Restaurando do backup

Antes que uma versão principal de um banco de dados chegue ao fim de sua vida útil (EOL), faça a atualização 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 continuar operando com a versão mais recente e, em seguida, migrar para ela antes da data de fim de vida útil (EOL). Para obter mais informações, consulte a Política de Controle de Versões.

A reversão de versões não é suportada.

Atualize para a versão mais recente do MongoDB, disponível em Databases for MongoDB. Encontre a versão mais recente na página do catálogo, por meio do comando do plug-in da CLI do Cloud Databases ibmcloud cdb deployables-show ou no endpoint da API do Cloud Databases /deployables.

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 apresenta 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

Caminhos de atualização para versões principais
Versão atual Caminho de upgrade da versão principal
MongoDB 7 MongoDB 8

Fazendo upgrade na IU

Para os 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 atualizar para uma nova versão restaurando um backup a partir da página “Backups e restauração” da sua implantação no console IBM Cloud. Clique em “Restaurar backup” em um backup para abrir uma página em uma nova aba, onde você poderá 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-mongodb standard us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-mongodb:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":"7.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-mongodb-standard",
    "backup_id": "crn:v1:bluemix:public:databases-for-mongodb:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":"7.0"
  }'

Atualização por meio do Terraform

Use o Terraform para restaurar a partir de um backup de uma versão anterior para uma versão mais recente.

  1. Defina seu backup_id. Para obter mais informações, consulte backup_id.
  2. Defina seu version no atributo “version”. Para obter mais informações, consulte version.

O código é o seguinte:

resource "ibm_database" "<your-instance>" {
  name                                 = "<your_database_name>"
  service                              = "<service>"
  plan                                 = "<plan>"
  location                             = "<region>"
  version                              = "<version>"
  backup_id                            = "<backup_id>"
}

Para obter mais informações, consulte o Registro do Terraform da Cloud Databases.