How to run diff on Informix configuration (onconfig) files

IBM introduced a new tool in Informix 11.70.xC4 called “onconfig_diff”, located under the $INFORMIXDIR/bin directory.  This tool will show you the difference between two onconfig files in an easily readable format. This tool is particularly helpful when you need to upgrade the Informix software, add new servers into a cluster environment, check replication settings between nodes, etc.

You should never delete, move or change the default onconfig template file “onconfig.std”.  The file should be copied to a different name and changes made in the new file.  The reason for that is if any parameter is missing or has been omitted from your new onconfig file, the database server either uses default  values from “onconfig_std” or calculates values that are based on other parameter values.

Usage :  

$ onconfig_diff

usage: onconfig_diff [-d] | [-c -f file_name_1 -s file_name_2]

-d      compare current onconfig to defaults

-c      compare file to another file

-f      file name

-s      second file name

Some ways that you can use the utility:

  • Compare your current onconfig with the onconfig.std of same version.
  • Compare your current onconfig with the onconfig.std of a newer version.
  • Compare two onconfig files from different servers.

Example :

(Just taken first five parameters for sampling)

$ onconfig_diff -c -f onconfig.std_1210_FC1 -s onconfig_11.50FC3

File 1: onconfig.std_1210_FC1

File 2: onconfig_11.50FC3

==========================================

Parameters Found in File 1, not in File 2

==========================================

FULL_DISK_INIT

0

NUMFDSERVERS

4

NS_CACHE

host=900,service=900,user=900,group=900

AUTO_TUNE

1

RESTORE_POINT_DIR

$INFORMIXDIR/tmp

……….

==========================================

Parameters Found in File 2, not in File 1

==========================================

DBSPACETEMP

tempdbs1

DBSERVERNAME

ONLINE

DBSERVERALIASES

ontcponline

AUTO_AIOVPS

1

AUTO_CKPTS

1

…….

==============================================

Parameters Found in both files, but different

==============================================

ROOTPATH

File 1:  $INFORMIXDIR/tmp/demo_on.rootdbs

File 2:  /dev/rootdbs_1

MIRROR

File 1:  0

File 2:  1

MIRRORPATH

File 1:  $INFORMIXDIR/tmp/demo_on.root_mirror

File 2:  /dev/rootdbs_2

PHYSFILE

File 1:  50000

File 2:  90000

LOGFILES

File 1:  6

File 2:  138

……..

===================================================================================