Oracle 11.2.0.2.0 Native Compile Epic FAIL

In Oracle 11.2.0.1.0 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 11.2.0.1.0 this will crash your database in 11.2.0.2.0 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 11.2.0.2.0 patchset.

 

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s