Main menu

Monthly Archives: April 2014

Post navigation

As many people know, exachk is a great utility to perform the healthchk on Exadata and provides many useful information about errors and warnings. When running exachk, the most common way is to run with -a option as follows:./exachk -a

The result covers everything from OS, database, clusterware, db nodes, cell nodes and IB switches. To execute -a option, you need to know root password for many componenets, like db nodes, and cell nodes. Sometimes Oracle DBAs do not have the root access, but still want to use the features from exachk utility, just to check out database configuration. Starting v2.2.1, exachk allows the execution of a subset of the checks. For example, you could check a subset of cluster nodes, or just check only a selected cell nodes or IB switches. In this blog, I am going to discuss database only (my own piece of pie).

Next, run the following command to execut exachk against a database, for example dbm database. I highlight the line you need to provide an input.$ ./exachk -dbnames dbm

CRS stack is running and CRS_HOME is not set. Do you want to set CRS_HOME to /u01/app/11.2.0.3/grid?[y/n][y]y
Checking ssh user equivalency settings on all nodes in cluster
Node enkx3db02 is configured for ssh user equivalency for oracle user

125 of the included audit checks require root privileged data collection on DATABASE SERVER. If sudo is not configured or the root password is not available, audit checks which require root privileged data collection can be skipped.

1. Enter 1 if you will enter root password for each on DATABASE SERVER host when prompted
2. Enter 2 if you have sudo configured for oracle user to execute root_exachk.sh script on DATABASE SERVER
3. Enter 3 to skip the root privileged collections on DATABASE SERVER
4. Enter 4 to exit and work with the SA to configure sudo on DATABASE SERVER or to arrange for root access and run the tool later.

Please indicate your selection from one of the above options for root access[1-4][1]:- 3

*** Checking Best Practice Recommendations (PASS/WARNING/FAIL) ***
Checking for prompts in /home/oracle/.bash_profile on enkx3db01 for oracle user…
Checking for prompts in /home/oracle/.bash_profile on enkx3db02 for oracle user…

A few notes:
1. If there is a high security requirement, usually you can not directly ssh into db node as oracle user. You have to login as your user id, and then su to oracle user. In this case, you need to add localnode option to force the execution running locally.$ ./exachk -dbnames dbm -localnode

2. If you want to check multiple databases at the same time, you can specify the databases separate by comma as follows:$ ./exachk -dbnames dbm,wzpdb

Make sure the databases list above has an entry in /etc/oratab file. If there is not match, there will be no check against the mismatched database.

3. If the database does not have Data Guard configuration, you might want to add -m option to exclude checks for Maximum Availability Architecture (MAA).$ ./exachk -dbnames dbm,wzpdb -m