Fazer upgrade de uma instância de banco de dados para o Amazon RDS Custom for Oracle - Amazon Relational Database Service

Fazer upgrade de uma instância de banco de dados para o Amazon RDS Custom for Oracle

Você pode fazer upgrade de uma instância de banco de dados do Amazon RDS Custom modificando-a para utilizar uma nova versão de mecanismo personalizada (CEV). Para obter informações gerais sobre upgrades, consulte Atualizar a versão de mecanismo de uma instância de banco de dados.

Visão geral das atualizações do mecanismo RDS para Oracle

Com o RDS Custom for Oracle, você pode corrigir seu banco de dados Oracle ou seu sistema operacional (OS) de instância de banco de dados criando novos CEVs e modificando sua instância para usar o novo CEV.

Opções de atualização de CEV

Ao criar uma CEV para uma atualização, existem as seguintes opções mutuamente exclusivas:

Somente banco de dados

Reutilize a Amazon Machine Image (AMI) atualmente em uso pela sua instância de banco de dados, mas especifique diferentes binários de banco de dados. O RDS Custom aloca um novo volume binário e o anexa à instância existente do Amazon EC2. O RDS Custom substituem o volume completo do banco de dados por um novo volume que usa a versão do banco de dados de destino.

Somente sistema operacional

Reutilize os binários do banco de dados atualmente em uso pela sua instância de banco de dados, mas especifique uma AMI diferente. O RDS Custom aloca uma nova instância do Amazon EC2 e, em seguida, anexa o volume binário existente à nova instância. O volume do banco de dados existente é mantido.

Se você quiser atualizar o sistema operacional e o banco de dados, deverá atualizar o CEV duas vezes. Você pode atualizar o sistema operacional e depois o banco de dados ou atualizar o banco de dados e depois o sistema operacional.

Atenção

Ao corrigir seu sistema operacional, você perde os dados do volume raiz e qualquer personalização existente do sistema operacional. Portanto, é altamente recomendável não usar o volume para instalações ou para armazenar dados ou arquivos permanentes. Recomendamos também que você faça backup dos dados antes da atualização.

Aplicação de patches sem CEVs

É altamente recomendável que você faça upgrade de sua instância de banco de dados do RDS Custom para Oracle usando CEVs. A automação do RDS Custom para Oracle sincroniza os metadados do patch com o binário do banco de dados na instância de banco de dados

Em circunstâncias especiais, o RDS Custom oferece suporte à aplicação de um patch “único” diretamente na instância subjacente do Amazon EC2 usando OPATCH. Um caso de uso válido pode ser um patch que você queira aplicar imediatamente, mas a equipe do RDS Custom está atualizando o recurso de CEV, causando um atraso. Para aplicar um patch manualmente, realize as seguintes etapas:

  1. Pause a automação do RDS Custom.

  2. Aplique seu patch nos binários de banco de dados na instância do Amazon EC2.

  3. Retome a automação do RDS Custom.

Uma desvantagem da técnica anterior é que você deve aplicar o patch manualmente em cada instância que deseja atualizar. Por outro lado, ao criar uma CEV, você pode criar ou fazer upgrade de várias instâncias de banco de dados usando a mesma CEV.

Etapas gerais para corrigir sua instância de banco de dados com um CEV

Se você aplicar patches no SO ou no banco de dados, execute as seguintes etapas básicas:

  1. Crie um CEV que contenha um dos itens a seguir, dependendo se você está corrigindo o banco de dados ou o sistema operacional:

    • A Oracle Database RU que deseja aplicar à instância de banco de dados

    • Uma AMI diferente — a mais recente disponível ou a que você especificar — e um CEV existente para usar como fonte

    Siga as etapas em Criar um CEV.

  2. (Opcional para aplicação de patches no banco de dados) Verifique as atualizações disponíveis da versão do mecanismo executando. describe-db-engine-versions

  3. Inicie o processo de aplicação de patches executandomodify-db-instance.

    O status da instância que está sendo corrigida difere da seguinte forma:

    • Enquanto o RDS aplica patches no banco de dados, o status da instância de banco de dados muda para Atualização.

    • Enquanto o RDS aplica patches no SO, o status da instância de banco de dados muda para Modificando.

    Quando a instância de banco de dados tem o status Disponível, a correção é concluída.

  4. Confirme se sua instância de banco de dados usa o novo CEV executandodescribe-db-instances.

Requisitos para atualizações do RDS Custom para Oracle

