一、无oracle环境的服务器
1. 伪环境准备
2. 配置伪用户环境变量
3. sqluldr2 命令准备
二、具备oracle环境的服务器
1. sqluldr2 命令准备
三、error 处理
1. error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
2. sqluldr2执行无日志生成也无数据文件产生
3. sqluldr2密码包含特殊字符
sqluldr2 命令依赖 oracle 的 library
# 将oralce环境将oracle服务器的product文件夹压缩为 product.jar tar -zcf ~/product.jar $ORALCE_HOME/app/product # 解压压缩文件到无 oracle 的环境 tar -zxf ~/product.jar -C /home/oracle
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
# 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
# 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
缺少依赖 libaio,安装 libaio 即可.
yum install -y libaio
使用脚本检测错误对照错误码表分析问题即可.
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 |
sqluldr2 user=${user}/"""${password}"""@${host}:${port}/${sid} query=${table} head=yes charset=utf8 file=table.data