linux安装oracle精简版客户端
文章目录
linux安装oracle精简版客户端
前提准备
安装包下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
版本要求:最好和服务端一致,可以高一点,但是不能底于服务端的版本号;最好不要高于oracle服务端的的大版本,比如,服务端是11g的,最好就下11版本的客户端,不要下载12版本的客户端;
下载包: oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip oracle-instantclient11.2-jdbc-11.2.0.1.0-1.x86_64.zip oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.zip oracle-instantclient11.2-odbc-11.2.0.1.0-1.x86_64.zip oracle-instantclient11.2-tools-11.2.0.1.0-1.x86_64.zip
解压
把上述包全部解压
unzip oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip
unzip oracle-instantclient11.2-jdbc-11.2.0.1.0-1.x86_64.zip
unzip oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.zip
unzip oracle-instantclient11.2-odbc-11.2.0.1.0-1.x86_64.zip
unzip oracle-instantclient11.2-tools-11.2.0.1.0-1.x86_64.zip
解压后得到目录:instantclient_11_2
赋执行权限
chmod -R 7755 instantclient_11_2
配置环境变量
vi ~/.bash_profile
export ORACLE_HOME=/home/oracle/instantclient_11_2
export ORACLE_IC_HOME=$ORACLE_HOME
export TNS_ADMIN=$ORACLE_HOME
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export CLASSPATH=$ORACLE_HOME/ojdbc6.jar:./
export PATH=$PATH:$ORACLE_HOME
export ORACLE_SID=orcl
使环境变量生效
source ~/.bash_profile
配置tnsname.ora
cd $ORACLE_HOME
vi tnsname.ora
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.132.2 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
测试sqlplus
sqlplus oracle/oracle@orcl
SQL*Plus: Release 11.2.0.1.0 - Production on Fri Aug 5 12:32:54 2005
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL>
连接成功!
如果sqlplus报错:ORA-12533 或者 ORA-12533: TNS:illegal ADDRESS parameters
解决办法:
- 先检查tnsname.ora有没有配置错误;
- 如果tnsname.ora确定正确,则需要把tnsname.ora文件里面的所有空格和换行符去掉,里面只剩下一行,如下:
shell orcl=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.132.2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
然后在进行测试,应该会成功
创建目录(后面的tnsping、exp、imp、sqlldr会用到):
mkdir -p $ORACLE_HOME/network/mesg/
mkdir -p $ORACLE_HOME/rdbms/mesg
tnsping命令
由于精简版客户端默认没有tnsping的,需要我们去服务端copy;
scp $ORACLE_HOME/bin/tnsping oracle@ip_client:$ORACLE_HOME/tnsping
scp $ORACLE_HOME/network/mesg/tnsus.msb oracle@ip_client:$ORACLE_HOME/network/mesg/tnsus.msb
然后再测试tnsping
#tnsping orcl
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 10-MAR-2014 09:28:39
Copyright (c) 1997, 2006, Oracle. All rights reserved.
Used parameter files:
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.132.2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))
exp和imp命令
由于精简版客户端默认没有exp和imp命令,需要我们去服务端copy;
scp $ORACLE_HOME/bin/exp oracle@ip_client:$ORACLE_HOME/exp
scp $ORACLE_HOME/bin/imp oracle@ip_client:$ORACLE_HOME/imp
scp $ORACLE_HOME/rdbms/mesg/ulus.msb oracle@ip_client:$ORACLE_HOME/rdbms/mesg/ulus.msb
scp $ORACLE_HOME/rdbms/mesg/expus.msb oracle@ip_client:$ORACLE_HOME/rdbms/mesg/expus.msb
scp $ORACLE_HOME/rdbms/mesg/impus.msb oracle@ip_client:$ORACLE_HOME/rdbms/mesg/impus.msb
sqlldr命令
由于精简版客户端默认没有sqlldr命令,需要我们去服务端copy;
scp $ORACLE_HOME/bin/sqlldr oracle@ip_client:$ORACLE_HOME/sqlldr
scp $ORACLE_HOME/network/mesg/* oracle@ip_client:$ORACLE_HOME/network/mesg/
scp $ORACLE_HOME/rdbms/mesg/* oracle@ip_client:$ORACLE_HOME/rdbms/mesg
scp $ORACLE_HOME/lib/* oracle@ip_client:$ORACLE_HOME/
你会发现network/mesg/和rdbms/mesg/下面copy的东西把上面tnsping、exp、imp中copy的文件都包含了;这个其实是免得有些库依赖或者.msb没有copy完全,索性就全部copy过来了,免得后面再出问题;偷了个懒!
为了放置copy过来的文件没有执行权限,我们在客户端服务器上再进行一次赋权
chmod -R 7755 $ORACLE_HOME
然后你再去测试sqlldr命令就会发现已经能用了;
$ sqlldr
SQL*Loader: Release 11.2.0.1.0 - Production on Sat Jan 6 14:17:09 2018
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Usage: SQLLDR keyword=value [,keyword=value,...]
Valid Keywords:
userid -- ORACLE username/password
control -- control file name
log -- log file name
bad -- bad file name
data -- data file name
discard -- discard file name
discardmax -- number of discards to allow (Default all)
skip -- number of logical records to skip (Default 0)
load -- number of logical records to load (Default all)
errors -- number of errors to allow (Default 50)
rows -- number of rows in conventional path bind array or be
最后
最后还有一件重要的事情,去喝杯茶,抽支烟,犒劳下自己!