Sunday, January 27, 2019

360 Degree Database Server Monitoring Script For Oracle

Do you have a Linux server with a critical Oracle database running on it?
Are you tired of searching google for a free script that can fully monitor that server in one go?

If your answer is Yes, then this article was written for you. Bring yourself a cup of tea and read this article to the end.

The script I shared many years back to only monitor ORA errors in the DB alert log, and now it's capable to completely monitor an Oracle Database server in a 360-degree fashion.

Here is a list of all components the script can monitor:

- Database Monitoring:
  - Monitor all DATABASES ALERT LOG for ORA and TNS errors.
  - Monitor all LISTENERS' ALERT LOG for ORA and TNS errors.
  - Monitor TABLESPACES utilization.
  - Monitor FLASH RECOVERY AREA (FRA) utilization.
  - Monitor ASM Disk Groups utilization.
  - Monitor database named SERVICES.
  - Monitor RMAN Backup Failure.
  - Monitor the database if it goes OFFLINE or gets HANGED.
  - Monitor if NO listeners are running on the server.

- Grid Infrastructure Monitoring:
  - Monitor the ASM alert log for ORA and TNS errors.
  - Monitor the Grid Infrastructure alert log for ORA and TNS errors.
  - Monitor the Grid Infrastructure alert log for Shutdown/Startup events.
  - Monitor the Grid Infrastructure alert log for Node eviction events.
  - Monitor the Grid Infrastructure alert log for Network IP conflict.
  - Monitor the Grid Infrastructure alert log for Heart Beat failures.
  - Monitor the Grid Infrastructure alert log for service failure events.

- OS/Hardware Errors:
  - Monitor the CPU for high utilization.
  - Monitor the Filesystems / Mount Points space utilization.
  - Monitor dmesg log for new entries which let you know what is going on on OS.

- Golden Gate Monitoring:
  - Monitor the Golden Gate log for Errors and Process ABENDED events.

How to use the script:

- Download the script from here:

- At line# 60 Replace "" with YOUR E-mail address.

- Each part/feature in this script can be easily adjusted by editing the values under the THRESHOLD section, read the comment carefully for each control before altering it.

For a complete guide on how to use the script, I recommend you to read the main article:


  1. OS error log monitor is an add value here, but why you didn't monitor /var/log/messages instead of dmesg?

  2. The script is supposed to run by oracle user who is supposed has no access to /var/log/messages, Yes I agree dmesg will not capture everything but it will give a great overview of what's going on on the system as the first point of troubleshooting.

  3. Got your point, it works fine, but I guess you missed memory and network monitoring. okay for memory it used to go haywire on linux but if you consider network monitoring in the script that will be helpful.

  4. Yes this is the reason I didn't consider memory monitoring in this script, Linux keep caching lots of stuff to keep utilizing most of it, and this behavior goes radical if a database is running.
    For Network monitoring, the script monitors network error statistics only when it correlate with a database/client network error i.e. when a TIME OUT error get reported whether in DB or listener alert log, the alerting email will contains Network details of dropped packets on all NIC cards on the server in the last 15miuntes.

  5. Dear Sir Thanks For Sharing This Article For Us. We Are Helpful For This Article. We Want More Like of This Article. SSC Result 2019 Check Here