$ORACLE_HOME/bin/sqlldr fails to execute with following error:
SQL*Loader: Release 12.1.0.1.0 - Production on Wed Feb 26 12:16:13 2014
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
sqlldr: symbol lookup error: sqlldr: undefined symbol: odm_registerthread
Problem 1: For each execution of sqlldr, set LD_PRELOAD = $ORACLE_HOME/lib/libodmd12.so on the command line.
For example:
# LD_PRELOAD=$ORACLE_HOME/lib/libodmd12.so; $ORACLE_HOME/bin/sqlldr
Problem 2: Before applying any oracle patch, perform the following steps:
1. Disable or Unlink Veritas ODM
a. Log in as the Oracle user
b. Stop all the databases:
# $ORACLE_HOME/bin/srvctl stop database –d
c. Unlink Veritas ODM:
# cd $ORACLE_HOME/lib
# mv $ORACLE_HOME/lib/libodm12.so $ORACLE_HOME/lib/libodm12.so.veritas
# cp –p $ORACLE_HOME/libodmd12.so $ORACLE_HOME/lib/libodm12.so
2. Apply the Oracle patch (opatch apply)
3. Enable or relink Veritas ODM:
a. Log in as the Oracle user
b. Relink Veritas ODM
# cd $ORACLE_HOME/lib
# mv libodm12.so libodm12.so.oracle-`date +%m_%d_%Y-%H_%M_%S`
# cp /opt/VRTSodm/lib64/libodm.so libodm12.so
c. Start all the databases
# $ORACLE_HOME/bin/srvctl start database –d
Applies To
OS: Linux and HP
Release: Storage Foundation for Oracle RAC (Any release version)
Oracle: 12.1.0.1 (Single Instance & RAC)