Welche Faktoren sollte ich berücksichtigen, wenn ich ein Hauptversions-Upgrade in Amazon RDS for Oracle durchführe?

Lesedauer: 10 Minute
0

Ich habe eine Amazon Relational Database Service (Amazon RDS)-DB-Instance, die Oracle ausführt. Ich möchte wissen, welche Faktoren ich berücksichtigen muss, wenn ich ein Hauptversions-Upgrade durchführe.

Kurzbeschreibung

Wenn Amazon RDS beginnt, eine neue Version der Oracle-Datenbank zu unterstützen, können Sie Ihre vorhandene Oracle-Datenbankversion aktualisieren, indem Sie eine höhere Version wählen und dann ein Hauptversions-Upgrade durchführen. Eine Hauptversion kann Updates, neue Funktionen, Sicherheitskorrekturen, Optimierungserweiterungen und Leistungsverbesserungen enthalten. Es empfiehlt sich, die Funktionalität, Kompatibilität und Leistung Ihrer Anwendung mit der neuen Version der Oracle-Datenbank außerhalb von Produktions-Umgebungen zu testen, bevor Sie Ihre Produktionsdatenbank aktualisieren.

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS CLI verwenden.

Auflösung

Vor dem Upgrade

Hier sind ein paar Dinge, die Sie beachten sollten, bevor Sie das Hauptversions-Upgrade durchführen:

Upgrade-Pfad: Überprüfen Sie den unterstützten Upgrade-Pfad von Ihrer aktuellen Oracle-Datenbankversion zur beabsichtigten Hauptversion der Oracle-Datenbank. Sie können die gültigen Upgrade-Pfade überprüfen, indem Sie den folgenden AWS Command Line Interface (AWS CLI)-Befehl ausführen.

für Windows:

aws rds describe-db-engine-versions --engine engine-edition --engine-version current-engine-version --query "DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion"

Für Linux, macOS oder Unix:

aws rds describe-db-engine-versions --engine engine-edition --engine-version current-engine-version --query 'DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion'

Ersetzen Sie unbedingt die folgenden Werte in den vorhergehenden Befehlen:

  • engine-edition mit der Edition der Datenbank-Engine.
  • current-engine-version mit der aktuellen Version der Datenbank-Engine.

Angenommen, Sie haben eine Instance von Amazon RDS for Oracle 12.1.0.2.v10. Führen Sie den folgenden Befehl aus, um mehr über alle gültigen Hauptversionen zu erfahren, auf die Sie Ihre RDS-for-Oracle-Instances aktualisieren können.

für Windows:

aws rds describe-db-engine-versions --engine oracle-ee --engine-version 12.1.0.2.v10 --query "DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion"

Für Linux, macOS oder Unix:

aws rds describe-db-engine-versions --engine oracle-ee --engine-version 12.1.0.2.v10 --query 'DBEngineVersions[*].ValidUpgradeTarget[?IsMajorVersionUpgrade==`true`].EngineVersion'

Instance-Klasse: Stellen Sie sicher, dass Ihre aktuelle Instance-Klasse für die Hauptversion unterstützt wird, die Sie aktualisieren möchten. Informationen zu den Instance-Klassen, die von RDS for Oracle unterstützt werden, finden Sie unter Unterstützte Oracle-DB-Instance-Klassen. Sie können die unterstützte Instance-Klasse auch überprüfen, indem Sie den folgenden AWS-CLI-Befehl ausführen.

für Windows:

aws rds describe-orderable-db-instance-options --engine engine-edition --engine-version new-engine-version --region example-region --query "OrderableDBInstanceOptions[*].DBInstanceClass"

Für Linux, macOS oder Unix:

aws rds describe-orderable-db-instance-options --engine engine-edition --engine-version new-engine-version --region example-region --query 'OrderableDBInstanceOptions[*].DBInstanceClass'

Ersetzen Sie unbedingt die folgenden Werte in den vorhergehenden Befehlen:

  • engine-edition mit der Edition der Datenbank-Engine.
  • new-engine-version mit der neuen Version, auf die Sie upgraden möchten.
  • example-region mit der Region, die Sie verwenden.

Angenommen, Sie möchten auf eine Instance von RDS for Oracle 12.2.0.1.ru-2020-10.r1 upgraden. Um mehr über die Instanceklassen zu erfahren, die die Hauptversion in einer bestimmten Region unterstützen, führen Sie den folgenden Befehl aus:

aws rds describe-orderable-db-instance-options --engine oracle-ee --engine-version 12.2.0.1.ru-2020-10.rur-2020-10.r1 --region us-east-1 --query "OrderableDBInstanceOptions[*].DBInstanceClass"

Stellen Sie sicher, dass Sie us-east-1 im Befehl durch die Region Ihrer Wahl ersetzen.

