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.
Tópicos
- Visão geral das atualizações do mecanismo RDS para Oracle
- Requisitos para atualizações do RDS Custom para Oracle
- Considerações sobre atualizações do banco de dados do RDS Custom para Oracle
- Considerações sobre atualizações do sistema operacional do RDS Custom para Oracle
- Visualizar destinos de upgrade válidos para instâncias de banco de dados do RDS Custom for Oracle
- Fazer upgrade de uma instância de banco de dados para o RDS Custom for Oracle
- Visualizar upgrades pendentes para instâncias de banco de dados do RDS Custom
- Solucionar falha no upgrade de uma instância de banco de dados do RDS Custom para Oracle
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.
Tópicos
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:
-
Pause a automação do RDS Custom.
-
Aplique seu patch nos binários de banco de dados na instância do Amazon EC2.
-
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:
-
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.
-
-
(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
-
Inicie o processo de aplicação de patches executando
modify-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.
-
-
Confirme se sua instância de banco de dados usa o novo CEV executando
describe-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:
. Se o RDS Custom não corrigir a raiz do CDB ou qualquer PDB, a instância será colocada no estadolist-of-PDBs
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:
-
Crie uma instância de banco de dados do RDS Custom para Oracle que use a arquitetura multilocatária da Oracle.
-
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.
-
Converta o PDB executando o script SQL
noncdb_to_pdb.sql
da Oracle. -
Valide sua instância do CDB.
-
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
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
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.
-
Selecione Modify. A página Modify DB instance (Modificar instância de banco de dados) será exibida.
-
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.
-
-
Escolha Continue (Continuar) e verifique o resumo de modificações.
Escolha Apply immediately (Aplicar imediatamente) para aplicar as alterações imediatamente.
-
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-version19.my_cev2
\ --description"Non-CDB CEV based on ami-2345"
\ --kms-key-idkey-name
\ --source-custom-db-engine-version-identiferarn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789
\ --image-idami-2345
Para Windows:
aws rds create-custom-db-engine-version ^ --engine
custom-oracle-ee
^ --engine-version19.my_cev2
^ --description"Non-CDB CEV based on ami-2345"
^ --kms-key-idkey-name
^ --source-custom-db-engine-version-identiferarn:aws:rds:us-west-2:123456789012:cev:custom-oracle-ee/19.my_cev1/12345678-ab12-1234-cde1-abcde123456789
^ --image-idami-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-version19.my_cev2
\ --apply-immediately
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifier
my-custom-instance
^ --engine-version19.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-version19.my_cev3
\ --description"Non-CDB CEV with p35042068 based on ami-2345"
\ --kms-key-idkey-name
\ --image-idami-2345
\ --manifest$MANIFEST
Para Windows:
aws rds create-custom-db-engine-version ^ --engine
custom-oracle-ee
^ --engine-version19.my_cev3
^ --description"Non-CDB CEV with p35042068 based on ami-2345"
^ --kms-key-idkey-name
^ --image-idami-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-version19.my_cev3
\ --apply-immediately
Para Windows:
aws rds modify-db-instance ^ --db-instance-identifier
my-custom-instance
^ --engine-version19.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.