GrepOra’s 2 Years Commemorative Book: |GREP ORA | sort quality | head 200

Hello all!

We are very proud and happy to share with you our first book!
We made it as a celebration for the GrepOra’s 2 years, completed last Sunday (Jan 29th).

It has the top 200 posts published in this last 2 years for your appreciation. It’s, above all, a good opportunity to refresh some posts that are still actual and relevant. And it’s all free!

We compiled it as a best moments review also to engage new readers with the best past posts and reach that readers that enjoy to read a book in their mobile reading devices. Actually, we believe that writing material for this kind of media is the future (or the present), so if you prefer to read PDF, MOBI or EPUB in you Kindle, Ipad, or similar, specially for those who prefer the offline mode to not being bothered by social media notifications, instant messages and other: This is for you. 🙂

Download PDF
Download MOBI
Download EPUB

There is no chapters of any restrictedly fixed boundaries. However, to give a little sense, we kind of organized the posts by following this (using our blog categories):

  • Oracle Database, RAC and Dataguard;
  • ASM;
  • RMAN, Datapump, Exp/Imp;
  • Enterprise Manager;
  • Application and Middleware;
  • Golden Gate and Data Integrator;
  • Linux and Shellscripts;
  • Cloud Computing;
  • Heterogeneous Databases;
  • Web Development and APEX;
  • PL/SQL and SQL Scripts;
  • Errors and Bugs.

This book is to above all, view, learn and review some curiosities, tips and some useful stuff for daily basis challenges and struggles on working with Oracle tech. But mostly to have fun! This is a book written by Oracle geeks to Oracle geeks.


GrepOra Team.

Infiniband Error: Cable is present on Port “X” but it is polling for peer port

Facing this error? Let me guess: Ports 03, 05, 06, 08, 09 and 12 are alerting? You have a Quarter Rack? Have recently installed Exadata plugin to version or higher?
Don’t panic!

This is probably related to Bug 15937297 : EM 12C HAS ERRORS CABLE IS PRESENT ON PORT ‘N’ BUT IT IS POLLING FOR PEER PORT. The full message might be like “Cable is present on Port 6 but it is polling for peer port. This could happen when the peer port is unplugged/disabled“.

In fact, the bug was closed as not a bug. 🙂
As part of the Exadata plugin, the IB switch ports are now checked for non-terminated cables. So these errors ‘polling for peer port’ are the expected behavior.  Once ‘polling for peer port’ is an enhanced feature of the plugin, this explains why you most likely did not see these errors until you upgraded the OMS to and then updated the plugins.

In Quarter Racks, the following ports 3, 5, 6, 8, 9 and 12 are usually cabled ahead of time, but not terminated. In some racks port 32 may also be unterminated. Checking for incident in OEM you might see something like this image:


More“Infiniband Error: Cable is present on Port “X” but it is polling for peer port”

RS-7445 [Serv MS leaking memory] [It will be restarted] [] [] [] [] [] [] [] [] [] []

Having this error from cell alerthistory.log? Don’t panic!
Take a look in MOS: Exadata Storage Cell reports error RS-7445 [Serv MS Leaking Memory] (Doc ID 1954357.1). It’s related to Bug  – RS-7445 [SERV MS LEAKING MEMORY].

The issue is a memory leak in the Java executable and affects systems running with JDK 7u51 or later versions. This is relevant for all versions in Release 11.2 to 12.1.

What happens is that MS process is consuming high memory (up to 2GB).  Normally MS use around 1GB but because of the bug the memory allocated can grow upt to 2GB.  You can check it as per example below:

[root@exaserver ~]# ps -feal|grep java
0 S root     16493 14737  0  80   0 - 15317 pipe_w 18:34 pts/0    00:00:00 grep java
0 S root     22310 27043  2  80   0 - 267080 futex_ 18:15 ?       00:00:27 /usr/java/default/bin/java -Xms256m -Xmx512m -XX:-UseLargePages -Djava.library.path=/opt/oracle/cell/cellsrv/lib -Ddisable.checkForUpdate=true -jar /opt/oracle/cell/oc4j/ms/j2ee/home/oc4j.jar -out /opt/oracle/cell/cellsrv/deploy/log/ms.lst -err /opt/oracle/cell/cellsrv/deploy/log/ms.err

Note that: 267080 * 4096 = 1143MB (1GB). If your number is higher than this, it indicates the presence of the bug.

More“RS-7445 [Serv MS leaking memory] [It will be restarted] [] [] [] [] [] [] [] [] [] []”

GoldenGate supplemental log check

Are you bored with GoldenGate objects with no supplemental log on Oracle Database?

This script will check ALL tables in GG PRM, after check on database supplemental log information.

PRM, dblogin should be changed.

Try this script on crontab:



