Purge des ADR Homes kann fehlschlagen
Für das Housekeeping auf Datenbank Servern benutzen wir normalerweise das "purgeLogs" Script aus My Oracle Support 2081655.1 oder schlicht das purge-Kommado des "adrci". Neulich fiel unserem Kollegen Florian Barth jedoch folgender Fehler in der Ausgabe des "purgeLogs" auf.
2019-06-21 00:00:06: I adrci GI purging diagnostic destination diag/crs/odax6m/crs
2019-06-21 00:00:06: I ... purging ALERT older than 8 days
2019-06-21 00:00:06: W Not able to purge ALERT, due to error: DIA-49803: Purge not possible due to incompatible schema version.
Also begannen wir, dem Fehler auf den Grund zu gehen. Dazu haben wir zuerst ein manuelles Purge getestet.
oracle@odax6m :) ~ > adrci
ADRCI: Release 18.0.0.0.0 - Production on Fri Jun 21 13:53:17 2019
Copyright (c) 1982, 2018, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/app/oracle"
adrci> set home crs
adrci> purge
DIA-49803: Purge not possible due to incompatible schema version.
Eine Suche in MOS führt zu Bug 28375106 - ADRCI Purge of Grid Home Fails With "DIA-49803: Purge not possible due to incompatible schema version" After Upgrade from 12.1 (Doc ID 28375106.8). Offenbar hängt das Problem mit Upgrades oder Updates des Oracle Home zusammen, nur leider existiert kein Workaround. Wir haben also geprüft, ob wir dieses Problem treffen.
adrci> show version schema
Schema version (on-disk): 107
Schema version (library): 110
Ganz offensichtlich passen die Versionen tatsächlich nicht zusammen. Mangels dokumentiertem Workaround haben wir uns selbst auf die Suche nach einer Lösung gemacht und geprüft, welche Kommandos das "adrci" bereit hält.
adrci> help extended
HELP [topic]
Available Topics:
BEGIN BACKUP
CD
CREATE STAGING XMLSCHEMA
CREATE VIEW
DDE
DEFINE
DELETE
DESCRIBE
DROP VIEW
END BACKUP
INSERT
LIST DEFINE
MERGE ALERT
MERGE FILE
MERGE LOG
MIGRATE
QUERY
REPAIR
SET COLUMN
SHOW CATALOG
SHOW DUMP
SHOW SECTION
SHOW TRACE
SHOW TRACEMAP
SWEEP
UNDEFINE
UPDATE
VIEW
Als vielversprechend erschien uns das Kommando "migrate". Zum Glück ist die Hilfe recht ausführlich.
adrci> help migrate
Usage: MIGRATE [RELATION <name> | SCHEMA] [-DOWNGRADE | -RECOVER]
Purpose: Upgrades the relation or schema to the latest version
Options:
[-downgrade] Downgrade schema to previous version
[-recover] Recover schema from failed migrate
Examples:
migrate schema
migrate relation incident
Wir haben also einfach das "migrate schema" ausprobiert, mit Erfolg. Danach sind die Versionen wieder konsistent und das "purge" läuft wieder fehlerfrei.
adrci> migrate schema
Schema migrated.
adrci> show version schema
Schema version (on-disk): 110
Schema version (library): 110
adrci> purge
adrci>
Es ist also eine gute Idee, nach Einspielung von Patches oder nach Upgrades die ADR Versionen der Grid Infrastructure Homes zu prüfen und gegebenenfalls zu aktualisieren, da ansonsten das Filesystem volllaufen kann.
Kommentare
Hi Marco,
purgeLogs ab Version 1.53 generiert automatisch den passenden MIGRATE SCHEMA Befehl... (nach einem "Above warning 'DIA-49803' could be solved executing following commands:")
(MIGRATE ist u. U. hin und wieder erneut nötig, gerade erlebt in einer 12.2 GI, die eine 12.1 DB fährt - nach einem Reboot.)
Viele Grüße
Olaf