I'm performing an audit on Oracle database changes and the database is on a Linux OS.
After using the command opatch lsinventory, we learned that this command has not been pulling the complete population of patches on the database. It is only showing the last patch applied. Contrary to many online definition; which is ALL patches.
What could be causing this? What's a foolproof way to pull all changes (patch, scheme, table etc) applied?
Thank you all!
Best Answer
Many times a patch is rolled back before a new one is applied so you may not be able to get a clear picture of everything that has ever been applied. You don't state your Oracle version, but if it is 12c, you can try a similar query to get some information:
This won't get non-sqlpatch patches though. Meaning if it is only a binary patch, this won't show that. But that should be in lsinventory.
You can also poke around file: $ORACLE_HOME/inventory/ContentsXML/comps.xml
Take care not to modify this file! But I do believe this shows patches that have been rolled back and ones that are currently applied. I'm not exactly sure what's all in there though.
Another thing to keep in mind is the Oracle Home. Some patches are for GRID home and some are for the RDBMS home. And some shops build an entire new home with each patch... Just ensure you are looking in the correct place.