echo > gg.out
echo "dblogin USERID @ PASSWORD > template_check.tmp
echo "" >> template_check.tmp
cat dirprm/ext_1.prm|grep -i TABLE|awk {' print $1" "$2 '}|awk -F"," {' print $1 '}|sed 's/TABLE/INFO TRANDATA/g' >> template_check.tmp

./ggsci -s gg.out
obey template_check.tmp

cat gg.out|sed '/^$/d'|grep -v ": ALL."|grep -v -i "info trandata"|grep -v "data is enabled for table"|grep -v "ERROR OGG-01784"

Mail this to GGAdmins.

Converting Between SQLServer, Oracle, PostgreSQL, MySQL, Sybase and others…

Hi all!
I was asked to make a conversion from T-SQL (MSSQL) Procedure to PL/PGSQL. Regarding how boring is this task, the follow link helped me:

I highly recommend it. The site has a commercial solution to convert all database, but some code can be converted online for free. 🙂
The conversion not fixed at all, but make a good part of the work… And all help is helpful…

More“Converting Between SQLServer, Oracle, PostgreSQL, MySQL, Sybase and others…”

Error OGG-00354 Invalid BEFORE column:(column_name)

When we use extraction process with certain macro filters, and send the trails to a goldengate with JAVA adapter, the java extract process fails with the following error: OGG-00354 Invalid BEFORE column:(column_name).


exttrail ./dirdat/e1, FORMAT RELEASE 11.1
include ./dirmac/filter.mac
TABLE OWNER01.TABLE01, #filter01();


rmttrail ./dirdat/j1 , format release 11.1



In some cases, this issue can be resolved just removing the clause “GETUPDATEBEFORES”, as reported in the Oracle note (Doc ID 2151605.1). But in some environments this procedure not resolve, because it is an undocumented bug in goldengate JAVA 11.1, which is caused by the use of format release 11.1.
This same process has been testing in goldengate 12.1, with format release 12.1, and the problem not occurs.

The solution is the upgrade!  \o/

Oracle – Free DevOps Massive Open Online Course (MOOC)

Just passing by to let you know that Oracle is organizing a free Massive Open Online Course to cover DevOps topics.


The course will be delivered over three weeks from 13 January to 3 February. 

The discussed topics are:

• What is DevOps ?
• Test-Driven Development (TDD) Using Python or Java
• Agile and Project Management Using Oracle Developer Cloud Service
• Continuous Integration and Continuous Deployment Using Oracle Developer Cloud Service

You can enroll to the course by clicking here.

Enjoy! in 2016…

Today’s post is to share with you some information about what 2016 represented for

In 2016, the first official year of, we had over 26,000 accesses from more than 160 different countries. Indeed, almost every country in the world was in this year. And this is spectacular considering we discuss very specific topics about Oracle Database and Applications.

The accesses are still growing every day, which show us we can expect even bigger numbers to celebrate in 2017. See below our monthly accesses graph of 2016.


See below our accessing map of 2016.


Besides that, some accomplishments make us even prouder, like being recognized by OTN LA (Oracle Technology Network – Latin America) as a technical reference blog in Database Management and Performance category.

Since this recognition in June, we have the OTN LA logo in our blog page. Also since August, we have the GUOB logo, once I participated in last GUOB Tech Day as Official Blogger.


All this, however, was not achieved only by having the blog. Since the beginning we organized the weekly posting schedule and the author’s pages. The consistency prove itself by our monthly access growth. The organization and commitment to keep posting relevant content is what led us to this point.

Notwithstanding those numbers, recognitions, networking, self improvement in technical skills, writing and mindset changing, there is a rewarding feeling of giving back to community a little bit we took. Since I started as DBA, I sometimes used independent blogs and references in the most critical and desperate moments. This way, nothing is better than feeling useful for someone else. Don’t you think?

Be sure we are preparing lots of news and even more quality content in for next year.

Thank you all and have a great New Year!



Hi guys!
I already posted about Hang Analyze (part1, part2) and ASHDUMP. Now, in the same ‘package’, let me show you about SYSTEMSTATE DUMP.

Systemstate is basically made by the process state for all process in instance (or instances) at the time the systemstate is called.
Through a systemstate it’s possible to identify enqeues, rowcache locks, mutexes, library cache pins and locks, latch free situations, and other kind of chains.

It’s a good tool to add in a SR, but it’s quite hard to habituate on reading/interpreting the file. To undertand exactly how to read a systemstate I’d recommend you the best: Read the manual!
The doc Reading and Understanding Systemstate Dumps (Doc ID 423153.1) has a very good explanation with examples, I’m not able to to it better. 🙂

What I can do is share about the SYSTEMSTATE levels. I had some difficult to find it…
But before I show how you can do it, it’s important to mention that Oracle does not recommend you to use ‘numeric events’ without a SR (MOS), according to Note: 75713.1.