The rest of this article will give you a quick overview of how to use ORAchk to reduce your risk. This was also covered in the My Oracle Support Web Cast How To Use ORAchk to Reduce Your Risk (Recording | pdf )
- Products & Environments Covered by ORAchk
- Where to get ORAchk
- ORAchk Installation
- ORAchk Auto Update
- Sample Problem Scenario
- Recommended ORAchk Usage Methodology
- Profiles and Adhoc Usage of ORAchk
- ORAchk Collection Manager
- ORAchk Community
ORAchk is supported on the following platforms:
- Linux x86-64 (zLinux, OEL, RedHat and SuSE 9, 10, 11)
- Oracle Solaris (SPARC and x86-64)
- IBM AIX
- MS Windows x64 (2008 and 2012, Cygwin Required)
ORAchk is written in BASH and requires BASH 3.2 or higher installed, which is not installed by default on AIX or HP-UX, but is available for download for free. Windows requires Cygwin Linux emulator.
The aim of ORAchk is to provide one Health Check tool for the entire Oracle stack.
As of release 184.108.40.206.4 ORAchk has checks for:
Oracle Database (versions 10gR2, 11gR1, 11gR2 & 12cR1)
Enterprise Manager Cloud Control (12c only)
Oracle Hardware Systems
If you have an Oracle Engineered System, the ORAchk functionality is also available via the Exachk Script.
ORAchk is available from a number of different locations and bundles:
- Shipped with the Database from versions 220.127.116.11 and 18.104.22.168 (Default location is $ORACLE_HOME/suptools/orachk)
- Shipped with Database PSUs from Jan 2015
- Included within TFA / Support tools bundle
- Main ORAchk Document 1268927.2
Installation is simple, all you need to do is unzip the orachk.zip file, it takes less than a minute.
ORAchk evolved from RACcheck and as such is RAC aware. If you are installing on a RAC system you only need to put it on one node, ORAChk will discover the other nodes and diagnose them remotely.
For standalone database instances ORAchk needs one install per host, or for ease of deployment mount it on a shared file system accessible to each host.
ORAchk provides automatic update options to help you stay up to date with the latest health checks.
Option 1: If you have connection from your environment to My Oracle Support
- When ORAchk is older than 120 days it will prompt you to let it automatically download newer version from My Oracle Support
- Can also be specifically triggered with: ./orachk -download
Option 2: If you have no direct connection from your environment to My Oracle Support
- Download the latest orachk.zip to a shared network staging location
- Set environment variable RAT_UPGRADE_LOC to point to staging location
- Next time orachk script is started it will prompt to allow it to upgrade itself
Take an example problem scenario without ORAchk:
- The DB_FILE_MULTIBLOCK_READ_COUNT parameter is not set correctly
- This leads to the optimizer favoring large I/Os and having a negative effect of the performance of queries
- You see the slow query performance and open a Service Request with Oracle Support
- It takes time for Oracle Support and you to work together to troubleshoot, find the cause and resolve the issues
- This can all have a negative impact on the rest of your business
Now look at the same example problem scenario with ORAchk installed:
- ORAchk proactively sends you regular reports of issues found, which would include warning you about the DB_FILE_MULTIBLOCK_READ_COUNT parameter
- So you read the recommendation in the report and the supporting knowledge documents on My Oracle Support and understand how to resolve the problems
- You are able to proactively resolve the root cause of potential performance issues before they have had a negative impact
- The business continues as normal with no complaints
The recommended ORAchk usage is:
- Schedule ORAchk to run in daemon mode on specified interval and email report
- Identify actions easily by viewing reports and automated comparison of previous runs
- Act on recommendations by following the My Oracle Support links
This shows a simple example of how to schedule monthly ORAchk reports.
You set the AUTORUN_SCHEDULE parameter, telling the ORAchk daemon when the checks should be run:
- Hour (from 0 to 23)
- Day of the month
- Month of the year
- Day of the week
Wild cards tell it to use every value, so in this first example we tell ORAchk to run at 3am on the 28th of the month every month, no matter what day of the week.
You can set a more complex schedule, specifying multiple values for each of the time fields if necessary, for example:
orachk -set `AUTORUN_SCHEDULE=8,20 * * 2,5'
This tells ORAchk to run on the 8th and 20th hour, every day, every month on day 2 and 5 - meaning it will run every Tue and Fri at 8am and 8pm.
Use the NOTIFICATION_EMAIL to tell ORAchk the email address where to send the report, this can be multiple comma separated addresses if needed.
Then we start the daemon with:
./orachk -d start
When ORAchk runs at the scheduled time it will send you through an html report of the output. This will contain:
- A High level health score based on the number of checks which passed or failed
- A summary of the run, showing things such as where and when it was run, which version was used, how long it took, which user it was run as etc
- The table of contents, which provides easy access to findings. This table of contents will change based on the environment, as ORAchk is smart enough to figure out which Oracle products you have installed and will only run checks for products installed.
- You will also see the Findings themselves and the recommendations for how to resolve any issues found.
The findings section of the report shows you a table with a row corresponding to each check:
In the above example, the first finding shows we got a warning based on an SQL check which tells us we should consider unsetting the database parameter DB_FILE_MULTIBLOCK_READ_COUNT, this was found on all databases tested.
We can drill down into view the details, which will show us something similar to this:
- A more detailed explanation of the problem.
- Recommendation for what you should do next.
- Links to supporting documents, such as those on My Oracle Support Knowledge.
- It shows where the check failed and anywhere it passed.
- Then it will also show you why the check failed.
ORAchk will only run checks relevant to what you have installed on the machine.
How to Exclude Checks
You should aim to address all issues which are reported by ORAchk. Problems should stand out very clearly in the report, you should not have a situation where your team says "yes we know about that, we ignore that part of the report", as this would make it much easier to miss important problems.
Although the checks in ORAchk are based on the top impactful problems seen to Oracle Customer Support and recommendations are based on what is generally the best setting. It may be that in your particular situation you know the issue described is not a problem, in which case it’s best practice to exclude these checks from being run. See the FAQ "How to exclude certain checks from ORAchk" on the ORAchk Document 1268927.2
If you want to run just a subset of the checks, for example if you have an environment with both the Database and EM on the same host but you only want to run the EM checks you can use ORAchk profiles.
Profiles are logical groupings of checks that are about similar problem areas such as em, dba, sysadmin or clusterware etc.
You can run orachk with only checks in a particular profile by using:
./orachk -profile <profile_name>
New profiles get added as and when new groups of checks are added, so the full list may change with each release, however you can see a full list of available profiles by simply using the –h (for help) option:
If you’re planning to upgrade the database you can run
./orachk -u -o pre
ORAchk will prompt you for which version of the database you're going to upgrade to and will then run checks specific to problems you might encounter doing that upgrade.
Once you’ve done the database upgrade you can again use ORAchk to verify everything, by doing:
./orachk -u -o post
ORAchk Collection Manager is a companion Application Express (APEX) application. When you have many systems it can be difficult to manage these on a system by system basis.
The Collection Manager provides a dashboard in which you can track your ORAchk collection data in one easy to use interface.
You can use the Collection Manager to:
- Monitor by Business Unit
- Monitor systems within Business Units, by DBA Manager and DBA
- Spot trends by finding the most frequently Failings or Warnings
- View Results for automatic comparison between most recent and last collections per system
- See incidents created for tracking correction of issues
- Browse the collections by various filter criteria
The ORAchk Collection Manager is installed on a single system but serves as a enterprise-wide repository of all ORAchk collections. The ORAchk collections can be configured to upload to the repository automatically.
ORAchk typically has a quarterly release cycle, which allows us to quickly get out new checks as top problems are found by Oracle Support. It also allows us to quickly fix any bugs found in ORAchk and build in new features. The ORAchk development team have a particular focus on trying to accommodate features requested by customers.
So any time you have any feedback on the content or features of ORAchk, we'd love to hear from you with any problems or suggestion you have via the ORAchk community.
More Information about ORAchk
For further information about ORAchk
- Watch a recording of the recent Advisor Webcast How To Use ORAchk to Reduce Your Risk (Recording | pdf )
- See the main ORAchk Document 1268927.2