While performing a patch update from Oracle 126.96.36.199 to Oracle 188.8.131.52 on an HP-UX 11.11 server running HP OpenView, the following error was noted in the /home/oracle/patch.log file after running @?/rdbms/admin/catpatch.sql:
ORA-04031: Unable to allocate 4160 bytes of shared memory ("shared pool", "unknown object", "sga heap (1,0)", "state objects")
1. Does this error call into question the integrity of the patch installation or the state of the database?
2. What action, if any, is recommended when noting such an error?
No, the error does not necessarily call the integrity of the patch install into question. What the 4031 error does usually indicate is there may be 1) a fragmentation issue in the shared pool which is typically caused by applications that are not using bind variables, but instead, creating dynamic SQL statements OR 2) because the shared pool just is not large enough to hold all of the objects (SQL definitions, PL/SQL code, etc) that is required for access. Again this typicaly leads back to a fragmentation issue because objects are removed from the shared pool in order to bring other objects into the shared pool leading to memory allocations leaving small holes of memory insufficient for further allocations.
Also, you say that you only found the error in the patch.log file. Have you had any problems with your database since the patch was installed? If it simply possible that during the patch installation it tried to do something where it could not get the memory it needed initially, but tried again and acquired the memory and completed. If you see no other problems in your logs of the patch and you are seeing no problems with your database at present, you shouldn't need to be concerned.
Check your shared pool size and make sure it is adequate. You simply may need to increase it to accommodate the requirements of the new patch.
Dig Deeper on Oracle error messages
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.