一、无oracle环境的服务器
1. 伪环境准备
sqluldr2 命令依赖 oracle 的 library
# 将oralce环境将oracle服务器的product文件夹压缩为 product.jar
tar -zcf ~/product.jar $ORALCE_HOME/app/product
# 解压压缩文件到无 oracle 的环境
tar -zxf ~/product.jar -C /home/oracle
2. 配置伪用户环境变量
vi ~/.bashrc
# ORACLE_BASE 为product文件解压路径
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$ORACLE_HOME/bin:/sbin:/usr/sbin:/usr/ccs/bin:/usr/bin:/sbin:$PATH:/bin
export TNS_NAMES=$ORACLE_HOME/network/admin
export TNS_ADMIN=$ORACLE_HOME/network/admin
# CLASSPATH must include the following JRE locations:
CLASSPATH=${ORACLE_HOME}/rdbms/jlib:${CLASSPATH}
export CLASSPATH=$CLASSPATH:/opt/oracle/product/11/network/jlib
source ~/.bashrc
3. sqluldr2 命令准备
# sqluldr2下载
wget http://www.onexsoft.com/software/sqluldr2linux64.zip
# 命令导入
unzip sqluldr2linux64.zip
mv sqluldr2linux64.bin sqluldr2
mv sqluldr2 $ORACLE_HOME/bin
# 依赖lib建立软链
sudo ln -s $ORACLE_HOME/lib/libclntsh.so.11.1 /usr/lib/libclntsh.so
# 重新加载lib目录
sudo ldconfig
二、具备oracle环境的服务器
1. sqluldr2 命令准备
# sqluldr2下载
wget http://www.onexsoft.com/software/sqluldr2linux64.zip
# 命令导入
unzip sqluldr2linux64.zip
mv sqluldr2linux64.bin sqluldr2
mv sqluldr2 $ORACLE_HOME/bin
# 依赖lib建立软链
sudo ln -s $ORACLE_HOME/lib/libclntsh.so.11.1 /usr/lib/libclntsh.so
# 重新加载lib目录
sudo ldconfig
三、error 处理
1. error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
缺少依赖 libaio,安装 libaio 即可.
yum install -y libaio
2. sqluldr2执行无日志生成也无数据文件产生
使用脚本检测错误对照错误码表分析问题即可.
vi test.sh
sqluldr2 user={user}/{password}@{host}:{port}/{sid} query={table} head=yes charset=utf8 file=table.data
echo $?
sh test.sh
返回值/错误码 | 含义 |
---|---|
0 | 操作成功 |
1 | 不能登录数据库 |
2 | 不能创建Cursor |
3 | 不能分析SQL |
4 | 不能执行SQL |
5 | 不能解释返回的记录结果集 |
6 | 不能生成输出文件 |
7 | 在导出过程中遇到数据库错误,如ORA-01555 |
3. sqluldr2密码包含特殊字符
sqluldr2 user=${user}/"""${password}"""@${host}:${port}/${sid} query=${table} head=yes charset=utf8 file=table.data