This post describes the procedures for Enable/Disable Oracle Disk Manager driver for Oracle Database 12.1.0.2, 18c, and 19c.
We assume the Veritas ODM driver is already installed, mounted, and available. Follow the steps outlined below to enable/disable ODM for the Oracle database (note that with different versions of the Solaris OS, the path may change to the ODM files).
Example location of Veritas ODM library on some platforms:
For Linux: /opt/VRTSodm/lib64/libodm.so
For Solaris SPARC: /usr/lib/sparcv9/libodm.so
For Solaris x86: /usr/lib/amd64/libodm.so
The example given here below is for the Linux platform.
Enable ODM
1. Log in as RDBMS Home Owner OS user.
2. Shut down the database.
3. Change directories:
$ cd $ORACLE_HOME/rdbms/lib
4. Take a backup of existing original ODM library (if this is an old set up).
$ mv $ORACLE_HOME/rdbms/lib/odm/libodm[software_version].so $ORACLE_HOME/rdbms/lib/odm/libodm[software_version].so.org
For example, in 12c [software_version] = 12:
$ mv $ORACLE_HOME/rdbms/lib/odm/libodmlibodm12.so $ORACLE_HOME/rdbms/lib/odm/libodm12.so.org
5. On new set up, create the odm directory if it is not there:
$ mkdir –p odm $ cd odm
6. create a symbolic link to veritas ODM library:
$ ln -s /opt/VRTSodm/lib/libodm.so $ORACLE_HOME/rdbms/lib/odm/libodm[software_version].so
For example, in 12c [software_version]=12:
$ ln -s /opt/VRTSodm/lib/libodm.so $ORACLE_HOME/rdbms/lib/odm/libodm12.so
For example, in 19c:
$ ln -s /opt/VRTSodm/lib64/libodm.so $ORACLE_HOME/rdbms/lib/odm/libodm19.so
7. Start the database and check the alert.log for the below message:
Oracle instance running with ODM: VERITAS 4.1 ODM Library, Version 1.1
8. Also validate the DBWR is opening /dev/odm/ctl files:
$ ps -aef | grep -i ora_dbw0_t12 oracle 19706 1 0 12:44 ? 00:00:00 ora_dbw0_t12101
$ lsof -p 19706 | grep -i odm ora_dbw0_ 19706 oracle mem REG 8,3 69205 20259040 /opt/VRTSodm/lib64/libodm.so ora_dbw0_ 19706 oracle 8r REG 0,19 0 3 /dev/odm/ctl ora_dbw0_ 19706 oracle 10r REG 0,19 0 3 /dev/odm/ctl ora_dbw0_ 19706 oracle 25r REG 0,19 0 3 /dev/odm/ctl
On 19c, following sample output for ‘lsof -p [pid of dbwr process] | grep -i odm’
$ lsof -p [pid of dbwr process] | grep -i odm ora_dbw0_ 25556 oracle mem REG 253,143 70718 27670121 /opt/VRTSodm/lib64/libodm.so ora_dbw0_ 25556 oracle mem REG 199,5000 17848 34127 [ORACLE_HOME]/lib/libodmd19.so ora_dbw0_ 25556 oracle 6r REG 0,41 0 3 /dev/odm/ctl ora_dbw0_ 25556 oracle 7r REG 0,41 0 3 /dev/odm/ctl ora_dbw0_ 25556 oracle 14r REG 0,41 0 3 /dev/odm/ctl
Disable ODM
Just remove the symbolic link from the respective directory so that the link to the Veritas ODM library present at the OS directory is broken.
1. Log in as an RDBMS Home Owner OS user. Shut down the database.
2. Remove the link:
$ cd $ORACLE_HOME/rdbms/lib/odm $ rm libodm[software_version].so
3. Copy the original $ORACLE_HOME/rdbms/lib/odm/libodm[software_version].so file back to disable the ODM library:
$ cp $ORACLE_HOME/rdbms/lib/libodm[software_version].so.oracle $ORACLE_HOME/rdbms/lib/libodm[software_version].so $ ls -l libodm[software_version].*
4. Start the database and check the alert.log.
How to Enable or Disable Veritas ODM for Oracle database 12.1.0.1