Clientkompatibilität: Stellen Sie sicher, dass die Oracle-Client-/Treiberversionen mit der neuen Hauptversion kompatibel sind. Prüfen Sie, ob die Treiber zusammen mit dem Hauptversions-Upgrade aktualisiert werden müssen. Informationen zur Interoperabilität finden Sie in der Oracle-Dokumentation für Oracle Database Client und Oracle Database Interoperabilität.

Upgrade-Methode: Sie können das Hauptversions-Upgrade auf eine der folgenden Arten durchführen:

  • Ändern Sie die RDS-Instance und wenden Sie die neue Hauptversion an.
    Hinweis: Diese Methode beinhaltet einige Ausfallzeiten.
  • Erstellen Sie eine neue RDS-Instance mit der Hauptversion und migrieren Sie die Daten mithilfe des AWS Data Migration Service (AWS DMS).
    Hinweis: AWS DMS verwendet einen minimalistischen Ansatz zur Migration von Daten und erstellt nur die Objekte, die für eine effiziente Migration der Daten erforderlich sind. AWS DMS erstellt Tabellen, Primärschlüssel und in einigen Fällen eindeutige Indizes, erstellt jedoch keine anderen Objekte, die nicht erforderlich sind, um die Daten effizient von der Quelle zu migrieren. Beispielsweise erstellt AWS DMS keine sekundären Indizes, nicht-primäre Schlüsseleinschränkungen oder Datenstandardwerte. Weitere Informationen finden Sie unter Ansicht von AWS DMS auf hoher Ebene.

Wählen Sie eine dieser Methoden, um das Upgrade basierend auf Ihrem Anwendungsfall durchzuführen.

Benutzerdefinierte Parametergruppe: Wenn Ihre Instance über eine benutzerdefinierte Parametergruppe verfügt, erstellen Sie eine neue Parametergruppe für die neue Hauptversion und legen Sie die benutzerdefinierten Parameter entsprechend fest. Um die derzeit verwendeten benutzerdefinierten Parameter zu identifizieren, vergleichen Sie die vorhandene benutzerdefinierte Parametergruppe mit der Standardparametergruppe der aktuellen Version.

Benutzerdefinierte Optionsgruppe: Wenn Ihre Instance über eine benutzerdefinierte Optionsgruppe verfügt, erstellen Sie eine neue benutzerdefinierte Optionsgruppe für die Hauptversion. Wenn Sie dauerhafte oder permanente Optionen wie Zeitzone oder Oracle Transparent Data Encryption in Ihrer Optionsgruppe haben, müssen dieselben dauerhaften oder permanenten Optionen in die neue benutzerdefinierte Optionsgruppe aufgenommen werden. Um die Zeitzonen-Dateiversion auf die neueste verfügbare Version in der Datenbankinstance zusammen mit Ihrem Hauptversions-Upgrade zu aktualisieren, fügen Sie die Option TIMEZONE_FILE_AUTOUPGRADE zur neuen benutzerdefinierten Optionsgruppe hinzu.

Wörterbuchstatistiken: Das Sammeln von Wörterbuchstatistiken und Statistiken zu festen Objekten kann Instance-Ausfallzeiten während des Upgrades reduzieren. Sie können die Statistiken sammeln, indem Sie die folgenden Abfragen ausführen:

SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
SQL> EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

Ungültige Objekte: Stellen Sie sicher, dass Ihre Datenbank keine ungültigen Objekte enthält. Sie können dies tun, indem Sie die folgende Abfrage ausführen:

SQL> SELECT OWNER, STATUS, COUNT (*) FROM DBA_OBJECTS GROUP BY OWNER, STATUS;

Wenn ungültige Objekte gefunden werden, überprüfen Sie, welches Objekt ungültig ist, indem Sie die folgende Abfrage ausführen:

SQL> SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS != 'VALID';

Sie können alle ungültigen Objekte im Schema kompilieren, indem Sie die folgende Abfrage ausführen:

SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);

Ersetzen Sie ADMIN in der Abfrage unbedingt durch den Namen Ihres Schemas.

Prüfpfade: Stellen Sie sicher, dass die Prüfpfade nicht übermäßig lang sind. Überprüfungen und Upgrades vor dem Upgrade können bei langen Prüfpfaden mehr Zeit in Anspruch nehmen. Informationen zur Kürzung von Prüfpfaden finden Sie unter Wie kürze ich die sys.aud$-Tabelle in meiner Amazon-RDS-DB-Instance, in der Oracle ausgeführt wird? Sie können auch die Prozedur DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL verwenden, um die Prüfpfade zu löschen.

Passwörter: Stellen Sie sicher, dass Sie keine ältere Version von Passwörtern verwenden, indem Sie die folgende Abfrage ausführen:

SQL> SELECT USERNAME,PASSWORD_VERSIONS FROM DBA_USERS;

