Session using a database link hangs on “SQL*Net more data from dblink”

I have a client who recently move a database server from on-premise to a Cloud provider.  A database on this database server had a database link to their E-business database in the Oracle Cloud.  Since the move, any sessions in the database that use the database link to the E-business database would hang if the query was to return large dataset.

Below is selecting from dual over the database link that worked:

SQL> set timing on
SQL> set autotrace on
SQL> select * from dual@ebs;

D
-
X

Elapsed: 00:00:00.13

Execution Plan
----------------------------------------------------------
Plan hash value: 272002086

----------------------------------------------------------------------------------------
| Id  | Operation              | Name | Rows  | Bytes | Cost (%CPU)| Time     | Inst   |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT REMOTE|      |     1 |     2 |     2   (0)| 00:00:01 |        |
|   1 |  TABLE ACCESS FULL     | DUAL |     1 |     2 |     2   (0)| 00:00:01 | PWGPSI |
----------------------------------------------------------------------------------------

Note
-----
   - fully remote statement


Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          0  consistent gets
          0  physical reads
          0  redo size
        511  bytes sent via SQL*Net to client
        492  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
          1  rows processed

SQL>

But selecting from a table hangs:

SQL> select * from XXX_PER_PEOPLE_F@ebs;

Hangs!......

The session in the source database shows the wait “SQL*Net more data from dblink”:

       SID USERNAME       STATUS   MACHINE                         TERMINAL                       PROGRAM                                          EVENT                                        WAIT_CLASS                   WAIT_TIME SECONDS_IN_WAIT STATE

---------- -------------- -------- ------------------------------- ------------------------------ ------------------------------------------------ -------------------------------------------- ---------------------------- --------- --------------- -------------------

       144 XXXXXXXXX      ACTIVE   XXX                             unknown                        sqlplus@xxxxx.xxxxx.xxx (TNS V1-V3)              SQL*Net more data from dblink                Network                      0         341             WAITING

The session in the target database shows the wait “SQL*Net message from client”:

SID USERNAME EVENT                       SQL_ID   MACHINE       PROGRAM                        PROCESS 
--- -------- --------------------------- -------- ------------- ------------------------------ ---------- 
35  XXX      SQL*Net message from client XXX      XXX.XXX.XXX   oracle@XXX.XXX.XXX (TNS V1-V3) 15340

I traced the source session and could see the session hangs waiting for more data from the target (EBS) database:

WAIT #2: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1495920328443464

*** 2018-07-17 11:13:47.934

WAIT #2: nam='SQL*Net message from client' ela= 11336000 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1495920339779586
WAIT #0: nam='single-task message' ela= 179653 p1=0 p2=0 p3=0 obj#=-1 tim=1495920339960679
WAIT #0: nam='SQL*Net message to dblink' ela= 1 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920339989423
WAIT #0: nam='SQL*Net message from dblink' ela= 29064 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340018526
WAIT #0: nam='SQL*Net message to dblink' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340018982
WAIT #0: nam='SQL*Net message from dblink' ela= 30534 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340049542
WAIT #0: nam='SQL*Net message to dblink' ela= 1 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340049793
WAIT #0: nam='SQL*Net message from dblink' ela= 42171 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340091996
WAIT #0: nam='SQL*Net more data from dblink' ela= 4 driver id=1413697536 #bytes=17 p3=0 obj#=-1 tim=1495920340092053
WAIT #0: nam='SQL*Net message to dblink' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340092253
WAIT #0: nam='SQL*Net message from dblink' ela= 28448 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340120720
WAIT #0: nam='SQL*Net message to dblink' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340120854
WAIT #0: nam='SQL*Net message from dblink' ela= 30884 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340151761
WAIT #0: nam='SQL*Net message to dblink' ela= 1 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340151816
WAIT #0: nam='SQL*Net message from dblink' ela= 28590 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340180420
WAIT #0: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1495920340180491
WAIT #0: nam='SQL*Net message from client' ela= 207 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1495920340180713
WAIT #0: nam='SQL*Net message to dblink' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340180787
WAIT #0: nam='SQL*Net message from dblink' ela= 28635 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340209434
WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1495920340209472
WAIT #0: nam='SQL*Net message from client' ela= 70 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1495920340209554
WAIT #0: nam='SQL*Net message to dblink' ela= 0 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340209601
WAIT #0: nam='SQL*Net message from dblink' ela= 29357 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340238969
WAIT #0: nam='SQL*Net more data from dblink' ela= 6 driver id=1413697536 #bytes=4 p3=0 obj#=-1 tim=1495920340239133
WAIT #0: nam='SQL*Net more data from dblink' ela= 37 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340239196
WAIT #0: nam='SQL*Net more data from dblink' ela= 124 driver id=1413697536 #bytes=2 p3=0 obj#=-1 tim=1495920340239340
WAIT #0: nam='SQL*Net more data from dblink' ela= 37 driver id=1413697536 #bytes=4 p3=0 obj#=-1 tim=1495920340239409
WAIT #0: nam='SQL*Net more data from dblink' ela= 93 driver id=1413697536 #bytes=3 p3=0 obj#=-1 tim=1495920340239528
WAIT #0: nam='SQL*Net more data from dblink' ela= 79 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340239632
WAIT #0: nam='SQL*Net more data from dblink' ela= 28330 driver id=1413697536 #bytes=2 p3=0 obj#=-1 tim=1495920340268062
WAIT #0: nam='SQL*Net more data from dblink' ela= 4 driver id=1413697536 #bytes=2 p3=0 obj#=-1 tim=1495920340268111
WAIT #0: nam='SQL*Net more data from dblink' ela= 168 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340268297
WAIT #0: nam='SQL*Net more data from dblink' ela= 55 driver id=1413697536 #bytes=1 p3=0 obj#=-1 tim=1495920340268378
WAIT #0: nam='SQL*Net more data from dblink' ela= 69 driver id=1413697536 #bytes=4 p3=0 obj#=-1 tim=1495920340268483
WAIT #0: nam='SQL*Net more data from dblink' ela= 47 driver id=1413697536 #bytes=4 p3=0 obj#=-1 tim=1495920340268553
Hangs!...

After raising a SR with My Oracle Support (MOS) for the database we manage and for the one Oracle manage in the Oracle Cloud, it was concluded the package size (Session Data Unit) was larger then the allowable for a network component between the two databases.  They referred to MOS note:

Query on “bigtable” from remote Client hangs (certain queries or fields) (Doc ID 2104257.1)

“SYMPTOMS

Certain queries are hanging when run from some remote Clients.  However, other (smaller) queries are successful.

This is especially evident on queries that require more than 2kb of data to be returned.
Some examples:

select * from v$database; –> hangs
select count(*) from v$database; –> works

DESCRIBE with large data results –> hangs
DESCRIBE with small data results –> works

This might also show up with Database Links (DBLINK) as well.

CAUSE

A Network “security” device or setting (possibly local especially on a Microsoft Windows machine) is preventing or “altering” larger TCP packets from being transported across the network.
This in turn is causing the Client to wait on the Server for the data from the query, and the Server to wait on the Client (which thinks part of the packet is still on the way).

1. Check for settings like the DF (“Don’t Fragment”) bit being set.
2. Check for ALG SQL settings being enabled.

*Note: these causes are all external to Oracle so provided only as potential causes.

SOLUTION

Workaround
~~~~~~~~~
As a workaround (or test to prove this is or is not the issue) lower the SQL*Net SDU from the default size of 8192 to 1400 (see reference below for more details on this setting):

1. Add the following single line to the sqlnet.ora file on BOTH ends of the communication:
DEFAULT_SDU_SIZE = 1400

2. Restart the Listener(s) servicing the Database in question, make a new connection from the Client, and test the query that was hanging.

3. If this corrects the issue and allows queries to complete, then there is a network / system device or setting causing fragmentation, detention, or alteration of SQL packets mid-stream.”

Oracle Support set the SDU in the sqlnet.ora file on the target database server:
DEFAULT_SDU_SIZE = 1400

More info on DEFAULT_SDU_SIZE can be found here:

Database Net Services Reference -> 5 Parameters for the sqlnet.ora File -> DEFAULT_SDU_SIZE

And then restarted the listener.  I did the same for the source database server and then the session no longer hanged 🙂 :

