Oracle EXAchk Utility Explained

A practical guide for Exadata DBAs and administrators

What is EXAchk?

EXAchk is Oracle’s health-check utility for Exadata and other engineered systems. It scans your environment and compares what it finds against Oracle’s best practices, known issues, and recommended patches. That covers the database, Grid Infrastructure, ASM, storage cells, InfiniBand/RoCE switches, and the operating system.

When it finishes, it produces an HTML report with an overall health score, a list of findings ranked by severity, and links to the relevant My Oracle Support notes. A zip file with the collected data is also created, which is handy if you need to attach it to a Service Request.

In recent releases EXAchk ships as part of the Autonomous Health Framework (AHF), so you will often get it by installing or updating AHF rather than as a standalone download.

When should you run EXAchk?

Think of EXAchk as a routine check-up plus a safety net around changes. The most common moments are:

  • Before patching or upgrading. Catch configuration problems and missing prerequisites before they derail a maintenance window.
  • After patching or upgrading. Confirm the system is in the expected state and nothing regressed.
  • After a new installation or deployment. Validate that the build follows Oracle’s recommendations.
  • On a regular schedule. Monthly or quarterly runs help you spot configuration drift and new advisories early.
  • During troubleshooting. Rule out known misconfigurations before digging deeper, and give Oracle Support useful data.
  • Before audits or reviews. The security and best-practice findings make good supporting evidence.
  • Before migrations or major changes. Establish a baseline so you can compare afterward.

What is exatier1?

A full EXAchk run can take a while on a large system. To address this, Oracle provides profiles, which are predefined groups of checks you select with the -profile option.

exatier1 is a profile that limits the run to Oracle’s Tier 1 checks for Exadata. These target the issues most likely to cause outages, data loss, or serious performance problems. Because it runs far fewer checks than a full scan, it finishes much faster, which makes it a good fit for quick checks before and after maintenance.

exachk -profile exatier1

Oracle also provides broader tiers, such as exatier2 and exatier3, which add more checks progressively. Confirm what your version supports with exachk -h.

A small gotcha: if you copy the command from a document or web page, the dash may turn into an en dash (–profile). The command line needs a regular hyphen (-profile).

Other profiles you can use

ProfileFocus
asmASM checks
clusterwareGrid Infrastructure / CRS
dbaDatabase best practices
maaMaximum Availability Architecture
preinstall / postinstallPre- and post-deployment checks
prepatch / patchPatching readiness
securitySecurity checks
storageStorage and cell checks
sysadminOS-level administration checks
switchInfiniBand / RoCE switches
virtualizationOVM / KVM guest checks
exatier1, exatier2, exatier3Exadata criticality tiers

Profile availability varies by release, so run exachk -h to see yours. To exclude a profile from a run, use -excludeprofile <name>.

The most popular EXAchk commands

1. Full interactive health check (the default)

exachk

2. Run all checks non-interactively (cron or scripts)

exachk -a -silent

3. Quick critical-only check

exachk -profile exatier1

4. Before a patch or upgrade

exachk -profile prepatch
exachk -u -o pre

5. After a patch or upgrade

exachk -profile postinstall
exachk -u -o post

6. Best-practice checks only (skip patch recommendations)

exachk -b

7. Patch and recommended-patch checks only

exachk -p

8. Target specific components

exachk -clusternodes node1,node2
exachk -dbnames PRODDB
exachk -cells cell1,cell2
exachk -localonly

9. Compare two reports (before/after, or month over month)

exachk -diff <report1_dir> <report2_dir>

10. Schedule automatic runs and email the results

exachk -set "AUTORUN_SCHEDULE=0 2 * * 0;NOTIFICATION_EMAIL=dba@company.com"
exachk -d start
exachk -d status

11. Version and help

exachk -v
exachk -h

Practical tips

  • Run as root (or with a proper sudo setup) so EXAchk can inspect storage cells, switches, and the operating system. Database-only runs can be done as the Oracle software owner.
  • Keep AHF current. The check content is updated regularly, and stale versions may miss newer recommendations.
  • Read the report by severity. Start with the critical and failed items, then work down to warnings.
  • Keep your reports. Comparing runs over time with -diff is one of the most useful ways to track drift.
  • Verify flags on your version. Options can differ between releases, so treat exachk -h as the source of truth.

Conclusion

EXAchk gives you a repeatable, Oracle-backed way to verify your Exadata environment. Use a full run for periodic reviews, and reach for exatier1 when you want a fast check of the highest-impact items around patching and maintenance windows. Add profiles, scheduling, and report comparisons, and it becomes a core part of a healthy Exadata operations routine.

Which EXAchk command do you rely on most? Share it in the comments.

Leave a Reply