Wenn Sie aus den Abfrageergebnissen feststellen, dass ein Benutzer nur die 10g-Version von Passwörtern verwendet, prüfen Sie, ob der Benutzer mit einer neueren Version des Passworts neu erstellt werden kann. Wenn Sie die Version des Benutzerpassworts nicht reparieren können, legen Sie den Parameter SQLNET.ALLOWED_LOGON_VERSION_SERVER entsprechend fest, um Verbindungsfehler zu vermeiden.

Wenn der Parameter sqlnetora.sqlnet.allowed_logon_version_server in einer RDS-for-Oracle-Instance definiert ist, gibt der Parameter die Mindestversion des Authentifizierungsprotokolls an, die beim Herstellen einer Verbindung zum Datenbankserver zulässig ist. Eine Einstellung von 8 erlaubt die meisten Passwortversionen und erlaubt jede Kombination der DBA_USERS.PASSWORD_VERSIONS-Werte 10G, 11G und 12C.

Wenn der Parameter sqlnetora.sqlnet.allowed_logon_version_client in einer RDS-for-Oracle-Instance definiert ist, bezeichnet der Parameter das minimale Authentifizierungsprotokoll, das verwendet werden soll, wenn die Datenbank als Client fungiert.

Weitere Informationen finden Sie in der Oracle-Dokumentation zur Überprüfung von Konten mit der Version von Passwörtern, bei denen die Groß-/Kleinschreibung beachtet wird.

DBMS_JOB: Das DBMS_JOB-Paket wird mit dem Upgrade der Oracle-Datenbank 12c Release 2 eingestellt. Wenn Sie auf Version 19c aktualisieren, empfiehlt es sich, alle DBMS_JOB-Aufträge vor dem Upgrade in DBMS_SCHEDULER-Aufträge zu konvertieren. Während des Upgrades wandelt Oracle die DBMS_JOB-Aufträge in DBMS_SCHEDULER-Aufträge um. Weitere Informationen finden Sie in der Oracle-Dokumentation zu Support für DBMS_JOB. Wenn Sie eine große Anzahl von DBMS_JOB-Einträgen haben, kann das Upgrade länger dauern.

FreeStorageSpace: Stellen Sie sicher, dass Ihre Instance sich nicht ihrer Speicherkapazität nähert. Stellen Sie sicher, dass Sie über genügend freien Speicherplatz verfügen, damit das Upgrade erfolgreich abgeschlossen werden kann, indem Sie die Cloudwatch-Metrik FreeStorageSpace überprüfen. Weitere Informationen finden Sie unter Wie kann ich CloudWatch-Alarme erstellen, um den freien Speicherplatz von Amazon RDS zu überwachen und Probleme mit vollem Speicher zu vermeiden?

Wartungsaktionen: Prüfen Sie in der Amazon-RDS-Konsole, ob für Ihre Instance ausstehende Wartungsaktionen vorliegen. Diese Aktionen werden während des Upgrade-Fensters angewendet. Wenn für Multi-AZ-Instanzen keine Betriebssystem-Aktualisierungen erforderlich sind, erfolgen die primären und Standby-Upgrades gleichzeitig. Wenn Betriebssystem-Aktualisierungen erforderlich sind, wendet Amazon RDS das Upgrade wie in Oracle-Upgrades in einer Multi-AZ-Bereitstellung beschrieben an.

Manueller Snapshot: Erstellen Sie aus folgenden Gründen einen manuellen Snapshot Ihrer RDS-for-Oracle-Datenbank-Instance:

  • Der Snapshot kann verwendet werden, um zur vorherigen Version zurückzukehren, sofern die Version von Amazon RDS unterstützt wird.
  • Ein automatisierter Snapshot wird normalerweise im Rahmen des Hauptversions-Upgrade-Prozesses erstellt. Da Snapshots des Amazon Elastic Block Store (Amazon EBS) inkrementell sind, muss der neue Snapshot weniger Änderungen sichern. Daher kann das Erstellen eines manuellen Snapshots die Zeit für die Erstellung des automatisierten Snapshots und die Gesamtzeit reduzieren, die für den Abschluss des Upgrades aufgewendet wurde.

Aktuelle Konfiguration: Führen Sie die folgende Abfrage aus, um die aktuelle Konfiguration Ihrer Instance anzuzeigen und die Ausgabe zu speichern. Die Ausgabe liefert Ihnen Informationen über die Optionsgruppe, die Parametergruppe, Sicherheitsgruppen und Tags, die der aktuellen RDS-for-Oracle-Instance angefügt sind. Verwenden Sie die Informationen, die Sie von diesem Befehl abrufen, um ein Rollback durchzuführen und eine Wiederherstellung aus einem Snapshot durchzuführen oder eine zeitpunktbezogene Wiederherstellung durchzuführen:

