Aggiornamento di un'istanza database per Amazon RDS Custom for Oracle - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiornamento di un'istanza database per Amazon RDS Custom for Oracle

Puoi aggiornare un'istanza database Amazon RDS Custom modificandola per utilizzare una nuova versione del motore personalizzato (CEV). Per informazioni generali sugli aggiornamenti, consulta Aggiornamento della versione del motore di un'istanza database.

Panoramica sugli aggiornamenti in RDS Custom per Oracle

Con RDS Custom per Oracle, puoi applicare le patch al database Oracle o al sistema operativo dell'istanza database creando nuovi CEV e quindi modificando l'istanza per utilizzare il nuovo CEV.

Opzioni di aggiornamento per CEV

Quando si crea un CEV per un aggiornamento, sono disponibili le seguenti opzioni che si escludono a vicenda:

Solo database

Riutilizza l'Amazon Machine Image (AMI) attualmente usata dall'istanza database, ma specifica file binari di database diversi. RDS Custom alloca un nuovo volume binario e quindi lo collega all'istanza Amazon EC2 esistente. RDS Custom sostituisce l'intero volume del database con un nuovo volume che utilizza la versione del database di destinazione.

Solo sistema operativo

Riutilizza i file binari del database attualmente usati dall'istanza database, ma specifica un'AMI diversa. RDS Custom alloca una nuova istanza Amazon EC2, quindi collega il volume binario esistente alla nuova istanza. Il volume del database esistente viene mantenuto.

Per aggiornare sia il sistema operativo che il database, è necessario aggiornare il CEV due volte. È possibile aggiornare il sistema operativo e quindi il database oppure aggiornare il database e quindi il sistema operativo.

avvertimento

Quando applichi una patch al sistema operativo, i dati del volume root e qualsiasi personalizzazione esistente del sistema operativo andranno persi. Pertanto, si consiglia vivamente di non utilizzare il volume root per le installazioni o per l'archiviazione di dati o file permanenti. Si consiglia inoltre di eseguire il backup dei dati prima dell'aggiornamento.

Applicazione di patch senza CEV

Si consiglia vivamente di eseguire l'aggiornamento dell'istanza database RDS Custom per Oracle utilizzando i CEV. L'automazione RDS Custom per Oracle sincronizza i metadati delle patch con il file binario del database sull'istanza database.

In circostanze speciali, RDS Custom supporta l'applicazione di una singola patch del database direttamente all'istanza Amazon EC2 sottostante utilizzando l'utilità OPatch. Un caso d'uso valido potrebbe essere una patch del database da applicare immediatamente, ma il team di RDS Custom sta aggiornando la funzionalità CEV, causando un ritardo. Per applicare manualmente una patch del database, procedi nel seguente modo:

  1. Sospendi l'automazione RDS Custom.

  2. Applica la patch ai file binari del database sull'istanza Amazon EC2.

  3. Riprendere l'automazione RDS Custom.

Uno svantaggio della tecnica precedente è che è necessario applicare la patch del database manualmente a ogni istanza da aggiornare. Al contrario, quando si crea un nuovo CEV, è possibile creare o aggiornare più istanze database utilizzando lo stesso CEV.

Procedure generali per applicare una patch all'istanza database con un CEV

