
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
| Profile | Focus |
|---|---|
asm | ASM checks |
clusterware | Grid Infrastructure / CRS |
dba | Database best practices |
maa | Maximum Availability Architecture |
preinstall / postinstall | Pre- and post-deployment checks |
prepatch / patch | Patching readiness |
security | Security checks |
storage | Storage and cell checks |
sysadmin | OS-level administration checks |
switch | InfiniBand / RoCE switches |
virtualization | OVM / KVM guest checks |
exatier1, exatier2, exatier3 | Exadata 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 prepatchexachk -u -o pre
5. After a patch or upgrade
exachk -profile postinstallexachk -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,node2exachk -dbnames PRODDBexachk -cells cell1,cell2exachk -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 startexachk -d status
11. Version and help
exachk -vexachk -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
-diffis one of the most useful ways to track drift. - Verify flags on your version. Options can differ between releases, so treat
exachk -has 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.