Oracle 12.2简易客户端安装配置

42次阅读
没有评论

共计 5355 个字符,预计需要花费 14 分钟才能阅读完成。

自动写代码机器人,免费开通

安装 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@rhel7 instantclient_12_2]$ mkdir -p network/admin
[tst1@rhel7 instantclient_12_2]$ cd network/admin/
[tst1@rhel7 admin]$ cat tnsnames.ora 
ora11g =
 (DESCRIPTION = 
 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.22)(PORT = 1521))
 (CONNECT_DATA =
 (SERVER = DEDICATED)
 (SERVICE_NAME = ora11g)
 )
 )

5、测试 sqlplus,成功

[tst1@rhel7 admin]$ sqlplus zx/zx@ora11g
SQL*Plus: Release 12.2.0.1.0 Production on Thu Nov 16 12:48:33 2017
Copyright (c) 1982, 2016, Oracle. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL

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

[tst1@rhel7 instantclient_12_2]$ sqlldr
Message 2100 not found; No message file for product=RDBMS, facility=ULMessage 2100 not found; No message file for product=RDBMS, facility=UL[tst1@rhel7 instantclient_12_2]$

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

[tst1@rhel7 instantclient_12_2]$ mkdir -p rdbms/mesg
[tst1@rhel7 instantclient_12_2]$ cp /u01/app/oracle/product/12.2/db_home1/rdbms/mesg/* rdbms/mesg/

再次执行 sqlldr 成功

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

[tst1@rhel7 instantclient_12_2]$ cp /u01/app/oracle/product/12.2/db_home1/bin/oerr ./
[tst1@rhel7 instantclient_12_2]$ oerr
/home/tst1/instantclient_12_2/oerr: line 29: /home/tst1/instantclient_12_2/perl/bin/perl: No such file or directory

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

[tst1@rhel7 instantclient_12_2]$ cp -r /u01/app/oracle/product/12.2/db_home1/perl/* ./
[tst1@rhel7 instantclient_12_2]$ cp -r /u01/app/oracle/product/12.2/db_home1/perl/* ./perl/
[tst1@rhel7 instantclient_12_2]$ oerr ora 1
Can't open perl script "/home/tst1/instantclient_12_2/bin/oerr.pl": (null)
[tst1@rhel7 instantclient_12_2]$ mkdir bin
[tst1@rhel7 instantclient_12_2]$ scp /u01/app/oracle/product/12.2/db_home1/bin/oerr.pl ./bin/
[tst1@rhel7 instantclient_12_2]$ oerr ora 1
Could not open facilities list file: /home/tst1/instantclient_12_2/lib/facility.lis
[tst1@rhel7 instantclient_12_2]$ mkdir lib
[tst1@rhel7 instantclient_12_2]$ cp /u01/app/oracle/product/12.2/db_home1/lib/facility.lis ./lib/
[tst1@rhel7 instantclient_12_2]$ oerr ora 1
00001, 00000, "unique constraint (%s.%s) violated"
// *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
// For Trusted Oracle configured in DBMS MAC mode, you may see
// this message if a duplicate entry exists at a different level.
// *Action: Either remove the unique restriction or do not insert the key.

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

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

[tst1@rhel7 instantclient_12_2]$ cp /u01/app/oracle/product/12.2/db_home1/bin/tnsping ./
[tst1@rhel7 instantclient_12_2]$ tnsping
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 16-NOV-2017 13:09:12
Copyright (c) 1997, 2016, Oracle. All rights reserved.
TNS-03502: Message 3502 not found; No message file for product=network, facility=TNS

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

[tst1@rhel7 instantclient_12_2]$ cp -r /u01/app/oracle/product/12.2/db_home1/network/mesg/ ./network/
[tst1@rhel7 instantclient_12_2]$ tnsping 192.168.56.22:1521/ora11g
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 16-NOV-2017 13:11:04
Copyright (c) 1997, 2016, Oracle. All rights reserved.
Used parameter files:
Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=ora11g))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.22)(PORT=1521)))
OK (10 msec)

安装成功。

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

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

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

[tst1@rhel7 instantclient_12_2]$ expdp
Segmentation fault
[tst1@rhel7 instantclient_12_2]$ impdp
Segmentation fault

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

问题解决。

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

备注:

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

[root@host77 instantclient_11_2]# ldd sqlldr
 linux-vdso.so.1 =  (0x00007fffe63fe000)
 libclntsh.so.11.1 =  not found
 libnnz11.so =  not found
 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

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计5355字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)