Sia che applichi una patch al sistema operativo o al database, attieniti alla procedura di base riportata di seguito:

  1. A seconda se la patch viene applicata al database o al sistema operativo, crea un CEV che contenga uno dei seguenti elementi:

    • L'aggiornamento della versione di Oracle Database che desideri applicare all'istanza database.

    • Un'AMI diversa, la più recente disponibile o quella specificata dall'utente, e un CEV esistente da utilizzare come origine.

    Seguire la procedura riportata in Creazione di un CEV.

  2. (Facoltativo per l'applicazione della patch del database) Controlla gli aggiornamenti della versione del motore disponibili eseguendo describe-db-engine-versions.

  3. Avvia il processo di applicazione della patch eseguendo modify-db-instance.

    Lo stato dell'istanza a cui viene applicata la patch varia come segue:

    • Mentre RDS applica la patch al database, lo stato dell'istanza database cambia in Aggiornamento in corso.

    • Mentre RDS applica la patch al sistema operativo, lo stato dell'istanza database cambia in Modifica in corso.

    Quando l'istanza database ha lo stato Disponibile, l'applicazione della patch è completata.

  4. Verifica che l'istanza database utilizzi il nuovo CEV eseguendo describe-db-instances.

Requisiti per gli aggiornamenti di RDS Custom per Oracle

Quando si aggiorna un'istanza database RDS Custom per Oracle a una CEV di destinazione, accertati che siano soddisfatti i seguenti requisiti:

  • La CEV di destinazione su cui si esegue l'aggiornamento deve esistere.

  • È necessario aggiornare il sistema operativo o il database con un'unica operazione. L'aggiornamento sia del sistema operativo che del database in una singola chiamata API non è supportato.

  • La CEV di destinazione deve utilizzare le impostazioni dei parametri di installazione presenti nel manifesto della CEV corrente. Ad esempio, non è possibile eseguire l'aggiornamento di un database che usa la home Oracle predefinita a una CEV che utilizza una home Oracle non predefinita.

  • Per gli aggiornamenti del database, il CEV di destinazione deve utilizzare una nuova versione secondaria del database e non una nuova versione principale. Ad esempio, non è possibile eseguire l'aggiornamento da una CEV di Oracle Database 12c a una CEV di Oracle Database 19c. Puoi tuttavia eseguire l'aggiornamento dalla versione 21.0.0.0.ru-2023-04.rur-2023-04.r1 alla versione 21.0.0.0.ru-2023-07.rur-2023-07.r1.

  • Per gli aggiornamenti del sistema operativo, il CEV di destinazione deve utilizzare un'AMI diversa ma avere la stessa versione principale.

Considerazioni per gli aggiornamenti del database RDS Custom for Oracle

Se intendi aggiornare il database, considera quanto segue:

  • Quando si aggiornano i binari del database nell'istanza database primaria, RDS Custom per Oracle aggiorna automaticamente le repliche di lettura. Quando si aggiorna il sistema operativo, le repliche di lettura devono essere aggiornate manualmente.

  • Quando si aggiorna un database contenitore (CDB) a una nuova versione del database, RDS Custom for Oracle verifica che tutti i PDB siano aperti o possano essere aperti. Se queste condizioni non sono soddisfatte, RDS Custom interrompe il controllo e riporta il database allo stato originale senza tentare l'aggiornamento. Se le condizioni sono soddisfatte, RDS Custom corregge prima la root del CDB e poi corregge tutti gli altri PDB (incluso PDB$SEED) in parallelo.

    Al termine dell'applicazione delle patch, RDS Custom tenta di aprire tutti i PDB. Se alcuni PDB non si aprono, viene generato il seguente evento: The following PDBs failed to open: list-of-PDBs. Se RDS Custom non riesce a applicare una patch alla root del CDB o a qualsiasi PDB, l'istanza viene messa nello stato PATCH_DB_FAILED.

  • Potresti voler eseguire contemporaneamente un aggiornamento della versione principale del database e una conversione di una versione non CDB in CDB. In questo caso, ti consigliamo di procedere come segue:

    1. Crea una nuova istanza DB RDS Custom for Oracle che utilizza l'architettura multitenant Oracle.

    2. Collega un non CDB alla root del CDB, creandolo come PDB. Assicurati che la versione non CDB sia uguale alla versione principale del tuo CDB.

    3. Converti il tuo PDB eseguendo lo script Oracle SQL. noncdb_to_pdb.sql

    4. Convalida l'istanza CDB.

    5. Aggiorna l'istanza CDB.

Considerazioni sugli aggiornamenti di RDS Custom per Oracle OS

Quando pianifichi un aggiornamento del sistema operativo, tieni presente quanto segue:

  • Non puoi fornire la tua AMI da utilizzare in un RDS Custom per Oracle CEV. È possibile specificare l'AMI predefinito o un AMI utilizzato in precedenza da un RDS Custom per Oracle CEV.

    Nota

    RDS Custom for Oracle rilascia una nuova AMI predefinita quando vengono scoperte vulnerabilità ed esposizioni comuni. Non è disponibile o garantito alcun programma fisso. RDS Custom for Oracle tende a pubblicare una nuova AMI predefinita ogni 30 giorni.

  • Quando si aggiorna il sistema operativo nell'istanza DB principale, è necessario aggiornare manualmente le repliche di lettura associate.

  • Riserva una capacità di calcolo di Amazon EC2 sufficiente per il tipo di istanza nella tua AZ prima di iniziare ad applicare le patch al sistema operativo.

    Quando crei una prenotazione della capacità, specifichi la zona di disponibilità, il numero di istanze e gli attributi delle istanza (incluso il tipo di istanza). Ad esempio, se l'istanza database utilizza il tipo di istanza EC2 sottostante r5.large, è consigliabile prenotare la capacità EC2 per r5.large nella zona di disponibilità. Durante l'applicazione della patch al sistema operativo, RDS Custom crea un nuovo host di tipo db.r5.large, che può bloccarsi se la zona di disponibilità non dispone della capacità EC2 per questo tipo di istanza. Se si prenota la capacità EC2, si riduce il rischio di blocco della patch causato da vincoli di capacità. Per ulteriori informazioni, consulta la sezione Prenotazioni di capacità on demand nella Guida per l'utente di Amazon EC2.

  • Esegui il backup dell'istanza DB prima di aggiornarne il sistema operativo. L'aggiornamento rimuove i dati del volume root e tutte le personalizzazioni esistenti del sistema operativo.

  • Nel modello di responsabilità condivisa, sei responsabile di mantenere aggiornato il tuo sistema operativo. RDS Custom for Oracle non impone quali patch applicare al sistema operativo. Se il tuo RDS Custom for Oracle funziona, puoi utilizzare l'AMI associata a questo CEV a tempo indeterminato.

Visualizzazione di destinazioni di aggiornamento CEV valide per le istanze database RDS Custom per Oracle

È possibile visualizzare i CEV esistenti sulla pagina Versioni motore personalizzate in AWS Management Console.

È inoltre possibile utilizzare il AWS CLI comando describe-db-engine-versions per trovare CEV validi da utilizzare quando si aggiornano le istanze DB, come illustrato nell'esempio seguente. Questo esempio presuppone che sia stata creata un'istanza database utilizzando la versione del motore 19.my_cev1 e che le versioni di aggiornamento 19.my_cev2 e 19.my_cev siano presenti.

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

L'output è simile a quello riportato di seguito. Il campo ImageId mostra l'ID 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 } ] ...