> aws rds describe-db-instances --db-instance-identifier example-instance-name --region example-region

Ersetzen Sie unbedingt die folgenden Werte in der Abfrage:

  • example-instance-name mit dem Namen Ihrer RDS-for-Oracle-Instance.
  • example-region mit der Region Ihrer Wahl.

Tablespace rückgängig machen: Stellen Sie sicher, dass Ihr Undo Tablespace auf die richtige Größe eingestellt ist, um Größenänderungs-Operationen während des Upgrades zu vermeiden.

Auslöser: Führen Sie die folgende Abfrage aus, um Ihre Anmelde-, Abmelde- und Startauslöser aufzulisten:

SQL> SELECT OWNER, TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, TABLE_OWNER, STATUS, ACTION_TYPE, TRIGGER_BODY FROM DBA_TRIGGERS WHERE TRIGGERING_EVENT LIKE '%LOGO%' or TRIGGERING_EVENT LIKE '%STARTUP%';

Prüfen Sie, ob die Auslöser gültig und funktionsfähig sind. Obwohl der Auslöser gültig ist und gut kompiliert wird, kann der Auslöser zur Laufzeit einen Fehler auslösen und den Neustart der Datenbank stören. Prüfen Sie, ob es Anmelde-, Abmelde- oder Startauslöser gibt, die beim Ausführen einen Fehler auslösen. Sie können diese Auslöser deaktivieren, indem Sie die folgenden Abfragen ausführen:

SQL> ALTER TRIGGER EXAMPLE-OWNER.EXAMPLE-TRIGGER DISABLE;

Ersetzen Sie unbedingt die folgenden Werte in der Abfrage:

  • EXAMPLE-OWNER mit dem Namen des Schemas, in dem Sie den Auslöser erstellt haben.
  • EXAMPLE-TRIGGER mit dem Namen des Auslösers.

Beispiel:

--To disable AUDIT_USERS trigger in MYADMIN schema
SQL> ALTER TRIGGER MYADMIN.AUDIT_USERS DISABLE;

Während des Upgrades

Nachdem Sie das Upgrade eingeleitet haben, können Sie den Fortschritt des Upgrades überwachen, indem Sie in der Amazon-RDS-Konsole Folgendes überprüfen:

  • Das Warnprotokoll auf der Registerkarte Logs & events (Protokolle und Ereignisse) Ihrer Instance
  • Letzte Ereignisse auf der Registerkarte Logs & events (Protokolle und Ereignisse) Ihrer Instance

Nach dem Upgrade

  • Führen Sie die folgenden Abfragen aus, um die Patch-Version zu überprüfen, nachdem Sie eine Verbindung zur Datenbank hergestellt haben:
SQL> SELECT * FROM sys.registry$history;
SQL> SELECT INSTALL_ID,PATCH_ID,ACTION,STATUS,ACTION_TIME,DESCRIPTION FROM DBA_REGISTRY_SQLPATCH;
  • Amazon RDS aktualisiert die Dateien lsinventory-dbv.txt innerhalb einer Stunde nach dem Anwenden des Patches. Sie können diese Datei von der Registerkarte Logs & events (Protokolle und Ereignisse) Ihrer Instance in der Amazon-RDS-Konsole herunterladen. Überprüfen Sie die angewendeten Patches, indem Sie die Datei Isinventory-dbv.txt lesen.
  • Führen Sie die folgenden Abfragen aus, um Wörterbuchstatistiken und Statistiken für feste Objekte zu sammeln:
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
SQL> EXEC DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
  • Führen Sie die folgende Abfrage aus, um zu überprüfen, ob die Anzahl der gültigen und ungültigen Objekte mit denen vor dem Upgrade übereinstimmt:
SQL> SELECT OWNER, STATUS, COUNT(*) from DBA_OBJECTS GROUP BY OWNER, STATUS;
  • Führen Sie die folgende Abfrage aus, um alle ungültigen Objekte im Schema zu kompilieren:
SQL> EXEC DBMS_UTILITY.compile_schema(schema => 'ADMIN', compile_all => false);
  • Wenn Sie nach dem Upgrade aufgrund der Optimierer-Funktionen der neuen Hauptversion Probleme mit der Abfrageleistung haben, sollten Sie den Parameter OPTIMIZER_FEATURES_ENABLE verwenden. Sie können diesen Parameter auf Sitzungs- und Systemebene ändern. Wenn Sie beispielsweise Ihre Datenbank von Version 18.1 auf Version 19.1 aktualisieren, aber das Optimiererverhalten von Version 18.1 beibehalten möchten, können Sie dies tun, indem Sie den Wert des Parameters OPTIMIZER_FEATURES_ENABLE auf 18.1.0 setzen.

Relevante Informationen

Upgrade der Oracle DB-Engine

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren