Updatefehler beheben

Bei Updatevorgängen können aus verschiedenen Gründen Fehler auftreten. In der Regel besteht der Grund für einen nicht erfolgreichen Vorgang darin, dass ein Datenbankknoten heruntergefahren ist, nicht ausreichend Speicherplatz im Dateisystem vorhanden ist oder der Datenbankhost nicht auf den Objektspeicher zugreifen kann.

Dieser Artikel enthält Informationen, die bei der Ermittlung von Fehlerursachen und bei der Problembehebung helfen sollen. Diese Informationen sind nach Art der Fehlerbedingung in verschiedene Abschnitte geordnet.

Wenn Sie die Ursache bereits kennen, können Sie mit dem Thema mit der vorgeschlagenen Lösung fortfahren. Andernfalls können Sie mit dem Thema Fehlerursache identifizieren beginnen.

In diesem Artikel werden die folgenden Themen behandelt:

Tipp:

Sie können auch serielle Konsolenverbindungen erstellen, um Systemfehler im Einzelbenutzermodus zu beheben. Informationen zum Erstellen einer seriellen Konsolenverbindung in der OCI-Konsole finden Sie unter Serielle Konsolenverbindung zum DB-System verwalten.

Fehlerursache identifizieren

In der OCI-Konsole können Sie einen nicht erfolgreichen Updatevorgang identifizieren, indem Sie die Updatehistorie eines DB-Systems oder einer einzelnen Datenbank anzeigen. Ein nicht erfolgreich angewendetes Update wird mit dem Status Nicht erfolgreich und einer kurzen Beschreibung des Fehlers angezeigt. Wenn die Fehlermeldung nicht genügend Informationen enthält, um auf eine Lösung zu verweisen, können Sie mit der CLI und Logdateien der Datenbank mehr Daten sammeln. Lesen Sie dann den Abschnitt zur entsprechenden Lösung in diesem Abschnitt.

Die folgenden Themen werden behandelt:

Ursache des nicht erfolgreichen Updatevorgangs ermitteln

  1. Melden Sie sich als Root-Benutzer beim Host an, und navigieren Sie zum Verzeichnis /opt/oracle/dcs/bin/.

  2. Bestimmen Sie die Sequenz von Vorgängen, die mit der Datenbank ausgeführt wurden.

    dbcli list-jobs

    Notieren Sie die letzte aufgelistete Job-ID mit einem anderen Status als Erfolgreich.

  3. Verwenden Sie den folgenden Befehl mit der im vorherigen Schritt notierten Job-ID, um die Details dieses Jobs zu prüfen:

    dbcli describe-job -i <job_ID> -j

    In der Regel ist die Ausführung dieses Befehls ausreichend, um die Ursache des Fehlers zu ermitteln.

  4. Wenn Sie mehr Informationen benötigen, prüfen Sie die Datei /opt/oracle/dcs/log/dcs-agent.log.

    Sie können die Job-ID in dieser Datei anhand des vom Jobbericht in Schritt 2 zurückgegebenen Zeitstempels finden.

  5. Wenn der Updatefehler bei einer RAC-Datenbank mit 2 Knoten auftritt, führen Sie die Schritte 3 und 4 auf beiden Knoten aus.

Probleme beim Datenbankservice-Agent

Ihre Datenbank nutzt ein Agent Framework, um Ihnen die Verwaltung der Datenbank über die Oracle Cloud-Plattform zu ermöglichen.

Von einem gestoppten Agent verursachte Updatefehler beheben

Gelegentlich müssen Sie das Programm dcsagent neu starten, um einen Backupfehler zu beheben, wenn es sich im Status stop/waiting befindet.

Datenbankservice-Agent neu starten

  1. Prüfen Sie über eine Eingabeaufforderung den Status des Agent:

    initctl status initdcsagent
  2. Wenn sich der Agent im Status stop/waiting befindet, starten Sie den Agent neu:

    initctl start initdcsagent
  3. Prüfen Sie den Status des Agent erneut, um sicherzustellen, dass der Status start/running lautet:

    initctl status initdcsagent

Updatefehler beheben, die von einem Agent verursacht werden, der aktualisiert werden muss

Der Updatevorgang kann auch dann nicht erfolgreich ausgeführt werden, wenn der Agent aktualisiert werden muss. Das System gibt bei diesem Fehler die folgende Fehlermeldung zurück:

Current DcsAgent version is less than or equal to minimum required version.

Um dieses Problem zu beheben, führen Sie die Schritte im folgenden Abschnitt aus.

