DBED for Oracle VRTSodm Configuring & Monitoring Oracle Disk Manager with Veritas Some pointers for using Oracle ODM with Veritas.... ODM yields raw file system performance on files in VxFS file systems and is preferred to Quick I/O for Oracle9i databases. ODM comes bundled with the Veritas Database Edition for Oracle for Solaris. Check that Veritas Products Are Installed Check Veritas software has been installed: $ pkginfo | grep VRTS utilities VRTSdbed VERITAS Database Edition for Oracle: 113216-01 (patch) optional VRTSgab VERITAS Group Membership and Atomic Broadcast system VRTSlic VERITAS Licensing Utilities optional VRTSllt VERITAS Low Latency Transport application VRTSnbora VERITAS NetBackup for Oracle+ application VRTSnetbp VERITAS NetBackup and Media Manager system VRTSodm VERITAS Oracle Disk Manager optional VRTSperl VERITAS Perl for VRTSvcs optional VRTSvcs VERITAS Cluster Server optional VRTSvcsag VCS Bundled Agents optional VRTSvcsdc VERITAS Cluster Server Documentation optional VRTSvcsmg VCS Message Catalogs optional VRTSvcsmn VCS Manual Pages optional VRTSvcsor VERITAS Cluster Server Oracle Enterprise Extension optional VRTSvcsw VERITAS Cluster Manager (Web Console) application VRTSvlic VERITAS License Utilities system VRTSvmman VERITAS Volume Manager, Manual Pages system VRTSvxfs VERITAS File System system VRTSvxvm VERITAS Volume Manager, Binaries optional VRTSweb VERITAS Web GUI Engine $ pkginfo -l VRTSodm PKGINST: VRTSodm NAME: VERITAS Oracle Disk Manager CATEGORY: system,utilities ARCH: sparc VERSION: 3.5,REV=GA06 BASEDIR: / VENDOR: VERITAS Software DESC: Oracle Disk Manager PSTAMP: VERITAS-3.5FS-2002-10-30PID=113598-01 INSTDATE: Aug 03 2003 23:31 HOTLINE: (800) 342-0652 EMAIL: support@veritas.com STATUS: completely installed FILES: 86 installed pathnames 19 shared pathnames 45 directories 6 executables 2020 blocks used (approx) Configure Oracle to use Veritas ODM $ cd $ORACLE_HOME/lib Make sure that there are no Oracle instances running using this set of binaries. Rename the existing libodm link to libodm9.so.orig: $ mv libodmd9.so libodm9.so.orig Create a symbolic link to the Veritas ODM library $ ln -s /opt/VRTSodm/lib/sparcv9/libodm.so libodm9.so $ ls -l libodm* lrwxrwxrwx 1 oracle dba 34 Oct 16 15:27 libodm9.so -> /opt/VRTSodm/lib/sparcv9/libodm.so lrwxrwxrwx 1 oracle dba 11 Oct 16 14:45 libodm9.so.orig -> libodmd9.so -rw-r--r-- 1 oracle dba 9080 Mar 10 2003 libodmd9.so Startup the Oracle instance(s). To check that ODM is enabled, look for the following line in the Oracle alert.log during instance startup: Oracle instance running with ODM: VERITAS 3.5 ODM Library, Version 1.1 Check the general health of the Oracle Veritas install with the following command: $ /opt/VRTSdbed/bin/dbed_checkconfig -S $ORACLE_SID -H $ORACLE_HOME Monitoring ODM odmstat [ -c count ] [ -i interval ] [ -r ] [ -o local ] filename ... The -r option resets the statistics $ /opt/VRTS/bin/odmstat -i 5 -c 1 /cac/oracle?/CPCP/* OPERATIONS FILE BLOCKS AVG TIME(ms) FILE NAME READ WRITE READ WRITE READ WRITE Fri 17 Oct 2003 10:52:03 AM BST /cac/oracle0/CPCP/CPCP_1.ctl 269 431 4289 6896 0.3 0.0 /cac/oracle0/CPCP/CPCP_g1.rdo 0 0 0 0 0.0 0.0 /cac/oracle0/CPCP/CPCP_g2.rdo 0 0 0 0 0.0 0.0 /cac/oracle0/CPCP/CPCP_g3.rdo 1 40 1 92 0.0 3.0 /cac/oracle2/CPCP/CPCP_2.ctl 85 427 1345 6832 0.1 0.1 /cac/oracle2/CPCP/CPCP_SYSTEM_TS_1.dbf 559 2 8944 32 6.2 0.0 /cac/oracle2/CPCP/CPCP_TEMP_TS_1.dbf 3 0 48 0 0.0 0.0 /cac/oracle2/CPCP/CPCP_UNDOTS_TS_1.dbf 24 2 384 32 3.3 0.0 /cac/oracle3/CPCP/CPCP_DATA1_TS_1.dbf 4 2 64 32 5.0 5.0 /cac/oracle4/CPCP/CPCP_INDEX1_TS_1.dbf 4 2 64 32 2.5 0.0 /dev/odm Pseudo device /dev/odm is mounted when the ODM driver is installed. The fid directory contains one entry for each ODM-managed file (datafiles, logfiles, controlfiles). The stats file shows a summary of all ODM operations. The example shows the stats file just after the CPCP database was created and bounced a few times. 10 create operations and 47 identifies proves that Oracle is using ODM. # cd /dev/odm $ ls -l total 0 crw-rw-rw- 1 root root 201, 4 Oct 17 11:04 cluster crw-rw-rw- 1 root root 201, 0 Oct 17 11:04 ctl dr-xr-xr-x 2 root root 54 Oct 17 11:04 fid crw-rw-rw- 1 root root 201, 2 Oct 17 11:04 ktrace crw-rw-rw- 1 root root 201, 1 Oct 17 11:04 stats $ ls -l fid total 5738418 -rw-r--r-- 1 oracle dba 1007616 Oct 17 11:05 8436aee5db1378a2 -rw-r--r-- 1 oracle dba 838868992 Oct 16 16:33 84497dc73af0cb7c -rw-r--r-- 1 oracle dba 419438592 Oct 17 11:01 844ea12bdad23bdf -rw-r--r-- 1 oracle dba 104858112 Oct 17 11:01 84881c676377ae60 -rw-r--r-- 1 oracle dba 524296192 Oct 17 10:30 848b990947c097a6 -rw-r--r-- 1 oracle dba 1007616 Oct 17 11:05 849c2d198ab91329 -rw-r--r-- 1 oracle dba 524296192 Oct 17 11:01 84cb4ea574898ed8 -rw-r--r-- 1 oracle dba 524296192 Oct 17 10:30 84fb7b0f894da85d $ cat stats abort: 0 cancel: 0 commit: 10 create: 10 delete: 0 identify: 47 io: 81393 reidentify: 8 resize: 9 unidentify: 29 mname: 0 vxctl: 0 vxvers: 3 io req: 103672 io calls: 57607 comp req: 828142 comp calls: 23786 io mor cmp: 82 io zro cmp: 704 cl receive: 0 cl ident: 0 cl reserve: 0 cl delete: 0 cl resize: 0 cl same op: 0 cl opt idn: 0 cl opt rsv: 0 Troubleshooting Veritas ODM /opt/VRTSodm/sbin/sparcv9/ktrace - Veritas utility to dump kernel trace buffer Set Oracle event 10298 - "ksfd i/o tracing" SQL> alter session set events '10298 trace name context forever, level 1';