Aggiornamento di un'istanza database RDS Custom per Oracle

Per aggiornare l'istanza database RDS Custom per Oracle, è necessario modificarla per utilizzare un nuovo CEV. Questo CEV può contenere nuovi file binari di database o una nuova AMI. Per aggiornare il database e il sistema operativo, è necessario eseguire due aggiornamenti separati.

Nota

Se si aggiorna il database, RDS Custom aggiorna automaticamente le repliche di lettura dopo aver aggiornato l'istanza database primaria. Se si aggiorna il sistema operativo, è necessario aggiornare le repliche manualmente.

Prima di iniziare, consulta Requisiti per gli aggiornamenti di RDS Custom per Oracle e Considerazioni per gli aggiornamenti del database RDS Custom for Oracle.

Per aggiornare un'istanza database RDS Custom per Oracle
  1. Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione scegli Database e seleziona l'istanza database RDS Custom per Oracle da aggiornare.

  3. Scegliere Modify (Modifica). Viene visualizzata la pagina Modify DB Instance (Modifica istanza database).

  4. Per Versione motore database scegli un CEV diverso. Esegui questa operazione:

    • Se stai applicando una patch al database, assicurati che il CEV specifichi file binari del database diversi da quelli utilizzati dall'istanza database e non specifichi un'AMI diversa dall'AMI attualmente utilizzata dall'istanza database.

    • Se stai applicando una patch al sistema operativo, assicurati che il CEV specifichi un'AMI diversa dall'AMI attualmente utilizzata dall'istanza database e non specifichi binari del database diversi.

      avvertimento

      Quando applichi una patch al sistema operativo, i dati del volume root e qualsiasi personalizzazione esistente del sistema operativo andranno persi.

  5. Scegliere Continue (Continua) per controllare il riepilogo delle modifiche.

    Per applicare immediatamente le modifiche, scegliere Apply immediately (Applica immediatamente).

  6. Se le modifiche sono corrette, scegliere Modify DB instance (Modifica istanza database). Oppure scegliere Back (Indietro) per cambiare le modifiche o Cancel (Annulla) per annullare le modifiche.

