加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle 12.2简易客户端安装配置

发布时间:2020-12-12 14:14:35 所属栏目:百科 来源:网络整理
导读:安装Oracle客户端挺费时间的,而且大部分功能都用不到,Oracle官方给出了简易客户端,直接解压就可以使用,下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 下面来看安装步骤: 1、下载安装包,我这里把所有的都下载下来了

安装Oracle客户端挺费时间的,而且大部分功能都用不到,Oracle官方给出了简易客户端,直接解压就可以使用,下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

下面来看安装步骤:

1、下载安装包,我这里把所有的都下载下来了

instantclient-basic-linux.x64-12.2.0.1.0.zip

instantclient-basiclite-linux.x64-12.2.0.1.0.zip

instantclient-jdbc-linux.x64-12.2.0.1.0.zip

instantclient-odbc-linux.x64-12.2.0.1.0-2.zip

instantclient-sdk-linux.x64-12.2.0.1.0.zip

instantclient-sqlplus-linux.x64-12.2.0.1.0.zip

instantclient-tools-linux.x64-12.2.0.1.0.zip

2、unzip解压

解压出来一个目录instantclient_12_2

3、配置环境变量

export ORACLE_HOME=/home/tst1/instantclient_12_2

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME

export PATH=$ORACLE_HOME:$PATH

4、配置tns

[tst1@rhel7instantclient_12_2]$mkdir-pnetwork/admin
[tst1@rhel7instantclient_12_2]$cdnetwork/admin/
[tst1@rhel7admin]$cattnsnames.ora
ora11g=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.22)(PORT=1521))
(CONNECT_DATA=
(SERVER=DEDICATED)
(SERVICE_NAME=ora11g)
)
)

5、测试sqlplus,成功

[tst1@rhel7admin]$sqlpluszx/zx@ora11g

SQL*Plus:Release12.2.0.1.0ProductiononThuNov1612:48:332017

Copyright(c)1982,2016,Oracle.Allrightsreserved.


Connectedto:
OracleDatabase11gEnterpriseEditionRelease11.2.0.4.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions

SQL>

6、安装sqlldr,我安装的这个版本的简易客户端中有sqlldr,如果没有的话需要从其他客户端或服务端中拷贝,但是我测试执行sqlldr报错:

[tst1@rhel7instantclient_12_2]$sqlldr
Message2100notfound;Nomessagefileforproduct=RDBMS,facility=ULMessage2100notfound;Nomessagefileforproduct=RDBMS,facility=UL[tst1@rhel7instantclient_12_2]$

因为缺少mesg文件,从服务端把rdbms/mesg下的文件全部拷贝

[tst1@rhel7instantclient_12_2]$mkdir-prdbms/mesg
[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/rdbms/mesg/*rdbms/mesg/

再次执行sqlldr成功

7、安装oerr,简易客户端中没有oerr命令,需要从服务端拷贝

[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/bin/oerr./
[tst1@rhel7instantclient_12_2]$oerr
/home/tst1/instantclient_12_2/oerr:line29:/home/tst1/instantclient_12_2/perl/bin/perl:Nosuchfileordirectory

执行报错,说明缺少文件,从服务端拷贝

[tst1@rhel7instantclient_12_2]$cp-r/u01/app/oracle/product/12.2/db_home1/perl/*./
[tst1@rhel7instantclient_12_2]$cp-r/u01/app/oracle/product/12.2/db_home1/perl/*./perl/
[tst1@rhel7instantclient_12_2]$oerrora1
Can'topenperlscript"/home/tst1/instantclient_12_2/bin/oerr.pl":(null)
[tst1@rhel7instantclient_12_2]$mkdirbin
[tst1@rhel7instantclient_12_2]$scp/u01/app/oracle/product/12.2/db_home1/bin/oerr.pl./bin/
[tst1@rhel7instantclient_12_2]$oerrora1
Couldnotopenfacilitieslistfile:/home/tst1/instantclient_12_2/lib/facility.lis
2
[tst1@rhel7instantclient_12_2]$mkdirlib
[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/lib/facility.lis./lib/
[tst1@rhel7instantclient_12_2]$oerrora1
00001,00000,"uniqueconstraint(%s.%s)violated"
//*Cause:AnUPDATEorINSERTstatementattemptedtoinsertaduplicatekey.
//ForTrustedOracleconfiguredinDBMSMACmode,youmaysee
//thismessageifaduplicateentryexistsatadifferentlevel.
//*Action:Eitherremovetheuniquerestrictionordonotinsertthekey.

注意:oerr也使用到了rdbms/mesg目录下的文件,只不过第6步把整个目录都拷贝过来了,这里就省事了。

8、安装tnsping,简易安装包里也没有这个工具,需要从服务端拷贝

[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/bin/tnsping./
[tst1@rhel7instantclient_12_2]$tnsping

TNSPingUtilityforLinux:Version12.2.0.1.0-Productionon16-NOV-201713:09:12

Copyright(c)1997,Oracle.Allrightsreserved.

TNS-03502:Message3502notfound;Nomessagefileforproduct=network,facility=TNS

执行报错,因为缺少mesg文件

[tst1@rhel7instantclient_12_2]$cp-r/u01/app/oracle/product/12.2/db_home1/network/mesg/./network/
[tst1@rhel7instantclient_12_2]$tnsping192.168.56.22:1521/ora11g

TNSPingUtilityforLinux:Version12.2.0.1.0-Productionon16-NOV-201713:11:04

Copyright(c)1997,Oracle.Allrightsreserved.

Usedparameterfiles:

UsedHOSTNAMEadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=ora11g))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.22)(PORT=1521)))
OK(10msec)

安装成功。

9、安装exp、imp、expdp、impdp,安装包中没有,直接从服务端拷贝

[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/bin/imp./
[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/bin/exp./
[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/bin/impdp./
[tst1@rhel7instantclient_12_2]$cp/u01/app/oracle/product/12.2/db_home1/bin/expdp./

imp和exp测试没有问题,但expdp和impdp报错:

[tst1@rhel7instantclient_12_2]$expdp

Segmentationfault
[tst1@rhel7instantclient_12_2]$impdp

Segmentationfault

查询MOS找到解决方法,在环境变量中添加export NLS_LANG=American_America.ZHS16GBK

问题解决。

至此,简单客户端安装完成,可以把整个目录打个包,给其他机器安装时直接解压,配置环境变量就可以使用了。比安装客户端方便的多。

备注:

如果在使用某个工具报缺少库文件时可以使用ldd命令查看该命令缺少哪个库文件,如下所示:

[root@host77instantclient_11_2]#lddsqlldr
	linux-vdso.so.1=>(0x00007fffe63fe000)
	libclntsh.so.11.1=>notfound
	libnnz11.so=>notfound
	libpthread.so.0=>/lib64/libpthread.so.0(0x00007f014b85c000)
	libdl.so.2=>/lib64/libdl.so.2(0x00007f014b658000)
	libm.so.6=>/lib64/libm.so.6(0x00007f014b355000)
	libnsl.so.1=>/lib64/libnsl.so.1(0x00007f014b13c000)
	libc.so.6=>/lib64/libc.so.6(0x00007f014ad7b000)
	/lib64/ld-linux-x86-64.so.2(0x00007f014ba8b000)

从上面的输出可以看出缺少libclntsh.so.11.1和libnnz11.so这两个文件,从服务端拷贝即可。


参考:http://hanqunfeng.iteye.com/blog/1955277

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读