SQL> select * from XXX_PER_PEOPLE_F@ebs;
...

1069 rows selected.

Elapsed: 00:00:02.57

 

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

Advertisements

Stop password for user accounts expiring on Exadata

Depending on how the Oracle Exadata Machine was setup, the password for user accounts can expire thus requiring the password to be changed.

This has the knock on effect of the crontab not being accessible and more importantly jobs do not run:

[oracle@v1ex1dbadm01 ~]$ crontab -l

Authentication token is no longer valid; new one required
You (oracle) are not allowed to access to (crontab) because of pam configuration.
[oracle@v1ex1dbadm01 ~]$

You can check the pam configuration for the password expiry as shown below as the root user:

[root@v1ex1dbadm01 ~]# chage -l oracle
Last password change : Dec 11, 2017
Password expires : Mar 11, 2018
Password inactive : never
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
[root@v1ex1dbadm01 ~]#

We can see the password expired on the 11th March 2018, hence why the crontab jobs are not running since then.

To change, so the password doesn’t expire, use chage as shown below:

[root@v1ex1dbadm01 ~]# chage -d 9999 -E -1 -m 0 -M -1 oracle

The manual page for chage explains the switches:

-d, --lastday LAST_DAY
 Set the number of days since January 1st, 1970 when the password was last changed. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area). If the LAST_DAY is set to 0 the user is forced to change his password on the next log on.

-E, --expiredate EXPIRE_DATE
 Set the date or number of days since January 1, 1970 on which the user´s account will no longer be accessible. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area). A user whose account is locked must contact the system administrator before being able to use the system again.

Passing the number -1 as the EXPIRE_DATE will remove an account expiration date.

-m, --mindays MIN_DAYS
 Set the minimum number of days between password changes to MIN_DAYS. A value of zero for this field indicates that the user may change his/her password at any time.

-M, --maxdays MAX_DAYS
 Set the maximum number of days during which a password is valid. When MAX_DAYS plus LAST_DAY is less than the current day, the user will be required to change his/her password before being able to use his/her account. This occurrence can be planned for in advance by use of the -W option, which provides the user with advance warning.

Passing the number -1 as MAX_DAYS will remove checking a password´s validity.

Now, when re-checking the password expiry, you can see it’s changed to ‘never‘:

[root@v1ex1dbadm01 ~]# chage -l oracle
Last password change : May 01, 2008
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : -1
Number of days of warning before password expires : 7
[root@v1ex1dbadm01 ~]#

And we didn’t need to change the password for the user and the crontab job work again 🙂

This doesn’t just apply to Exadata but to Linux.

See Related MOS Note:
Expiry of user accounts on Oracle Linux 5 (Doc ID 2327855.1)

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

How to use the Oracle Exadata Diagnostics Collection Tool (sundiag.sh)

What is the Oracle Exadata Diagnostics Collection Tool sundiag.sh

Very often when creating a Support Request (SR) for an issue on an Oracle Exadata Database Machine, you’ll need to run the script “sundiag.sh“.  Which is the “Oracle Exadata Database Machine – Diagnostics Collection Tool“.

The tool collects a lot of diagnostics information that assist the support analyst in diagnosing your problem, such as failed hardware like a failed disk, etc.

More information can be found on My Oracle Support (MOS) Note:
SRDC – EEST Sundiag (Doc ID 1683842.1)
Oracle Exadata Diagnostic Information required for Disk Failures and some other Hardware issues (Doc ID 761868.1)

How to run the Diagnostics Collection Tool

To run “sundiag.sh“, is very simple as shown below:

[root@v1ex1dbadm01 ~]# /opt/oracle.SupportTools/sundiag.sh
Oracle Exadata Database Machine - Diagnostics Collection Tool
Gathering Linux information
Skipping collection of OSWatcher/ExaWatcher logs, Cell Metrics and Traces
Skipping ILOM collection. Use the ilom or snapshot options, or login to ILOM
over the network and run Snapshot separately if necessary.
/var/log/exadatatmp/sundiag_v1ex1dbadm01_xxxxxxxxxx_2018_01_17_13_49
Gathering dbms information
Generating diagnostics tarball and removing temp directory
==============================================================================
Done. The report files are bzip2 compressed in /var/log/exadatatmp/sundiag_v1ex1dbadm01_xxxxxxxxxx_2018_01_17_13_49.tar.bz2
==============================================================================
[root@v1ex1dbadm01 ~]#

For more advanced collections, use the option switches to override default behaviour as shown in the help:

[root@v1ex1dbadm01 ~]# /opt/oracle.SupportTools/sundiag.sh -h

Oracle Exadata Database Machine - Diagnostics Collection Tool

Version: 12.1.2.3.3.161109

By default sundiag will collect OSWatcher/ExaWatcher, Cell Metrics and traces,
if there was an alert in the last 7 days. If there is more than one alert, latest
alert is chosen to set the time range for data collection.
Time range is 8hrs prior to and 1hr after the latest alert, for the total of 9 hrs
e.g: latest alert timestamp = 2014-03-29T01:20:04-05:00
 echo Time range = 2014-03-28_16:00:00 and 2014-03-29_01:00:00
User can also specify time ranges (as explained in usage below), which takes
precedence over default behavior of checking for alerts

Usage: /opt/oracle.SupportTools/sundiag.sh [ilom | snapshot] [osw <time ranges>]
 osw - This argument when used expects value of one or more comma separated
 time ranges. OSWatcher/ExaWatcher, cell metrics and traces will be gathered
 in those time ranges.
 The format for time range(s) is <from>-<to>,<from>-<to> and so on without spaces
 where <from> and <to> format is <date>_<time>
 <date> and <time> format should be any valid format that can be recognized by
 'date' command. The command 'date -d <date>' or 'date -d <time>' should be valid
 e.g: /opt/oracle.SupportTools/sundiag.sh osw 2014/03/31_15:00:00-2014/03/31_18:00:00
 Note: Total time range should not exceed 9 hrs. Only the time ranges that
 fall within this limit are considered for the collection of above data
 ilom - User level ILOM data gathering option via ipmitool, in place of
 separately using root login to get ILOM snapshot over the network.
 snapshot - Collects node ILOM snapshot- requires host root password for ILOM
 to send snapshot data over the network.
[root@v1ex1dbadm01 ~]#

Then just upload the bzip2 file to your SR on MOS.

I tend to run this as part of my SR creation and upload to save time.

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

Install Oracle’s VirtualBox

If you don’t have the luxury of having a server readily available but you want to do some research and development or training on Oracle, then Oracle’s VirtualBox is a perfect solution.

Prerequisites

To be able to use VirtualBox, you need to disable Hyper-V as it blocks all other Hyper Visors from calling VT hardware.  See my post blog on how to do this:
Disabling Microsoft’s Hyper-V to use Oracle’s VirtualBox

Download

You can download the latest VirtualBox from:
https://www.virtualbox.org/
https://www.virtualbox.org/wiki/Downloads

At the time of writing this blog, the latest is:
http://download.virtualbox.org/virtualbox/5.1.28/VirtualBox-5.1.28-117968-Win.exe

Install VirtualBox

To install, launch the VirtualBox executable i.e. VirtualBox-5.1.28-117968-Win.exe with a user with admin rights:

VirtualBox_Install_Step1

Click ‘Next‘.

VirtualBox_Install_Step2

Click ‘Next‘.

VirtualBox_Install_Step3

Change options as you wish, otherwise click ‘Next‘.

VirtualBox_Install_Step4

Accept the warning and click ‘Yes‘.

VirtualBox_Install_Step5

Click ‘Install‘.

VirtualBox_Install_Step6

You will see the progress, wait until you see the following:

VirtualBox_Install_Step7

Click ‘Install‘.

VirtualBox_Install_Step8

Once finished, click ‘Finish‘ and VirtualBox will load:

VirtualBox_Install_Step9

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

Disabling Microsoft’s Hyper-V to use Oracle’s VirtualBox

If you want to use Oracle’s VirtualBox on Windows 10, you first need to disable Microsoft’s Hyper-V.  I’ve used VirtualBox many times in the past but on the likes of Windows 7, where Hyper-V isn’t installed by default as part of the O/S.  It seems on Windows 10 Enterprise, Hyper-V is installed by default and is started as part of the bootup.