Para atualizar a instância de banco de dados do RDS Custom para Oracle, os seguintes requisitos devem ser atendidos:

  • A CEV de destino para o qual você está fazendo a atualização deve existir.

  • Você deve atualizar o sistema operacional ou o banco de dados em uma única operação. Não há suporte para atualizar o sistema operacional e o banco de dados em uma única chamada de API.

  • A CEV de destino deve usar as configurações dos parâmetros de instalação que estão no manifesto da CEV atual. Por exemplo, não é possível atualizar um banco de dados que use o Oracle home padrão para uma CEV que use um Oracle home não padrão.

  • A CEV de destino deve usar uma nova versão secundária do banco de dados, não uma nova versão principal. Por exemplo, não é possível fazer atualização de uma CEV do Oracle Database 12c para uma CEV do Oracle Database 19c. Mas é possível atualizar da versão 2.,0.0.0.ru-2023-04.rur-2023-04.r1 para a versão 21.0.0.0.ru-2023-07.rur-2023-07.r1.

  • Para atualizações do sistema operacional, o CEV de destino deve usar uma AMI diferente, mas ter a mesma versão principal.

Considerações sobre atualizações do banco de dados do RDS Custom para Oracle

Se você planeja atualizar o banco de dados, pense no seguinte:

  • Quando você faz upgrade da instância de banco de dados primária, o RDS Custom para Oracle faz upgrade das réplicas de leitura automaticamente. Ao atualizar o sistema operacional, você deve atualizar as réplicas de leitura manualmente.

  • Ao atualizar um banco de dados de contêiner (CDB) para uma nova versão de banco de dados, o RDS Custom para Oracle confere se todos os PDBs estão abertos ou podem ser abertos. Se essas condições não forem atendidas, o RDS Custom interromperá a verificação e retornará o banco de dados ao seu estado original sem tentar a atualização. Se as condições forem atendidas, o RDS Custom corrigirá primeiro a raiz do CDB e depois corrigirá todos os outros PDBs (inclusive PDB$SEED) em paralelo.

    Depois que a aplicação de patches for concluída, o RDS Custom tentará abrir todos os PDBs. Se algum PDB não abrir, você receberá o seguinte evento: The following PDBs failed to open: list-of-PDBs. Se o RDS Custom não corrigir a raiz do CDB ou qualquer PDB, a instância será colocada no estado PATCH_DB_FAILED.

  • Talvez você queira realizar uma atualização de versão principal e uma conversão de não CDB em CDB ao mesmo tempo. Nesse caso, recomendamos que você proceda da seguinte forma:

    1. Crie uma instância de banco de dados do RDS Custom para Oracle que use a arquitetura multilocatária da Oracle.

    2. Conecte um não CDB à raiz do CDB, criando-o como um PDB. O não CDB deve ser da mesma versão principal que seu CDB.

    3. Converta o PDB executando o script SQL noncdb_to_pdb.sql da Oracle.

    4. Valide sua instância do CDB.

    5. Atualize sua instância do CDB.

Considerações sobre atualizações do sistema operacional do RDS Custom para Oracle

Ao planejar uma atualização do sistema operacional, pense no seguinte:

  • Não é possível fornecer a própria AMI para uso em uma CEV do RDS Custom para Oracle. É possível especificar a AMI padrão ou uma AMI que tenha sido usada anteriormente por uma CEV do RDS Custom para Oracle.

    nota

    O RDS Custom para Oracle lança uma nova AMI padrão quando vulnerabilidades e exposições comuns são descobertas. Nenhum cronograma fixo está disponível ou garantido. O RDS Custom para Oracle tende a publicar uma nova AMI padrão a cada trinta dias.

  • Ao atualizar o sistema operacional na instância de banco de dados primária, é necessário atualizar as réplicas de leitura associadas manualmente.

  • Reserve capacidade computacional suficiente do Amazon EC2 para o tipo de instância na AZ antes de começar a aplicar patches no sistema operacional.

    Ao criar uma reserva de capacidade, você especifica a AZ, o número de instâncias e os atributos da instância (incluindo o tipo de instância). Por exemplo, se a instância de banco de dados utiliza o tipo de instância de EC2 subjacente r5.large, convém reservar a capacidade do EC2 para r5.large na AZ. Durante a aplicação de patches no sistema operacional, o RDS Custom cria um novo host do tipo db.r5.large, que pode ficar preso se o AZ não tiver capacidade do EC2 para esse tipo de instância. Se você reservar a capacidade do EC2, reduzirá o risco de bloqueios de patches causados por restrições de capacidade. Para obter mais informações, consulte Como trabalhar com Reservas de Capacidade no Guia do usuário do Amazon EC2 para instâncias do Linux.

  • Faça backup da instância de banco de dados antes de atualizar o sistema operacional. A atualização remove os dados do volume raiz e todas as personalizações existentes do sistema operacional.

  • No modelo de responsabilidade compartilhada, você é responsável por manter o sistema operacional atualizado. O RDS Custom para Oracle não determina quais patches são aplicados ao sistema operacional. Se o RDS Custom para Oracle estiver funcional, será possível usar a AMI associada a essa CEV indefinidamente.