Wenden Sie sich an Oracle Support, um den OCI-Datenbankservice-Agent zu aktualisieren

  1. Vergewissern Sie sich mit den folgenden Befehlen, dass der Agent (dcsagent) und das DCS-Admin-Programm (dcsadmin) ausgeführt werden:

    initctl status initdcsagent
    initctl status initdcsadmin
  2. Wenn diese Programme nicht ausgeführt werden, starten Sie diese mit den folgenden Befehlen neu:

    initctl start initdcsagent
    initctl start initdcsadmin
  3. Befolgen Sie die Anweisungen unter Weitere Hilfe suchen, um Ihre DCS-Agent-Logdateien zu erfassen.
  4. Wenn Sie Unterstützung beim Aktualisieren des Agent benötigen, wenden Sie sich an Oracle Support.

Probleme mit der Objektspeicherkonnektivität

Das DB-System und die Datenbankupdates werden in OCI Object Storage gespeichert. Daher erfordern erfolgreiche Updatevorgänge eine Verbindung zwischen dem DB-Systemhost und dem Object Storage-Speicherort, aus dem die Updates heruntergeladen werden.

Sicherstellen, dass der Datenbankhost eine Verbindung zu OCI Object Storage herstellen kann

  1. Prüfen Sie mit dem folgenden Befehl, ob der Host auf OCI Object Storage zugreifen kann:

    dbcli describe-latestpatch

    Beispielausgabe bei erfolgreicher Ausführung:

    componentType   availableVersion
    --------------  --------------
    gi              12.2.0.1.180417
    gi              12.1.0.2.180417
    db              11.2.0.4.180417
    db              12.2.0.1.180417
    db              12.1.0.2.180417
    oak             12.1.2.11.3
    oak             12.2.1.1.0

    Beispielausgabe bei Fehler:

    DCS-10032:Resource patch metadata is not found.Failed to download patchmetadata from objectstore
  2. Wenn Sie keine Verbindung zum Objektspeicher herstellen können, lesen Sie unter Datenbank mit der Konsole sichern nach, wie Sie die Objektspeicherverbindung konfigurieren.

Hostprobleme

Eine oder mehrere der folgenden Bedingungen auf dem Datenbankhost können Fehler bei Updatevorgängen verursachen.

Datenbankknoten wird während des Updatevorgangs nicht ausgeführt

Alle Knoten der Datenbank müssen aktiv und gestartet sein, während ein Updatevorgang ausgeführt wird, unabhängig davon, ob Sie das DB-System oder das Datenbank-Home aktualisieren. Prüfen Sie mit der OCI-Konsole, ob der Status jedes Knoten AVAILABLE lautet, und starten Sie gegebenenfalls den Knoten.

Das Dateisystem ist voll

Updatevorgänge erfordern mindestens 15 GB freien Speicherplatz im Verzeichnis /u01 im Hostdateisystem. Verwenden Sie den Befehl df -h auf dem Host, um den verfügbaren Speicherplatz zu prüfen. Wenn nicht genügend Speicherplatz im Dateisystem vorhanden ist, können Sie alte Log- oder Tracedateien entfernen, um Speicherplatz freizugeben.

Probleme mit Oracle Clusterware

Oracle Clusterware wird nicht ausgeführt

Mit Oracle Clusterware können Server miteinander kommunizieren und so zusammen als eine Einheit funktionieren. Das Clustersoftwareprogramm muss auf dem DB-System hochgefahren und gestartet sein, damit Updatevorgänge abgeschlossen werden können. Gelegentlich müssen Sie Oracle Clusterware neu starten, um einen Updatefehler zu beheben.

Oracle Clusterware neu starten

  1. Prüfen Sie über die Eingabeaufforderung den Status von Oracle Clusterware:

    crsctl check crs

    Ausgabe:

    CRS-4638: Oracle High Availability Services is online
    CRS-4537: Cluster Ready Services is online
    CRS-4529: Cluster Synchronization Services is online
    CRS-4533: Event Manager is online

    Detaillierte Statusinformationen können Sie mit crsctl stat res -t abrufen.

  2. Wenn Oracle Clusterware nicht online ist, starten Sie das Programm neu:

    crsctl start crs
  3. Prüfen Sie den Status von Oracle Clusterware, um sicherzustellen, dass das Programm online ist:

    crsctl check crs

Oracle Grid Infrastructure (GI) wurde nicht aktualisiert

Dieses Problem tritt auf, wenn Sie versuchen, eine Datenbank zu aktualisieren, bevor Sie das DB-System der Datenbank aktualisieren. Die Fehlerbeschreibung zeigt an, dass Oracle Grid Infrastructure zuerst aktualisiert werden muss. Um dieses Problem zu beheben, aktualisieren Sie das DB-System auf die neueste verfügbare Version. Nachdem Sie das DB-System aktualisiert haben, können Sie den Updatevorgang der Datenbank wiederholen.