Hyper-V blocks all other Hyper Visors like VirtualBox from calling VT hardware, therefore it’s required for it to be disabled.

To check

Run ‘bcdedit’ in Command Prompt as Admin:

C:\Users\anwarz>bcdedit

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-GB
inherit {globalsettings}
badmemoryaccess Yes
isolatedcontext Yes
default {current}
resumeobject {a14884a8-6117-11e7-a334-f430b9153789}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows 10
locale en-GB
inherit {bootloadersettings}
recoverysequence {a14884aa-6117-11e7-a334-f430b9153789}
displaymessageoverride Recovery
recoveryenabled Yes
badmemoryaccess Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {a14884a8-6117-11e7-a334-f430b9153789}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Auto

C:\Users\anwarz>

You’ll see it say ‘Auto‘ for hypervisorlaunchtype, this means it was enabled to load at boot.  So if this option wasn’t changed since last boot, then Hyper-V is enabled.

To Disable

Run the following command in Command Prompt as Admin:

C:\Users\anwarz>bcdedit /set hypervisorlaunchtype off
The operation completed successfully.

C:\Users\anwarz>bcdedit

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-GB
inherit {globalsettings}
badmemoryaccess Yes
isolatedcontext Yes
default {current}
resumeobject {a14884a8-6117-11e7-a334-f430b9153789}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows 10
locale en-GB
inherit {bootloadersettings}
recoverysequence {a14884aa-6117-11e7-a334-f430b9153789}
displaymessageoverride Recovery
recoveryenabled Yes
badmemoryaccess Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {a14884a8-6117-11e7-a334-f430b9153789}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Off

C:\Users\anwarz>

You’ll see it say ‘Off‘ for hypervisorlaunchtype, this means it is now disabled to load at boot.  However, the current boot had this enabled and therefore requires you to reboot to not have Hyper-V loaded.

To Enable

Run the following command in Command Prompt as Admin:

C:\Users\anwarz>bcdedit /set hypervisorlaunchtype auto
The operation completed successfully.

C:\Users\anwarz>bcdedit

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume2
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-GB
inherit {globalsettings}
badmemoryaccess Yes
isolatedcontext Yes
default {current}
resumeobject {a14884a8-6117-11e7-a334-f430b9153789}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows 10
locale en-GB
inherit {bootloadersettings}
recoverysequence {a14884aa-6117-11e7-a334-f430b9153789}
displaymessageoverride Recovery
recoveryenabled Yes
badmemoryaccess Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject {a14884a8-6117-11e7-a334-f430b9153789}
nx OptIn
bootmenupolicy Standard
hypervisorlaunchtype Auto

C:\Users\anwarz>

You’ll see it say ‘Auto‘ for hypervisorlaunchtype, this means it is now enabled to load at boot.  However, the current boot had this disabled and therefore requires you to reboot to have Hyper-V loaded.

Just a note, I’ve not got anything against Hyper-V, we use it quite frequently, it’s stable, however in this instance, I want to use VirtualBox which I am more accustomed for certain features 🙂

Related Blog Posts

Install Oracle’s VirtualBox

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

How to use Oracle Exadata Database Machine Exa Check (exachk)

Oracle customers who are fortunate to have an Oracle Exadata Database Machine, will need to run “exachk” from time to time, which is pronounced as Exa-Check.  This tool checks your Oracle Exadata Database Machine configuration, software, critical issue and provides a Maximum Availability Architecture score.  It is required to run before and after Exadata patching and is good practice to run on a frequent basis and review the recommendations.

More info here:

Oracle Exadata Database Machine exachk or HealthCheck (Doc ID 1070954.1)

“exachk holistically evaluates all Oracle Engineered Systems.   

It includes:

  • Configuration checks for Database Servers, Storage Servers and InfiniBand Switches
  • Grid Infrastructure, Database and ASM and operating system software checks
  • MAA Scorecard which conducts an automatic MAA Review
  • Exadata Software Planner, Software prechecks, Exadata and Database Critical Issue alerts

All checks have explanations, recommendations, and manual verification commands so that customers can self-correct all FAIL and WARNING conditions reported. 

Development recommends that the latest exachk be executed with the following frequency:

  • Monthly
  • Week before any planned maintenance activity
  • Day before any planned maintenance activity
  • Immediately after completion of planned maintenance activity or an outage or incident”

The download can be obtained from the above MOS note 1070954.1.  Place the download zip file as root on a compute node, in the Oracle’s Home for example, I use “/home/oracle/version1/exachk”.  Within this folder create another folder called exachk, which allows you to easily replace the tool with the latest version and unzip the zip file to this folder:

[root@v1ex2dbadm01 exachk]# pwd
/home/oracle/version1/exachk
[root@v1ex2dbadm01 exachk]# rm -rf exachk
[root@v1ex2dbadm01 exachk]# mkdir exachk
[root@v1ex2dbadm01 exachk]# ls -lh
total 19M
drwxr-xr-x 2 root root 4.0K Sep 5 10:53 exachk
-rw-r--r-- 1 root root 19M Sep 5 10:51 exachk.zip
[root@v1ex2dbadm01 exachk]# unzip exachk.zip -d ./exachk
Archive: exachk.zip
creating: ./exachk/.cgrep/
inflating: ./exachk/.cgrep/versions.dat
...
inflating: ./exachk/UserGuide.txt
inflating: ./exachk/readme.txt
inflating: ./exachk/doc/ORAchk_and_EXAchk_User_Guide.pdf
[root@v1ex2dbadm01 exachk]#

You’ll now see the tool “exachk” as an executable along with the other files as part of the tool, including the User Guide:

[root@v1ex2dbadm01 exachk]# ls
exachk exachk.zip
[root@v1ex2dbadm01 exachk]# ls -l exachk
total 69792
-r-xr-xr-x 1 root root 8218911 Apr 4 12:12 Apex5_CollectionManager_App.sql
-r-xr-xr-x 1 root root 4816355 Sep 15 2016 CollectionManager_App.sql
-rw-r--r-- 1 root root 47172483 Jul 19 08:38 collections.dat
drwxr-xr-x 2 root root 4096 Sep 5 10:54 doc
-r-xr-xr-x 1 root root 2897015 May 17 20:59 exachk
-rw-r--r-- 1 root root 1976299 Jul 19 09:03 EXAchk_Health_Check_Catalog.html
drwxr-xr-x 2 root root 4096 Jul 19 03:17 exadiscover
-r--r--r-- 1 root root 4896 Mar 31 09:58 readme.txt
-rw-r--r-- 1 root root 6302687 Jul 19 08:38 rules.dat
-r-xr-xr-x 1 root root 40052 Jul 22 2015 sample_user_defined_checks.xml
drwxr-xr-x 2 root root 4096 Jul 19 03:17 templates
-r-xr-xr-x 1 root root 2888 Oct 9 2015 user_defined_checks.xsd
-r--r--r-- 1 root root 234 Apr 1 10:05 UserGuide.txt
[root@v1ex2dbadm01 exachk]# cd exachk
[root@v1ex2dbadm01 exachk]#

To run the tool, simply execute without any switches (there are other options, refer to User Guide):

[root@v1ex2dbadm01 exachk]# ./exachk

Checking for prompts on v1ex2dbadm01 for oracle user...

Checking ssh user equivalency settings on all nodes in cluster

Node v1ex2dbadm02 is configured for ssh user equivalency for root user

Checking for prompts for oracle user on all nodes...

Searching for running databases . . . . .
. . . . . . . . . . . .
List of running databases registered in OCR
1. VERSS
2. VERSDEV
3. VERS24H
4. IONS
5. IONDEV
6. VERSREP
7. All of above
8. None of above

Select databases from list for checking best practices. For multiple databases, select 7 for All or comma separated number like 1,2 etc [1-8][7].7

Searching out ORACLE_HOME for selected databases.

. . . . . . . . . . . . . . . . . . . . . . . .

.
Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .
-------------------------------------------------------------------------------------------------------
 Oracle Stack Status
-------------------------------------------------------------------------------------------------------
Host Name    CRS Installed  RDBMS Installed  CRS UP  ASM UP  RDBMS UP  DB Instance Name
-------------------------------------------------------------------------------------------------------
v1ex2dbadm01 Yes            Yes              Yes     Yes     Yes       IONDEV1 IONS1 VERS24H1 VERSDEV1 VERSREP1 VERSS1
v1ex2dbadm02 Yes            Yes              Yes     Yes     Yes       IONDEV2 IONS2 VERS24H2 VERSDEV2 VERSREP2 VERSS2
-------------------------------------------------------------------------------------------------------

