Oracle Native Compile Epic FAIL

In Oracle native compilation in Oracle was improved in that you do not need to load your own C compiler. This is great. In 11g they also changed how they manage shared memory used for native compilation too. When you compile something natively you’ll see files PESLD* in /dev/shm. If you’re doing java they’ll be something like JOXSHM* (supposedly this affect Java too). The unfortunate fact is that while this all works great in this will crash your database in because the database doesn’t clean up those files in /dev/shm anymore, so /dev/shm fills up, and your database can no longer allocate memory. There is a patch, and while the description indicates it is merely a workaround (and really not even that) it requires a database bounce occasionally to fix, the non-published patch we got doesn’t seem to work properly if you need to patch multiple databases on a server. As such, we have gone through and completely rolled our databases back to interpreted.

So, if you have Natively compile PL/SQL objects in your database, be very wary of the current patchset.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s