Visualizar destinos de upgrade válidos para instâncias de banco de dados do RDS Custom for Oracle

Você pode visualizar CEVs existentes na página Custom engine versions (Versões de mecanismo personalizadas) no AWS Management Console.

Também pode utilizar o comando describe-db-engine-versions da AWS CLI para encontrar upgrades válidos para suas instâncias de banco de dados, como mostra o exemplo a seguir. Este exemplo pressupõe que você criou uma instância de banco de dados usando a versão 19.my_cev1 do mecanismo e que as versões 19.my_cev2 de upgrade 19.my_cev existem.

aws rds describe-db-engine-versions --engine custom-oracle-ee --engine-version 19.my_cev1

A saída será semelhante à seguinte. O ImageId campo mostra o ID da AMI.

{ "DBEngineVersions": [ { "Engine": "custom-oracle-ee", "EngineVersion": "19.my_cev1", ... "Image": { "ImageId": "ami-2345", "Status": "active" }, "DBEngineVersionArn": "arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12a34b5c-67d8-90e1-2f34-gh56ijk78lm9" "ValidUpgradeTarget": [ { "Engine": "custom-oracle-ee", "EngineVersion": "19.my_cev2", "Description": "19.my_cev2 description", "AutoUpgrade": false, "IsMajorVersionUpgrade": false }, { "Engine": "custom-oracle-ee", "EngineVersion": "19.my_cev3", "Description": "19.my_cev3 description", "AutoUpgrade": false, "IsMajorVersionUpgrade": false } ] ...

Fazer upgrade de uma instância de banco de dados para o RDS Custom for Oracle

Para fazer upgrade da sua instância de banco de dados do RDS Custom, você a modifica para utilizar uma nova CEV. Esse CEV pode conter novos binários de banco de dados ou uma nova AMI. Se você quiser atualizar o banco de dados e o sistema operacional, deverá realizar duas atualizações separadas.

nota

Se você atualizar o banco de dados, o RDS Custom atualizará automaticamente as réplicas de leitura após atualizar a instância de banco de dados primária. Se você atualizar o SO, deverá atualizar as réplicas manualmente.

Antes de começar, revise Requisitos para atualizações do RDS Custom para Oracle Considerações sobre atualizações do banco de dados do RDS Custom para Oracle e.

Como modificar uma instância de banco de dados do RDS Custom para Oracle
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, escolha Databases (Bancos de dados) e a instância de banco de dados do RDS Custom para SQL Server que você deseja excluir.

  3. Selecione Modify. A página Modify DB instance (Modificar instância de banco de dados) será exibida.

  4. Em DB engine version (Versão do mecanismo de banco de dados), selecione outra CEV. Faça o seguinte:

    • Se você estiver corrigindo o banco de dados, certifique-se de que o CEV especifique binários de banco de dados diferentes daqueles usados pela sua instância de banco de dados e não especifique uma AMI diferente da AMI usada atualmente pela sua instância de banco de dados.

    • Se você estiver corrigindo o sistema operacional, certifique-se de que o CEV especifique uma AMI diferente da AMI usada atualmente pela sua instância de banco de dados e não especifique binários de banco de dados diferentes.

      Atenção

      Ao corrigir seu sistema operacional, você perde os dados do volume raiz e qualquer personalização existente do sistema operacional.

  5. Escolha Continue (Continuar) e verifique o resumo de modificações.

    Escolha Apply immediately (Aplicar imediatamente) para aplicar as alterações imediatamente.

  6. Se estiverem corretas, escolha Modify DB Instance (Modificar instância de banco de dados). Ou escolha Back (Voltar) para editar as alterações ou Cancel (Cancelar) para cancelar as alterações.

Os exemplos a seguir mostram possíveis cenários de atualização. Os exemplos pressupõem que você criou uma instância de banco de dados do RDS Custom for Oracle com as seguintes características:

  • Nome da instância de banco de dados

  • CEV chamado 19.my_cev1

  • Oracle Database 19c usando a arquitetura não CDB

  • Oracle Linux 7.9 usando AMI ami-1234

A AMI mais recente fornecida pelo serviço é. ami-2345 Você pode encontrar o endpoint executando o comando describe-db-engine-versions da CLI:

Atualizando o SO

Neste exemplo, você deseja fazer o upgrade ami-1234 paraami-2345, que é a AMI mais recente fornecida pelo serviço. Como essa é uma atualização do sistema operacional, os binários do banco de dados para ami-1234 e ami-2345 devem ser os mesmos. Você cria um novo CEV chamado 19.my_cev2 com base em. 19.my_cev1

Para Linux, macOS ou Unix:

aws rds create-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev2 \ --description "Non-CDB CEV based on ami-2345" \ --kms-key-id key-name \ --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 \ --image-id ami-2345

Para Windows:

aws rds create-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev2 ^ --description "Non-CDB CEV based on ami-2345" ^ --kms-key-id key-name ^ --source-custom-db-engine-version-identifer arn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789 ^ --image-id ami-2345

Para fazer upgrade de uma instância de banco de dados do RDS Custom, utilize o comando modify-db-instance da AWS CLI com os seguintes parâmetros:

  • --db-instance-identifier— Especifique a instância de banco de dados do RDS Custom for Oracle a ser atualizada.

  • --engine-version— Especifique o CEV que tem a nova AMI.

  • --no-apply-immediately | --apply-immediately – Se você deseja realizar o upgrade imediatamente ou aguardar até a janela de manutenção agendada

O exemplo a seguir faz upgrade do my-custom-instance para a versão 19.my_cev2. Somente o sistema operacional é atualizado.

Para Linux, macOS ou Unix:

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --engine-version 19.my_cev2 \ --apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --engine-version 19.my_cev2 ^ --apply-immediately

Atualizando o banco de dados

Neste exemplo, convém aplicar o patch Oracle p35042068 à instância de banco de dados do RDS para Oracle. Como você atualizou seu sistema operacional emAtualizando o SO, sua instância de banco de dados está sendo usada atualmente19.my_cev2, com base emami-2345. Você cria um novo CEV chamado 19.my_cev3 que também usaami-2345, mas especifica um novo manifesto JSON na variável de $MANIFEST ambiente. Portanto, somente os binários do banco de dados são diferentes em seu novo CEV e no CEV que sua instância está usando atualmente.

Para Linux, macOS ou Unix:

aws rds create-custom-db-engine-version \ --engine custom-oracle-ee \ --engine-version 19.my_cev3 \ --description "Non-CDB CEV with p35042068 based on ami-2345" \ --kms-key-id key-name \ --image-id ami-2345 \ --manifest $MANIFEST

Para Windows:

aws rds create-custom-db-engine-version ^ --engine custom-oracle-ee ^ --engine-version 19.my_cev3 ^ --description "Non-CDB CEV with p35042068 based on ami-2345" ^ --kms-key-id key-name ^ --image-id ami-2345 ^ --manifest $MANIFEST

O exemplo a seguir faz upgrade do my-custom-instance para a versão 19.my_cev3. Somente o banco de dados é atualizado.

Para Linux, macOS ou Unix:

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --engine-version 19.my_cev3 \ --apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --engine-version 19.my_cev3 ^ --apply-immediately

Visualizar upgrades pendentes para instâncias de banco de dados do RDS Custom

É possível ver upgrades pendentes para as instâncias de banco de dados do Amazon RDS Custom utilizando o comando describe-db-instances ou describe-pending-maintenance-actions da AWS CLI.

Contudo, essa abordagem não funcionará se você tiver usado a opção --apply-immediately ou se o upgrade estiver em andamento.

O comando describe-db-instances a seguir mostra upgrades pendentes para my-custom-instance.

aws rds describe-db-instances --db-instance-identifier my-custom-instance

A saída será semelhante à seguinte.

{ "DBInstances": [ { "DBInstanceIdentifier": "my-custom-instance", "EngineVersion": "19.my_cev1", ... "PendingModifiedValues": { "EngineVersion": "19.my_cev3" ... } } ] }

Solucionar falha no upgrade de uma instância de banco de dados do RDS Custom para Oracle

Se um upgrade de instância de banco de dados do RDS Custom falhar, um evento do RDS será gerado, e o status da instância de banco de dados se tornará upgrade-failed.

Você pode ver esse status utilizando o comando describe-db-instances da AWS CLI, como mostra o exemplo a seguir.

aws rds describe-db-instances --db-instance-identifier my-custom-instance

A saída será semelhante à seguinte.

{ "DBInstances": [ { "DBInstanceIdentifier": "my-custom-instance", "EngineVersion": "19.my_cev1", ... "PendingModifiedValues": { "EngineVersion": "19.my_cev3" ... } "DBInstanceStatus": "upgrade-failed" } ] }

Após uma falha de upgrade, todas as ações do banco de dados são bloqueadas, exceto para modificar a instância de banco de dados para realizar as seguintes tarefas:

  • Nova tentativa de executar o mesmo upgrade

  • Pausar e retomar a automação do RDS Custom

  • Recuperação em um ponto anterior no tempo (PITR)

  • Exclusão de uma instância de banco de dados

nota

Se a automação tiver sido pausada para a instância de banco de dados do RDS Custom, você não poderá repetir o upgrade até retomá-la.

As mesmas ações são aplicáveis a uma falha de upgrade para uma réplica de leitura gerenciada pelo RDS e a uma instância principal.

Para obter mais informações, consulte Solucionar problemas de upgrade do RDS Custom para Oracle.