Rufen Sie die aktuellen und neuesten verfügbaren GI-Versionen für das DB-System mit folgendem Befehl ab:

dbcli describe-component

Datenbankprobleme

Ein falscher Datenbankstatus kann zu Updatefehlern führen.

Datenbank wird während des Updatevorgangs nicht ausgeführt

Die Datenbank muss aktiv sein und ausgeführt werden, damit alle Updateaufgaben abgeschlossen werden können. Andernfalls müssen Sie die Datapatch-Aufgabe manuell ausführen.

Prüfen, ob die Datenbank hochgefahren und gestartet ist.

Verwenden Sie den folgenden Befehl, um den Status der Datenbank zu prüfen, und stellen Sie sicher, dass Probleme, die den falschen Datenbankstatus verursacht haben, behoben werden:

srvctl status database -d <db_unique_name> -verbose

Das System gibt eine Meldung mit dem Status der Datenbankinstanz zurück. Der Instanzstatus muss Offen lauten, damit der Updatevorgang erfolgreich verläuft.

Wenn die Datenbank nicht ausgeführt wird, starten Sie sie mit dem folgenden Befehl:

srvctl start database -d <db_unique_name> -o open

Wenn die Datenbank gemountet ist, aber nicht den Status Offen hat, verwenden Sie die folgenden Befehle, um auf die SQL*Plus-Eingabeaufforderung zuzugreifen und den Status auf Offen zu setzen:

sqlplus / as sysdba
alter database open;

datapatch-Aufgabe ausführen

Bevor Sie den Befehl datapatch ausführen, stellen Sie sicher, dass alle integrierbaren Datenbanken (PDBs) geöffnet sind. Um eine PDB zu öffnen, können Sie mit SQL*Plus ALTER PLUGGABLE DATABASE <pdb_name> OPEN READ WRITE; für die PDB ausführen.

$ORACLE_HOME/OPatch/datapatch

Der Befehl datapatch muss in jedem Datenbank-Home ausgeführt werden.

Weitere Hilfe suchen

Wenn Sie das Problem anhand der Informationen in diesem Artikel nicht lösen können, gehen Sie wie folgt vor, um relevante Datenbank- und Diagnoseinformationen zu sammeln. Nachdem Sie diese Informationen erfasst haben, wenden Sie sich an Oracle Support.

Diagnosedaten zu nicht erfolgreichen Jobs erfassen

  1. Melden Sie sich als Root-Benutzer beim Host an, und navigieren Sie zum Verzeichnis /opt/oracle/dcs/bin/.

  2. Führen Sie die folgenden beiden Befehle aus, um Informationen zu dem nicht erfolgreichen Job zu erhalten:

    dbcli list-jobs | grep -i <dbname>
    dbcli describe-job -i <job_ID> -j

    Die <job_ID> im zweiten Befehl muss die ID des letzten nicht erfolgreichen Jobs sein, der vom ersten Befehl gemeldet wurde.

  3. Führen Sie das Diagnose-Collector-Skript aus, um eine ZIP-Datei mit den Diagnoseinformationen für Oracle Support Services zu erstellen.

    diagcollector.py

    Dieser Befehl erstellt eine Datei mit dem Namen diagLogs-<timestamp>.zip im Verzeichnis /tmp.

DCS-Agent-Logdateien erfassen

Um DCS-Agent-Logdateien zu erfassen, gehen Sie wie folgt vor:

  1. Melden Sie sich als Benutzer opc an.
  2. Führen Sie den folgenden Befehl aus:

    sudo /opt/oracle/dcs/bin/diagcollector.py
  3. Das System gibt eine Meldung zurück, dass Agent-Logs in einer ZIP-Datei in einem angegebenen Verzeichnis verfügbar sind. Beispiel:

    Log files collected to :/tmp/dcsdiag/diagLogs-1234567890.zip
    Logs are being collected to:
    /tmp/dcsdiag/diagLogs-1234567890.zip

Oracle Grid Infrastructure- und Database-Logdateien erfassen

Wenn eine Oracle Grid Infrastructure- oder ein Oracle Database-Update nicht erfolgreich ausgeführt wurde, finden Sie Logdateien zu diesen Fehlern in den folgenden Speicherorten:

Oracle Grid Infrastructure

$GI_HOME/cfgtoollogs/

Oracle Database

$ORACLE_HOME/cfgtoollogs/