The second blog post today is about housekeeping. I typically use the “purgeLogs” script from MOS Doc-ID 2081655.1. It was intially designed for engineered systems but it works well on classic systems too. But today I found an error in the output:
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.
Typically this happens, when you use an “adrci” that does not match the ADR home you are trying to purge. That’s maybe the reason, why “purgeLogs” tries different adrci’s to purge the RDBMS homes.
But what is wrong here? Let’s try the manual way.
oracle@odax6m ~> adrci ADRCI: Release 18.104.22.168.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.
When I put that message in MOS, I quickly found this bug: 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). So I crosschecked that.
adrci> show version schema Schema version (on-disk): 107 Schema version (library): 110
And indeed, the versions are different. Obviously the issue is related to
upgrades. In my case this is an Oracle Database Appliance, that has been patched from 18.3 to 18.5. Unfortunately MOS has no workaround for this. But let’s check what “adrci” may can do for me.
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
The “MIGRATE” sounds interresting.
adrci> help migrate Usage: MIGRATE [RELATION | 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
Sounds like I do want to do exactly this. Give it a try.
adrci> migrate schema Schema migrated. adrci> show version schema Schema version (on-disk): 110 Schema version (library): 110
And voilà, now I can purge the Grid Inftrastructure ADR home again.
adrci> purge adrci>
Since the bug is about the behaviour after upgrading from 12.1, this might apply to other upgrade or update paths too. Be aware of that and monitor your housekeeping scripts. And check your ADR schema version after you upgraded or patched your Grid Infrastructure installation.