v1ex2cel01 is configured for ssh user equivalency for root user
.
v1ex2cel02 is configured for ssh user equivalency for root user
.
v1ex2cel03 is configured for ssh user equivalency for root user
. . . . . . . . . . . . . . . . . . .
v1ex2sw-ibb01 is configured for ssh user equivalency for root user

v1ex2sw-iba01 is configured for ssh user equivalency for root user

v1ex2sw-ibb01 is configured for ssh user equivalency for root user

*** Checking Best Practice Recommendations (PASS/WARNING/FAIL) ***

Collections and audit checks log file is
/home/oracle/version1/exachk/exachk/exachk_v1ex2dbadm01_VERSREP_090517_105859/log/exachk.log

Checking for prompts in /root/.bash_profile on v1ex2dbadm01 for root user...

Checking for prompts in /root/.bash_profile on v1ex2dbadm02 for root user...

Starting to run exachk in background on v1ex2dbadm02

. .
=============================================================
 Node name - v1ex2dbadm01
=============================================================
. . . . .

Collecting - ASM Disk Group for Infrastructure Software and Configuration
Collecting - ASM Diskgroup Attributes
Collecting - ASM diskgroup usable free space
Collecting - ASM initialization parameters
Collecting - Database Parameters for IONDEV database
Collecting - Database Parameters for IONS database
Collecting - Database Parameters for VERSDEV database
Collecting - Database Parameters for VERSREP database
Collecting - Database Parameters for VERSS database
Collecting - Database Undocumented Parameters for IONDEV database
Collecting - Database Undocumented Parameters for VERSDEV database
Collecting - Database Undocumented Parameters for VERSREP database
Collecting - RDBMS Feature Usage for IONDEV database
Collecting - RDBMS Feature Usage for VERSDEV database
Collecting - RDBMS Feature Usage for VERSREP database
Collecting - CPU Information
Collecting - Clusterware and RDBMS software version
Collecting - Compute node PCI bus slot speed for infiniband HCAs
Collecting - Kernel parameters
Collecting - Maximum number of semaphore sets on system
Collecting - Maximum number of semaphores on system
Collecting - OS Packages
Collecting - Patches for Grid Infrastructure
Collecting - Patches for RDBMS Home
Collecting - RDBMS patch inventory
Collecting - Switch Version Information
Collecting - number of semaphore operations per semop system call
Collecting - CRS user limits configuration
Collecting - CRS user time zone check
Collecting - Check alerthistory for non-test open stateless alerts [Database Server]
Collecting - Check alerthistory for stateful alerts not cleared [Database Server]
Collecting - Check alerthistory for test open stateless alerts [Database Server]
Collecting - Clusterware patch inventory
Collecting - Detect duplicate files in /etc/*init* directories
Collecting - Discover switch type(spine or leaf)
Collecting - Enterprise Manager agent targets
Collecting - Exadata Critical Issue DB09
Collecting - Exadata Critical Issue EX30
Collecting - Exadata software version on database server
Collecting - Exadata system model number
Collecting - Exadata version on database server
Collecting - HCA firmware version on database server
Collecting - HCA transfer rate on database server
Collecting - Infrastructure Software and Configuration for compute
Collecting - MaxStartups setting in sshd_config
Collecting - OFED Software version on database server
Collecting - Obtain hardware information
Collecting - Operating system and Kernel version on database server
Collecting - Oracle monitoring agent and/or OS settings on ADR diagnostic directories
Collecting - Raid controller bus link speed
Collecting - System Event Log
Collecting - Validate key sysctl.conf parameters on database servers
Collecting - Verify Ambient Air Temperature [Database Server]
Collecting - Verify Data Network is Separate from Management Network
Collecting - Verify Database Server Disk Controller Configuration
Collecting - Verify Database Server Physical Drive Configuration
Collecting - Verify Database Server Virtual Drive Configuration
Collecting - Verify Disk Cache Policy on database server
Collecting - Verify Hardware and Firmware on Database and Storage Servers (CheckHWnFWProfile) [Database Server]
Collecting - Verify ILOM Power Up Configuration for HOST_AUTO_POWER_ON
Collecting - Verify ILOM Power Up Configuration for HOST_LAST_POWER_STATE
Collecting - Verify IP routing configuration on database servers
Collecting - Verify InfiniBand Address Resolution Protocol (ARP) Configuration on Database Servers
Collecting - Verify InfiniBand Fabric Topology (verify-topology)
Collecting - Verify InfiniBand subnet manager is not running on database server
Collecting - Verify InfiniBand subnet manager is running on an InfiniBand switch
Collecting - Verify Master (Rack) Serial Number is Set [Database Server]
Collecting - Verify NTP configuration on database servers
Collecting - Verify Quorum disks configuration
Collecting - Verify RAID Controller Battery Temperature [Database Server]
Collecting - Verify RAID disk controller CacheVault capacitor condition [Database Server]
Collecting - Verify TCP Segmentation Offload (TSO) is set to off
Collecting - Verify active kernel version matches expected version for installed Exadata Image
Collecting - Verify basic Logical Volume(LVM) system devices configuration
Collecting - Verify database server disk controllers use writeback cache
Collecting - Verify database server file systems have Check interval = 0
Collecting - Verify database server file systems have Maximum mount count = -1
Collecting - Verify imageinfo on database server
Collecting - Verify imageinfo on database server to compare systemwide
Collecting - Verify key InfiniBand fabric error counters are not present
Collecting - Verify no database server kernel out of memory errors
Collecting - Verify service exachkcfg autostart status on database server
Collecting - Verify that the SDP over IB option sdp_apm_enable is set to 0
Collecting - Verify the localhost alias is pingable [Database Server]
Collecting - Verify the Name Service Cache Daemon (NSCD) is Running
Collecting - Verify the file /.updfrm_exact does not exist [Database Server]
Collecting - Verify the grid Infrastructure management database (MGMTDB) does not use hugepages
Collecting - Verify the vm.min_free_kbytes configuration
Collecting - root time zone check
Collecting - verify asr exadata configuration check via ASREXACHECK on database server

Starting to run root privileged commands in background on STORAGE SERVER v1ex2cel01 (10.1.11.15)

Starting to run root privileged commands in background on STORAGE SERVER v1ex2cel02 (10.1.11.17)

Starting to run root privileged commands in background on STORAGE SERVER v1ex2cel03 (10.1.11.19)

Starting to run root privileged commands in background on INFINIBAND SWITCH v1ex2sw-ibb01

Starting to run root privileged commands in background on INFINIBAND SWITCH v1ex2sw-iba01

Collections from STORAGE SERVER:
----------------------------------
Collecting - Exadata Critical Issue EX10
Collecting - Exadata Critical Issue EX11
Collecting - Exadata Critical Issue EX22
Collecting - Exadata Critical Issue EX28
Collecting - Exadata Critical Issue EX31
Collecting - Exadata critical issue EX14
Collecting - Exadata critical issue EX16
Collecting - Exadata critical issue EX17
Collecting - Exadata critical issue EX23
Collecting - Exadata critical issue EX24
Collecting - Exadata software version on storage server
Collecting - Exadata software version on storage servers
Collecting - Exadata storage server system model number
Collecting - Infrastructure Software and Configuration for storage
Collecting - RAID controller version on storage servers
Collecting - Verify Ambient Air Temperature [Storage Server]
Collecting - Verify Disk Cache Policy on storage servers
Collecting - Verify Exadata Smart Flash Cache is created
Collecting - Verify Hardware and Firmware on Database and Storage Servers (CheckHWnFWProfile) [Storage Server]
Collecting - Verify ILOM Power Up Configuration for HOST_AUTO_POWER_ON on storage servers
Collecting - Verify ILOM Power Up Configuration for HOST_LAST_POWER_STATE on storage servers
Collecting - Verify InfiniBand subnet manager is not running on storage server
Collecting - Verify Master (Rack) Serial Number is Set [Storage Server]
Collecting - Verify NTP configuration on storage servers
Collecting - Verify OSSCONF/cellinit.ora consistency across storage servers
Collecting - Verify RAID Controller Battery Temperature [Storage Server]
Collecting - Verify RAID disk controller CacheVault capacitor condition [Storage Server]
Collecting - Verify Storage Server user CELLDIAG exists
Collecting - Verify active system values match those defined in configuration file cell.conf [Storage Server]
Collecting - Verify data (non-system) disks on Exadata Storage Servers have no partitions
Collecting - Verify imageinfo on storage server
Collecting - Verify imageinfo on storage server to compare systemwide
Collecting - Verify release tracking bug on storage servers
Collecting - Verify service exachkcfg autostart status on storage server
Collecting - Verify storage server disk controllers use writeback cache
Collecting - Verify the localhost alias is pingable [Storage Server]
Collecting - Verify the file /.updfrm_exact does not exist [Storage Server]
Collecting - verify asr exadata configuration check via ASREXACHECK on storage servers
Collecting - Check alerthistory for non-test open stateless alerts [Storage Server]
Collecting - Check alerthistory for stateful alerts not cleared [Storage Server]
Collecting - Check alerthistory for test open stateless alerts [Storage Server]
Collecting - Configure Storage Server alerts to be sent via email
Collecting - Determine storage server type(All Flash/High Capacity)
Collecting - Exadata Celldisk predictive failures
Collecting - Exadata storage server root filesystem free space
Collecting - HCA firmware version on storage server
Collecting - OFED Software version on storage server
Collecting - Operating system and Kernel version on storage server
Collecting - Storage server flash cache mode
Collecting - Storage server make and model
Collecting - Verify Data Network is Separate from Management Network on storage server
Collecting - Verify Datafiles are Placed on Diskgroups consisting of griddisks with correct attributes
Collecting - Verify Ethernet Cable Connection Quality on storage servers
Collecting - Verify ExaWatcher is executing [Storage Server]
Collecting - Verify Exadata Smart Flash Cache is actually in use
Collecting - Verify Exadata Smart Flash Cache status is normal
Collecting - Verify Exadata Smart Flash Log is Created
Collecting - Verify InfiniBand Cable Connection Quality on storage servers
Collecting - Verify average ping times to DNS nameserver [Storage Server]
Collecting - Verify celldisk configuration on disk drives
Collecting - Verify celldisk configuration on flash memory devices
Collecting - Verify griddisk ASM status
Collecting - Verify griddisk count matches across all storage servers where a given prefix name exists
Collecting - Verify storage server metric CD_IO_ST_RQ
Collecting - Verify the percent of available celldisk space used by the griddisks
Collecting - Verify there are no griddisks configured on flash memory devices
Collecting - Verify total number of griddisks with a given prefix name is evenly divisible of celldisks
Collecting - mpt_cmd_retry_count from /etc/modprobe.conf on Storage Servers

Collections from INFINIBAND SWITCH:
------------------------------------
Collecting - Exadata Critical Issue IB5
Collecting - Hostname in /etc/hosts
Collecting - Infiniband Switch NTP configuration
Collecting - Infiniband subnet manager status
Collecting - Infiniband switch HCA status
Collecting - Infiniband switch HOSTNAME configuration
Collecting - Infiniband switch firmware version
Collecting - Infiniband switch health
Collecting - Infiniband switch localtime configuration
Collecting - Infiniband switch module configuration
Collecting - Infiniband switch subnet manager configuration
Collecting - Infiniband switch type(Spine or leaf)
Collecting - Infrastructure Software and Configuration for switch
Collecting - Verify average ping times to DNS nameserver [IB Switch]
Collecting - Verify no IB switch ports disabled due to excessive symbol errors
Collecting - Verify the localhost alias is pingable [IB Switch]
Collecting - sm_priority configuration on Infiniband switch

Data collections completed. Checking best practices on v1ex2dbadm01.
--------------------------------------------------------------------------------------

FAIL => One or more storage servers have stateful alerts that have not been cleared.
FAIL => DB_UNIQUE_NAME on primary has not been modified from the default, confirm that database name is unique across your Oracle enterprise. for VERSDEV
FAIL => DB_UNIQUE_NAME on primary has not been modified from the default, confirm that database name is unique across your Oracle enterprise. for IONDEV
FAIL => DB_UNIQUE_NAME on primary has not been modified from the default, confirm that database name is unique across your Oracle enterprise. for VERSREP
WARNING => Hidden ASM Initialization Parameter usage is not correct
WARNING => ASM parameter AUDIT_SYSLOG_LEVEL should be set to the recommended value
WARNING => Database parameter AUDIT_TRAIL should be set to the recommended value on VERSS1 instance
WARNING => Database parameter AUDIT_TRAIL should be set to the recommended value on IONS1 instance
FAIL => Database parameter _smm_auto_max_io_size should be set to the recommended value on VERSDEV1 instance
FAIL => Database parameter _smm_auto_max_io_size should be set to the recommended value on IONDEV1 instance
FAIL => Database parameter _smm_auto_max_io_size should be set to the recommended value on VERSREP1 instance
WARNING => ASM parameter ASM_POWER_LIMIT is not set to the default value.
FAIL => One or more database servers have stateful alerts that have not been cleared
INFO => Oracle GoldenGate failure prevention best practices
INFO => One or more non-default AWR baselines should be created for VERSDEV
INFO => One or more non-default AWR baselines should be created for IONDEV
INFO => One or more non-default AWR baselines should be created for VERSREP
WARNING => Local archive destination does not alternate destination configured for VERSDEV
WARNING => Local archive destination does not alternate destination configured for IONDEV
WARNING => Local archive destination does not alternate destination configured for VERSREP
WARNING => System has fewer than five storage servers but does not have quorum disks configured on database servers.
INFO => Validate database security configuration using database security assessment tool for VERSS
INFO => Validate database security configuration using database security assessment tool for VERSDEV
INFO => Validate database security configuration using database security assessment tool for IONS
INFO => Validate database security configuration using database security assessment tool for IONDEV
INFO => Validate database security configuration using database security assessment tool for VERSREP
FAIL => System is exposed to Exadata Critical Issue IB5 on infiniband switch v1ex2sw-ibb01
FAIL => System is exposed to Exadata Critical Issue IB5 on infiniband switch v1ex2sw-iba01
FAIL => Oracle monitoring agent and Operating systems settings on Automatic diagnostic repository directories are not correct or not all targets have been scanned or not all diagnostic directories found
FAIL => Database parameter _parallel_adaptive_max_users is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter _parallel_adaptive_max_users is not set to recommended value on IONDEV1 instance
FAIL => Database parameter _parallel_adaptive_max_users is not set to recommended value on VERSREP1 instance
FAIL => Storage Server user "CELLDIAG" should exist
FAIL => Downdelay attribute is not set to recommended value on bonded client interface
FAIL => Database control files are not configured as recommended for VERSS
FAIL => Database control files are not configured as recommended for VERSDEV
FAIL => Database control files are not configured as recommended for IONS
FAIL => Database control files are not configured as recommended for IONDEV
FAIL => Database control files are not configured as recommended for VERSREP
FAIL => One or more of SYSTEM, SYSAUX, USERS, TEMP tablespaces are not of type bigfile for VERSDEV
FAIL => One or more of SYSTEM, SYSAUX, USERS, TEMP tablespaces are not of type bigfile for IONDEV
FAIL => One or more of SYSTEM, SYSAUX, USERS, TEMP tablespaces are not of type bigfile for VERSREP
WARNING => SYS or SYSTEM objects were found to be INVALID for VERSDEV
WARNING => SYS or SYSTEM objects were found to be INVALID for VERSREP
FAIL => All disk groups should have compatible.rdbms attribute set to recommended values
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on VERSS1 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on IONS1 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on IONDEV1 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on VERSREP1 instance
FAIL => Storage Server alerts are not configured to be sent via email
WARNING => filesystemio_options is not set to recommended value on VERSS1 instance
WARNING => filesystemio_options is not set to recommended value on VERSDEV1 instance
WARNING => filesystemio_options is not set to recommended value on IONS1 instance
WARNING => filesystemio_options is not set to recommended value on IONDEV1 instance
WARNING => filesystemio_options is not set to recommended value on VERSREP1 instance
FAIL => Some data or temp files are not autoextensible for IONDEV
WARNING => Key InfiniBand fabric error counters should not be present
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on VERSS1 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on IONS1 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on IONDEV1 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on VERSREP1 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on VERSS1 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on IONS1 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on IONDEV1 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on VERSREP1 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on VERSS1 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on IONS1 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on IONDEV1 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on VERSREP1 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on VERSS1 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on IONS1 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on VERSREP1 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on VERSS1 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on IONS1 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on VERSREP1 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on VERSS1 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on IONS1 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on IONDEV1 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on VERSREP1 instance
FAIL => Database parameter sql92_security is not set to recommended value on VERSS1 instance
FAIL => Database parameter sql92_security is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter sql92_security is not set to recommended value on IONS1 instance
FAIL => Database parameter sql92_security is not set to recommended value on IONDEV1 instance
FAIL => Database parameter sql92_security is not set to recommended value on VERSREP1 instance
FAIL => ASM parameter CLUSTER_INTERCONNECTS is NOT set to the recommended value
FAIL => Database parameter CLUSTER_INTERCONNECTS is NOT set to the recommended value for VERSDEV
FAIL => Database parameter CLUSTER_INTERCONNECTS is NOT set to the recommended value for VERSREP
FAIL => ASM processes parameter is not set to recommended value
WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for VERSDEV
WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for IONDEV
WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for VERSREP
FAIL => Database parameter DB_BLOCK_CHECKING on STANDBY is NOT set to the recommended value. for VERSS
FAIL => Database parameter DB_BLOCK_CHECKING on STANDBY is NOT set to the recommended value. for IONS
FAIL => Flashback on PRIMARY is not configured for IONDEV
INFO => Operational Best Practices
INFO => Database Consolidation Best Practices
INFO => Computer failure prevention best practices
INFO => Data corruption prevention best practices
INFO => Logical corruption prevention best practices
INFO => Database/Cluster/Site failure prevention best practices
INFO => Client failover operational best practices
WARNING => fast_start_mttr_target should be greater than or equal to 300. on VERSS1 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on VERSDEV1 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on IONS1 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on IONDEV1 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on VERSREP1 instance
FAIL => ASM parameter MEMORY_TARGET should be set according to recommended value
FAIL => ASM parameter PGA_AGGREGATE_TARGET should be set according to recommended value
FAIL => ASM parameter MEMORY_MAX_TARGET should be set according to recommended value
INFO => Verify the percent of available celldisk space used by the griddisks
FAIL => Database control files are not configured as recommended for VERSS
FAIL => Database control files are not configured as recommended for VERSDEV
FAIL => Database control files are not configured as recommended for IONS
FAIL => Database control files are not configured as recommended for IONDEV
FAIL => Database control files are not configured as recommended for VERSREP
INFO => While initialization parameter LOG_ARCHIVE_CONFIG is set it should be verified for your environment on Standby Database for VERSS
INFO => While initialization parameter LOG_ARCHIVE_CONFIG is set it should be verified for your environment on Standby Database for IONS
FAIL => Table AUD$[FGA_LOG$] should use Automatic Segment Space Management for VERSDEV
FAIL => Table AUD$[FGA_LOG$] should use Automatic Segment Space Management for VERSREP
INFO => Database failure prevention best practices
FAIL => Primary database is NOT protected with Data Guard (standby database) for real-time data protection and availability for VERSDEV
FAIL => Primary database is NOT protected with Data Guard (standby database) for real-time data protection and availability for IONDEV
FAIL => Primary database is NOT protected with Data Guard (standby database) for real-time data protection and availability for VERSREP
FAIL => Database parameter LOG_BUFFER is not set to recommended value on VERSDEV1 instance
FAIL => Database parameter LOG_BUFFER is not set to recommended value on IONDEV1 instance
FAIL => Database parameter LOG_BUFFER is not set to recommended value on VERSREP1 instance
WARNING => Redo log files should be appropriately sized for IONDEV
WARNING => Redo log files should be appropriately sized for VERSREP
FAIL => No one high redundancy diskgroup configured for VERSDEV
FAIL => No one high redundancy diskgroup configured for IONDEV
FAIL => No one high redundancy diskgroup configured for VERSREP
INFO => Storage failures prevention best practices
INFO => Software maintenance best practices
FAIL => Database parameter DB_FILES should be set to a value greater than or equal to the recommended minimum. on VERSS1 instance
FAIL => Database parameter DB_FILES should be set to a value greater than or equal to the recommended minimum. on VERSDEV1 instance
FAIL => Database parameter DB_FILES should be set to a value greater than or equal to the recommended minimum. on VERSREP1 instance
FAIL => The data files should be recoverable for VERSS
FAIL => Initialization parameter LOG_ARCHIVE_MAX_PROCESSES should be configured as recommended for VERSS
FAIL => Initialization parameter LOG_ARCHIVE_MAX_PROCESSES should be configured as recommended for IONS
FAIL => FRA space management problem file types are present without an RMAN backup completion within the last 7 days. for VERSDEV
FAIL => FRA space management problem file types are present without an RMAN backup completion within the last 7 days. for IONDEV
INFO => Oracle recovery manager(rman) best practices
WARNING => RMAN controlfile autobackup should be set to ON for VERSDEV
WARNING => RMAN controlfile autobackup should be set to ON for IONDEV
INFO => Exadata Critical Issues (Doc ID 1270094.1):- DB1-DB4,DB6,DB9-DB37, EX1-EX26,EX29-EX36 and IB1-IB3,IB5
FAIL => ASM parameter SGA_TARGET is not set according to recommended value.
WARNING => Multiple Oracle database instances discovered, observe database consolidation best practices
FAIL => There should be enough freespace in all diskgroups to reestablish redundancy after a single disk failure
Collecting patch inventory on CRS HOME /u01/app/12.1.0.2/grid
Collecting patch inventory on ASM HOME /u01/app/12.1.0.2/grid
Collecting patch inventory on ORACLE_HOME /u01/app/oracle/product/12.1.0.2/dbhome_1
Collecting patch inventory on ORACLE_HOME /u01/app/oracle/product/12.1.0.2/dbhome_2

Copying results from v1ex2dbadm02 and generating report. This might take a while. Be patient.

. .
=============================================================
 Node name - v1ex2dbadm02
=============================================================
. . . . .

Collecting - CPU Information
Collecting - Clusterware and RDBMS software version
Collecting - Compute node PCI bus slot speed for infiniband HCAs
Collecting - Kernel parameters
Collecting - Maximum number of semaphore sets on system
Collecting - Maximum number of semaphores on system
Collecting - OS Packages
Collecting - Patches for Grid Infrastructure
Collecting - Patches for RDBMS Home
Collecting - RDBMS patch inventory
Collecting - number of semaphore operations per semop system call
Collecting - CRS user limits configuration
Collecting - CRS user time zone check
Collecting - Check alerthistory for non-test open stateless alerts [Database Server]
Collecting - Check alerthistory for stateful alerts not cleared [Database Server]
Collecting - Check alerthistory for test open stateless alerts [Database Server]
Collecting - Clusterware patch inventory
Collecting - Detect duplicate files in /etc/*init* directories
Collecting - Enterprise Manager agent targets
Collecting - Exadata Critical Issue DB09
Collecting - Exadata Critical Issue EX30
Collecting - Exadata software version on database server
Collecting - Exadata system model number
Collecting - Exadata version on database server
Collecting - HCA firmware version on database server
Collecting - HCA transfer rate on database server
Collecting - Infrastructure Software and Configuration for compute
Collecting - MaxStartups setting in sshd_config
Collecting - OFED Software version on database server
Collecting - Obtain hardware information
Collecting - Operating system and Kernel version on database server
Collecting - Oracle monitoring agent and/or OS settings on ADR diagnostic directories
Collecting - Raid controller bus link speed
Collecting - System Event Log
Collecting - Validate key sysctl.conf parameters on database servers
Collecting - Verify Ambient Air Temperature [Database Server]
Collecting - Verify Data Network is Separate from Management Network
Collecting - Verify Database Server Disk Controller Configuration
Collecting - Verify Database Server Physical Drive Configuration
Collecting - Verify Database Server Virtual Drive Configuration
Collecting - Verify Disk Cache Policy on database server
Collecting - Verify Hardware and Firmware on Database and Storage Servers (CheckHWnFWProfile) [Database Server]
Collecting - Verify ILOM Power Up Configuration for HOST_AUTO_POWER_ON
Collecting - Verify ILOM Power Up Configuration for HOST_LAST_POWER_STATE
Collecting - Verify IP routing configuration on database servers
Collecting - Verify InfiniBand Address Resolution Protocol (ARP) Configuration on Database Servers
Collecting - Verify InfiniBand subnet manager is not running on database server
Collecting - Verify Master (Rack) Serial Number is Set [Database Server]
Collecting - Verify NTP configuration on database servers
Collecting - Verify Quorum disks configuration
Collecting - Verify RAID Controller Battery Temperature [Database Server]
Collecting - Verify RAID disk controller CacheVault capacitor condition [Database Server]
Collecting - Verify TCP Segmentation Offload (TSO) is set to off
Collecting - Verify active kernel version matches expected version for installed Exadata Image
Collecting - Verify basic Logical Volume(LVM) system devices configuration
Collecting - Verify database server disk controllers use writeback cache
Collecting - Verify database server file systems have Check interval = 0
Collecting - Verify database server file systems have Maximum mount count = -1
Collecting - Verify imageinfo on database server
Collecting - Verify imageinfo on database server to compare systemwide
Collecting - Verify no database server kernel out of memory errors
Collecting - Verify service exachkcfg autostart status on database server
Collecting - Verify that the SDP over IB option sdp_apm_enable is set to 0
Collecting - Verify the localhost alias is pingable [Database Server]
Collecting - Verify the Name Service Cache Daemon (NSCD) is Running
Collecting - Verify the file /.updfrm_exact does not exist [Database Server]
Collecting - Verify the grid Infrastructure management database (MGMTDB) does not use hugepages
Collecting - Verify the vm.min_free_kbytes configuration
Collecting - root time zone check
Collecting - verify asr exadata configuration check via ASREXACHECK on database server

Data collections completed. Checking best practices on v1ex2dbadm02.
--------------------------------------------------------------------------------------

WARNING => Hidden ASM Initialization Parameter usage is not correct
WARNING => ASM parameter AUDIT_SYSLOG_LEVEL should be set to the recommended value
WARNING => Database parameter AUDIT_TRAIL should be set to the recommended value on VERSS2 instance
WARNING => Database parameter AUDIT_TRAIL should be set to the recommended value on IONS2 instance
FAIL => Database parameter _smm_auto_max_io_size should be set to the recommended value on VERSDEV2 instance
FAIL => Database parameter _smm_auto_max_io_size should be set to the recommended value on IONDEV2 instance
FAIL => Database parameter _smm_auto_max_io_size should be set to the recommended value on VERSREP2 instance
WARNING => ASM parameter ASM_POWER_LIMIT is not set to the default value.
INFO => Oracle GoldenGate failure prevention best practices
WARNING => Local archive destination does not alternate destination configured for VERSDEV
WARNING => Local archive destination does not alternate destination configured for IONDEV
WARNING => Local archive destination does not alternate destination configured for VERSREP
WARNING => System has fewer than five storage servers but does not have quorum disks configured on database servers.
INFO => Validate database security configuration using database security assessment tool for VERSS
INFO => Validate database security configuration using database security assessment tool for VERSDEV
INFO => Validate database security configuration using database security assessment tool for IONS
INFO => Validate database security configuration using database security assessment tool for IONDEV
INFO => Validate database security configuration using database security assessment tool for VERSREP
FAIL => Oracle monitoring agent and Operating systems settings on Automatic diagnostic repository directories are not correct or not all targets have been scanned or not all diagnostic directories found
FAIL => Database parameter _parallel_adaptive_max_users is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter _parallel_adaptive_max_users is not set to recommended value on IONDEV2 instance
FAIL => Database parameter _parallel_adaptive_max_users is not set to recommended value on VERSREP2 instance
FAIL => Downdelay attribute is not set to recommended value on bonded client interface
FAIL => Database control files are not configured as recommended for VERSS
FAIL => Database control files are not configured as recommended for VERSDEV
FAIL => Database control files are not configured as recommended for IONS
FAIL => Database control files are not configured as recommended for IONDEV
FAIL => Database control files are not configured as recommended for VERSREP
FAIL => One or more of SYSTEM, SYSAUX, USERS, TEMP tablespaces are not of type bigfile for VERSDEV
FAIL => One or more of SYSTEM, SYSAUX, USERS, TEMP tablespaces are not of type bigfile for IONDEV
FAIL => One or more of SYSTEM, SYSAUX, USERS, TEMP tablespaces are not of type bigfile for VERSREP
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on VERSS2 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on IONS2 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on IONDEV2 instance
FAIL => Database parameter DB_BLOCK_CHECKSUM is not set to recommended value on VERSREP2 instance
WARNING => filesystemio_options is not set to recommended value on VERSS2 instance
WARNING => filesystemio_options is not set to recommended value on VERSDEV2 instance
WARNING => filesystemio_options is not set to recommended value on IONS2 instance
WARNING => filesystemio_options is not set to recommended value on IONDEV2 instance
WARNING => filesystemio_options is not set to recommended value on VERSREP2 instance
FAIL => ASM Audit file destination file count > 100,000
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on VERSS2 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on IONS2 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on IONDEV2 instance
FAIL => Database parameter DB_LOST_WRITE_PROTECT is not set to recommended value on VERSREP2 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on VERSS2 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on IONS2 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on IONDEV2 instance
FAIL => Database parameter GLOBAL_NAMES is not set to recommended value on VERSREP2 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on VERSS2 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on IONS2 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on IONDEV2 instance
FAIL => Database parameter PARALLEL_ADAPTIVE_MULTI_USER is not set to recommended value on VERSREP2 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on VERSS2 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on IONS2 instance
FAIL => Database parameter PARALLEL_THREADS_PER_CPU is not set to recommended value on VERSREP2 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on VERSS2 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on IONS2 instance
FAIL => Database parameter OS_AUTHENT_PREFIX is not set to recommended value on VERSREP2 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on VERSS2 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on IONS2 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on IONDEV2 instance
FAIL => Database parameter USE_LARGE_PAGES is not set to recommended value on VERSREP2 instance
FAIL => Database parameter sql92_security is not set to recommended value on VERSS2 instance
FAIL => Database parameter sql92_security is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter sql92_security is not set to recommended value on IONS2 instance
FAIL => Database parameter sql92_security is not set to recommended value on IONDEV2 instance
FAIL => Database parameter sql92_security is not set to recommended value on VERSREP2 instance
FAIL => ASM parameter CLUSTER_INTERCONNECTS is NOT set to the recommended value
FAIL => Database parameter CLUSTER_INTERCONNECTS is NOT set to the recommended value for VERSDEV
FAIL => Database parameter CLUSTER_INTERCONNECTS is NOT set to the recommended value for VERSREP
FAIL => ASM processes parameter is not set to recommended value
WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for VERSDEV
WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for IONDEV
WARNING => Database parameter DB_BLOCK_CHECKING on PRIMARY is NOT set to the recommended value. for VERSREP
FAIL => Database parameter DB_BLOCK_CHECKING on STANDBY is NOT set to the recommended value. for VERSS
FAIL => Database parameter DB_BLOCK_CHECKING on STANDBY is NOT set to the recommended value. for IONS
WARNING => fast_start_mttr_target should be greater than or equal to 300. on VERSS2 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on VERSDEV2 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on IONS2 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on IONDEV2 instance
WARNING => fast_start_mttr_target should be greater than or equal to 300. on VERSREP2 instance
FAIL => ASM parameter MEMORY_TARGET should be set according to recommended value
FAIL => ASM parameter PGA_AGGREGATE_TARGET should be set according to recommended value
FAIL => ASM parameter MEMORY_MAX_TARGET should be set according to recommended value
FAIL => Database control files are not configured as recommended for VERSS
FAIL => Database control files are not configured as recommended for VERSDEV
FAIL => Database control files are not configured as recommended for IONS
FAIL => Database control files are not configured as recommended for IONDEV
FAIL => Database control files are not configured as recommended for VERSREP
INFO => While initialization parameter LOG_ARCHIVE_CONFIG is set it should be verified for your environment on Standby Database for VERSS
INFO => While initialization parameter LOG_ARCHIVE_CONFIG is set it should be verified for your environment on Standby Database for IONS
FAIL => Database parameter LOG_BUFFER is not set to recommended value on VERSDEV2 instance
FAIL => Database parameter LOG_BUFFER is not set to recommended value on IONDEV2 instance
FAIL => Database parameter LOG_BUFFER is not set to recommended value on VERSREP2 instance
WARNING => Redo log files should be appropriately sized for IONDEV
WARNING => Redo log files should be appropriately sized for VERSREP
FAIL => Database parameter DB_FILES should be set to a value greater than or equal to the recommended minimum. on VERSS2 instance
FAIL => Database parameter DB_FILES should be set to a value greater than or equal to the recommended minimum. on VERSDEV2 instance
FAIL => Database parameter DB_FILES should be set to a value greater than or equal to the recommended minimum. on VERSREP2 instance
FAIL => Initialization parameter LOG_ARCHIVE_MAX_PROCESSES should be configured as recommended for VERSS
FAIL => Initialization parameter LOG_ARCHIVE_MAX_PROCESSES should be configured as recommended for IONS
FAIL => ASM parameter SGA_TARGET is not set according to recommended value.
WARNING => Multiple Oracle database instances discovered, observe database consolidation best practices
Collecting patch inventory on CRS HOME /u01/app/12.1.0.2/grid
Collecting patch inventory on ASM HOME /u01/app/12.1.0.2/grid
Collecting patch inventory on ORACLE_HOME /u01/app/oracle/product/12.1.0.2/dbhome_1
Collecting patch inventory on ORACLE_HOME /u01/app/oracle/product/12.1.0.2/dbhome_2

---------------------------------------------------------------------------------
 CLUSTERWIDE CHECKS
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------

Detailed report (html) - /home/oracle/version1/exachk/exachk/exachk_v1ex2dbadm01_VERSREP_090517_105859/exachk_v1ex2dbadm01_VERSREP_090517_105859.html
UPLOAD(if required) - /home/oracle/version1/exachk/exachk/exachk_v1ex2dbadm01_VERSREP_090517_105859.zip

[root@v1ex2dbadm01 exachk]#

Once completed, you’ll see a new folder and zip file, I recommend moving them both up a level to safe keeping:

[root@v1ex2dbadm01 exachk]# ls -ltrh
total 75M
-r-xr-xr-x 1 root root 40K Jul 22 2015 sample_user_defined_checks.xml
-r-xr-xr-x 1 root root 2.9K Oct 9 2015 user_defined_checks.xsd
-r-xr-xr-x 1 root root 4.6M Sep 15 2016 CollectionManager_App.sql
-r--r--r-- 1 root root 4.8K Mar 31 09:58 readme.txt
-r--r--r-- 1 root root 234 Apr 1 10:05 UserGuide.txt
-r-xr-xr-x 1 root root 7.9M Apr 4 12:12 Apex5_CollectionManager_App.sql
-r-xr-xr-x 1 root root 2.8M May 17 20:59 exachk
drwxr-xr-x 2 root root 4.0K Jul 19 03:17 templates
drwxr-xr-x 2 root root 4.0K Jul 19 03:17 exadiscover
-rw-r--r-- 1 root root 45M Jul 19 08:38 collections.dat
-rw-r--r-- 1 root root 6.1M Jul 19 08:38 rules.dat
-rw-r--r-- 1 root root 1.9M Jul 19 09:03 EXAchk_Health_Check_Catalog.html
drwxr-xr-x 2 root root 4.0K Sep 5 10:54 doc
drwxr-xr-x 8 root root 180K Sep 5 11:18 exachk_v1ex2dbadm01_VERSREP_090517_105859
-rw-r--r-- 1 root root 5.9M Sep 5 11:19 exachk_v1ex2dbadm01_VERSREP_090517_105859.zip
[root@v1ex2dbadm01 exachk]# mv exachk_* ..
[root@v1ex2dbadm01 exachk]# cd ..
[root@v1ex2dbadm01 exachk]# ls -ltrh
total 25M
-rw-r--r-- 1 root root 19M Sep 5 10:51 exachk.zip
drwxr-xr-x 8 root root 180K Sep 5 11:18 exachk_v1ex2dbadm01_VERSREP_090517_105859
-rw-r--r-- 1 root root 5.9M Sep 5 11:19 exachk_v1ex2dbadm01_VERSREP_090517_105859.zip
drwxr-xr-x 6 root root 4.0K Sep 5 11:29 exachk
[root@v1ex2dbadm01 exachk]#

In the new folder you’ll see a html file, which is the report produced by exachk:

[root@v1ex2dbadm01 exachk]# cd exachk_v1ex2dbadm01_VERSREP_090517_105859
[root@v1ex2dbadm01 exachk_v1ex2dbadm01_VERSREP_090517_105859]# ls -ltrh
total 6.4M
-rw-r--r-- 1 root root 762 Sep 5 11:02 targets.xsl
drwxr-xr-x 2 root root 4.0K Sep 5 11:18 upload
drwxr-xr-x 4 root root 100K Sep 5 11:18 outfiles
drwxr-xr-x 2 root root 4.0K Sep 5 11:18 reports
-rw-r--r-- 1 root root 6.2M Sep 5 11:18 exachk_v1ex2dbadm01_VERSREP_090517_105859.html
drwxr-xr-x 2 root root 48K Sep 5 11:19 scripts
drwxr-xr-x 2 root root 4.0K Sep 5 11:19 log
[root@v1ex2dbadm01 exachk_v1ex2dbadm01_VERSREP_090517_105859]#

It’s normally easier to copy the zip file off the compute node to your machine and then unzip and view the report local.

It will look like this:

exchk

Known Issues

1. Running ExaChk reset snmpd.conf and iptables on Storage Cells.  There’s a bug currently open with Oracle Support for this:
Bug 26742216 – EXACHK IS RESETTING IPTABLES AND IT IS BLOCKING SNMP CONNECTIONS UNTIL RESTART

Which hasn’t yet been fixed.  See my blog post with discuss how to fix this after Exadata Patching where this also happens:
SNMP unresponsive on Storage Cell after Exadata Patching

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

How to update OPatch

When applying patches, such as PSUs or one-offs, you may need to update OPatch to meet the minimum OPatch version.  It is also recommended to update OPatch when applying any patch.

To see your current OPatch version:

[oracle@v1ex1dbadm01 ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
[oracle@v1ex1dbadm01 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.1.0.1.3

OPatch succeeded.
[oracle@v1ex1dbadm01 ~]$

Backup existing OPatch:

[oracle@v1ex1dbadm01 ~]$ cd $ORACLE_HOME
[oracle@v1ex1dbadm01 dbhome_1]$ tar -cvf OPatch_backup.tar OPatch/*
OPatch/datapatch
OPatch/datapatch.bat
OPatch/docs/
...
OPatch/oplan/README.txt
OPatch/oplan/README.html
OPatch/oplan/oplan
[oracle@v1ex1dbadm01 dbhome_1]$

Check the backup of OPatch:

[oracle@v1ex1dbadm01 dbhome_1]$ ls -lh | grep OPatch_backup.tar
-rw-rw-r--. 1 oracle oracle 6.7M Aug 29 11:51 OPatch_backup.tar
[oracle@v1ex1dbadm01 dbhome_1]$

Remove the existing OPatch:

[oracle@v1ex1dbadm01 dbhome_1]$ rm -rf OPatch

Unzip the latest OPatch:

[oracle@v1ex1dbadm01 dbhome_1]$ unzip -d $ORACLE_HOME ~/sw/p6880880_122010_Linux-x86-64.zip
Archive: /home/oracle/sw/p6880880_122010_Linux-x86-64.zip
creating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/datapatch
...
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/docs/cversion.txt
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/docs/FAQ
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/opatch.bat
[oracle@v1ex1dbadm01 dbhome_1]$

Which can be found here:
OPatch – Where Can I Find the Latest Version of OPatch(6880880)? [Video] (Doc ID 224346.1)
OPATCH PLACEHOLDER Patch 6880880

To see your newOPatch version:

[oracle@v1ex1dbadm01 dbhome_1]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.9

OPatch succeeded.
[oracle@v1ex1dbadm01 dbhome_1]$

 

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)