linux 安装Oracle12c客户端

1,首先Oracle官网下载安装包:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

2,安装解压缩到
mkdir -p /home/oraClient/u01/app/oracle/khd
unzip /home/oraClient/u01/app/oracle/khd/instantclient-basic-linux.x64-12.2.0.1.0.zip
unzip /home/oraClient/u01/app/oracle/khd/instantclient-jdbc-linux.x64-12.2.0.1.0.zip
unzip /home/oraClient/u01/app/oracle/khd/instantclient-odbc-linux.x64-12.2.0.1.0-2.zip
unzip /home/oraClient/u01/app/oracle/khd/instantclient-sdk-linux.x64-12.2.0.1.0.zip
unzip /home/oraClient/u01/app/oracle/khd/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
unzip /home/oraClient/u01/app/oracle/khd/instantclient-tools-linux.x64-12.2.0.1.0.zip

3, 创建Oracle用户和用户组
[root@getoraclelnx01 Server]# groupadd dba
[root@getoraclelnx01 Server]# groupadd oinstall
[root@getoraclelnx01 Server]# useradd -g oinstall -G dba oraClient
[root@getoraclelnx01 Server]# id oraClient
uid=502(oraClient) gid=503(oinstall) groups=503(oinstall),502(dba)
[root@getoraclelnx01 Server]#

4,配置环境变量
切换到oraClient用户,su oraClient,执行cd ~
添加环境变量
vi .bash_profile

Get the aliases and functions

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

export PATH
export ORACLE_HOME=/home/oraClient/u01/app/oracle/khd/instantclient_12_2
export LD_LIBRARY_PATH= L D L I B R A R Y P A T H : LD_LIBRARY_PATH: LDLIBRARYPATH:ORACLE_HOME
export PATH= O R A C L E H O M E : ORACLE_HOME: ORACLEHOME:PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=orcl3
export LANG=en_US
if [ $USER = “oracle” ];then
if [ $SHELL = “/bin/ksh” ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
执行环境变量
source .bash_profile
5,在root用户 执行chown -R oraClient:oinstall /home/oraClient/u01 赋权限
创建监听
cd /home/oraClient/u01/app/oracle/khd/instantclient_12_2
mkdir -p network/admin
cd network/admin
新建tnsnames.ora文件
vi tnsnames.ora
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = HOST)(PORT = 1521))
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

orcl3=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = psrc)
)
)
vi listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

6,测试数据库连接
sqlplus root/root@orcl3
出现了异常
sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
6.1 权限问题 文件libsqlplus.so 没有可读权限
没有权限导致的;
在root用户下执行
chmod u+x /home/oraClient/u01/app/oracle/khd/instantclient_12_2/libsqlplus.so
6.2 出现了异常
SQL*Plus: Release 12.2.0.1.0 Production on Thu Jun 4 08:52:12 2020
Copyright © 1982, 2016, Oracle. All rights reserved.
ERROR:
ORA-12154: TNS:could not resolve the connect identifier specified
解决办法
特别是重装后或其它操作,忘了设置
TNS_ADMIN 变量,PL/SQL 登陆就会报“无法解析指定的连接标识符”的错误 ,而设置TNS_ADMIN变量是为了能够找到 tnsnames.ora
export TNS_ADMIN=/home/oraClient/u01/app/oracle/khd/instantclient_12_2/network/admin

7,执行 sqluldr 命令,生成文件
将sqluldr 文件放在/u01/app/oracle/khd/instantclient_12_2/目录下,并在 root用户下执行 chmod u+x sqluldr,在切换到su oraClient用户执行

sqluldr root/root@orcl3 query=“SELECT * from SYS_ROLE” head=no file=/home/oraClient/u01/app/oracle/lfile/test4.txt field=0x7c record=0x0a charset=GB18030 safe=yes

出现了异常
[oraClient@BigDataAPP lfile]$ sqluldr zfjshgjg/zfjshgjg@psrc query=“SELECT * from SYS_ROLE” head=no file=/home/oraClient/u01/app/oracle/lfile/test4.txt field=0x7c record=0x0a charset=GB18030 safe=yes
0 rows exported at 2020-06-04 17:17:11, size 0 MB.
5 rows exported at 2020-06-04 17:17:11, size 0 MB.
output file /home/oraClient/u01/app/oracle/lfile/test4.txt closed at 5 rows, size 0 MB.
Errors in file :
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
解决办法,创建三个软连接
ln -s /home/oraClient/u01/app/oracle/khd/instantclient_12_2/libclntsh.so.12.1 libclntsh.so
ln -s libclntsh.so libclntsh.so.10.1
ln -s libclntsh.so libclntsh.so.11.1

你可能感兴趣的:(自己总结)