I seguenti esempi illustrano i possibili scenari di aggiornamento. Gli esempi presuppongono che sia stata creata un'istanza database RDS Custom per Oracle con le seguenti caratteristiche:

  • Istanza database denominata my-custom-instance

  • CEV denominato 19.my_cev1

  • Oracle Database 19c che utilizza l'architettura non CDB

  • Oracle Linux 7.9 con AMI ami-1234

L'ultima AMI fornita dal servizio è ami-2345. È possibile trovare le AMI eseguendo il comando CLI describe-db-engine-versions.

Aggiornamento del sistema operativo

In questo esempio, si esegue l'aggiornamento di ami-1234 a ami-2345, che è l'AMI più recente fornita dal servizio. Poiché si tratta di un aggiornamento del sistema operativo, i file binari del database per ami-1234 e ami-2345 devono essere uguali. Crea un nuovo CEV denominato 19.my_cev2 basato su 19.my_cev1.

Per LinuxmacOS, oUnix:

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

Per 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

Per aggiornare un'istanza database di RDS Custom, utilizzare il comando AWS CLI modify-db-instance con i parametri seguenti:

  • --db-instance-identifier: specifica l'istanza database RDS Custom per Oracle da aggiornare.

  • --engine-version: specifica il CEV con la nuova AMI.

  • --no-apply-immediately | --apply-immediately: specifica se eseguire immediatamente l'aggiornamento o attendere fino alla finestra di manutenzione programmata.

Il seguente esempio mostra l’aggiornamento di my-custom-instance alla versione 19.my_cev2. Viene aggiornato solo il sistema operativo.

Per LinuxmacOS, oUnix:

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

Per Windows:

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

Aggiornamento del database

In questo esempio si applica la patch Oracle p35042068 all'istanza database RDS per Oracle. Poiché hai aggiornato il sistema operativo in Aggiornamento del sistema operativo, l'istanza database attualmente utilizza 19.my_cev2, che si basa su ami-2345. Crea un nuovo CEV denominato 19.my_cev3 che utilizza ami-2345, ma specifica un nuovo manifesto JSON nella variabile di ambiente $MANIFEST. Pertanto, solo i file binari del database sono diversi nel nuovo CEV e nel CEV attualmente utilizzato dall'istanza.

Per LinuxmacOS, oUnix:

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

Per 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

Il seguente esempio mostra l'aggiornamento di my-custom-instance alla versione del motore 19.my_cev3. Viene aggiornato solo il database.

Per LinuxmacOS, oUnix:

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

Per Windows:

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

Visualizzazione di aggiornamenti del database in sospeso per le istanze database RDS Custom

Puoi visualizzare gli aggiornamenti del database in sospeso per le tue istanze database personalizzate di Amazon RDS utilizzando il comando describe-db-instances o describe-pending-maintenance-actions. AWS CLI

Tuttavia, questo approccio non funziona se si utilizza l’opzione --apply-immediately o se l'aggiornamento è in corso.

Il comando seguente describe-db-instances mostra gli aggiornamenti del database in sospeso per my-custom-instance.

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

L'output è simile a quello riportato di seguito.

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

Risoluzione dei problemi di aggiornamento per un'istanza database RDS Custom per Oracle

Se l'aggiornamento di un'istanza database RDS Custom non riesce, viene generato un evento RDS e lo stato dell'istanza database diventa upgrade-failed.

Puoi vedere questo stato usando il comando describe-db-instances, come mostrato nell'esempio seguente. AWS CLI

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

L'output è simile a quello riportato di seguito.

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

Dopo un errore di aggiornamento, tutte le azioni del database vengono bloccate tranne che per la modifica dell'istanza database per eseguire le seguenti attività:

  • Riprovare lo stesso aggiornamento

  • Sospensione e ripristino dell'automazione RDS Custom

  • Ripristino P (PITR) oint-in-time

  • Eliminazione di un'istanza database

Nota

Se l'automazione è stata sospesa per l'istanza database RDS Custom, non è possibile riprovare l'aggiornamento fino a quando non l'automazione non viene ripresa.

Le stesse azioni si applicano a un errore di aggiornamento per una replica di lettura gestita da RDS come per la primaria.

Per ulteriori informazioni, consultare Risoluzione dei problemi di aggiornamento per RDS Custom per Oracle.