Oracle 11g客户端在Linux系统上的配置步骤详解

数据库 Oracle
本文我们主要介绍了Oracle 11g客户端在Linux系统上的配置过程,希望能对您有所帮助。

Oracle 11g客户端在Linux系统上的配置过程有一点点的难度,但是只要我们按照步骤一步步地来配置,也就没有什么了。本文我们就介绍Oracle 11g客户端在Linux系统上的配置过程。

首先从OTN下载几个压缩包,下载地址为: http://www.oracle.com/technology/software/tech/oci/instantclient/index.html ,然后根据你的平台,选择不同的下载,我是安装在rhel5下,所以选择了linux x86 并下载了下面2个包:

instantclient-basic-linux32-11.1.0.7.zip  基本包,提供了OCI,OCCI和JDBC-OCI应用程序的支持。

instantclient-sdk-linux32-11.1.0.7.zip  附加的头文件和makefile文件,部分需要编译的模板需要,比如编译php的oci8,和python 的cx_Oracle. (我们这里仅使用其提供的oci头文件)

instantclient-sqlplus-linux32-11.1.0.7.zip 可选安装,sqlplus..有时候测试,管理什么的很方便。

接下来我们就开始介绍配置过程,如下:

1.建立oracle用户和组:

 

  1. #groupadd oinstall  
  2.  
  3. #useradd -g oinstall oracle  
  4.  
  5. #passwd oracle 

 

2.建立一个Oracle 基本目录

 

  1. #mkdir –p /usr/local/oracle  
  2.  
  3. #chown –R oracle:oinstall /usr/local/oracle  
  4.  
  5. #chmod –R 775 /usr/local/oracle 

 

将上述tar.gz或zip包解压,拷贝到 /usr/local/oracle目录中。

3.设置 ORACLE_HOME和LD_LIBRARY_PATH环境变量,配置TNS_ADMIN变量

如果使用sqlplus的话,也设置下PATH环境变量。修改oracle用户目录下的  .bash_profile加入下面语句:

 

  1. export ORACLE_HOME=/usr/local/oracle  
  2.  
  3. #export ORACLE_SID=hbdb 
  4.  
  5. export SQLPATH=/usr/local/oracle  
  6.  
  7. #寻找tnsnames.ora路径  
  8.  
  9. export TNS_ADMIN=/usr/local/oracle     
  10.  
  11. export NLS_LANG=''american_america.ZHS16GBK''  
  12.  
  13. export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH  
  14.  
  15. export PATH=$PATH:$ORACLE_HOME 

 

4.tnsnames.ora配置:

 

  1. MYDB =  
  2.  
  3. (DESCRIPTION =  
  4.  
  5. (ADDRESS_LIST =  
  6.  
  7. (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.5)(PORT = 1521))  
  8.  
  9. )  
  10.  
  11. (CONNECT_DATA =  
  12.  
  13. (SID = HBDB)  
  14.  
  15. (SERVER = DEDICATED)  
  16.  
  17. )  
  18.  

 

5.sqlplus连接数据库:

 

  1. sqlplus user/passwd@10.0.0.5/hbdb或sqlplus user/passwd@MYDB 

 

如果出现:

  1. sqlplus: error while loading shared libraries: /usr/local/oracle/libnnz11.so: cannot restore segment prot after reloc: Permission denied 

 

最简单的解决方法莫过于将SElinux设置位PERMISSIVE状态:

 

  1. [root@localhost ~]# getenforce  
  2.  
  3. Enforcing  
  4.  
  5. [root@localhost ~]# setenforce 0  
  6.  
  7. [root@localhost ~]#  getenforce  
  8.  
  9. Permissive  
  10.  
  11. [oracle@localhost ~]# sqlplus xfdb/xfdb@MYDB  
  12.  
  13. SQL*Plus: Release 11.1.0.7.0 - Production on Wed Jun 17 16:37:06 2009  
  14.  
  15. Copyright (c) 1982, 2008, Oracle.  All rights reserved.  
  16.  
  17. Connected to:  
  18.  
  19. Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production  
  20.  
  21. With the Partitioning, OLAP, Data Mining and Real Application Testing options  
  22.  
  23. SQL> select sysdate from dual;  
  24.  
  25. SYSDATE  
  26.  
  27. ------------  
  28.  
  29. 17-JUN-09  
  30.  
  31. SQL> 

 

6.测试eams项目数据库访问组件dboci(对oci的c++封装)

先建立一个libclntsh.so.11.1的链接:

 

  1. [oracle@localhost oracle]# ln -s libclntsh.so.11.1  libclntsh.so  
  2.  
  3. #include "dboci.h"  
  4.  
  5. #include <iostream> 
  6.  
  7. int main(void)  
  8.  
  9. {  
  10.  
  11. CDbOci oci;  
  12.  
  13. int iret = oci.Open("xfdb", "xfdb", "HBDB");  
  14.  
  15. if (iret < 1)  
  16.  
  17.     return 0;   //  
  18.  
  19. char*** result = NULL;  
  20.  
  21. int num = oci.Query("select sysdate from dual", &result, 1);  
  22.  
  23. if (num > 0)  
  24.  
  25. {     
  26.  
  27.     for (int i=0; i < num; i++)  
  28.  
  29.     {  
  30.  
  31.         std::cout <<result[i][0] <<std::endl;  
  32.  
  33.     }  
  34.  
  35.     oci.FreeExecSqlBuf(&result, num, 1);  
  36.  
  37. }  
  38.  
  39. oci.Close();  
  40.  
  41. return 1;  
  42.  

 

scons脚本:

 

  1. env = Environment()  
  2.  
  3. env.Append(CCFLAGS='-g')  
  4.  
  5. src_files = Split('DBconnect.cpp ../dboci/source/dboci.cpp')  
  6.  
  7. include = Split('/usr/local/oracle/sdk/include ../dboci/include')  
  8.  
  9. lib_path = Split('/usr/local/oracle')  
  10.  
  11. lib_files = Split('clntsh nnz11')  
  12.  
  13. env.Program(target='dbconnect',source = src_filesLIBS=lib_filesLIBPATH=lib_path,CPPPATH=include

 

运行结果:

  1. [root@localhost dbconnecttest]# ./dbconnect  
  2.  
  3. 17-JUN-09 

 

至此eams项目数据库存取的开发与部署测试通过!

关于Oracle 11g客户端程序在Linux系统上的配置就介绍到这里了,希望能够带给您一些收获!

【编辑推荐】

  1. Oracle 11g R2的卸载与重装过程详解
  2. RedHat Linux的Oracle 10g安装配置详解
  3. Oracle数据库使用存储过程创建自动增长列
  4. Java和Ibatis调用存储过程并取得返回值详解
  5. Oracle和Sybase根据系统的pid查询sql语句的例子
责任编辑:赵鹏 来源: CSDN博客
相关推荐

2011-07-26 10:26:16

Oracle 11g即Windows

2009-03-04 10:27:50

客户端组件桌面虚拟化Xendesktop

2010-04-08 15:35:13

Oracle 简易客户

2011-08-17 13:49:08

Oracle 10g客PLSQL develop

2010-05-10 17:34:17

Oracle 客户端配

2010-04-01 17:56:59

Oracle客户端配置

2021-03-12 16:21:02

LinuxEvernote客户端

2011-08-23 15:56:19

SQL Server Oracle 11g

2011-03-21 14:53:36

Nagios监控Linux

2011-04-06 14:24:20

Nagios监控Linux

2011-08-19 09:11:24

Oracle 11g回启动闪回数据库

2016-11-01 09:52:57

Linux图形化Git 客户端

2010-05-31 15:55:42

2009-11-20 12:55:08

Oracle 11g功

2009-03-04 10:27:50

Target Devi桌面虚拟化Xendesktop

2009-09-15 09:52:25

Oracle 11g分

2010-04-15 11:05:51

Oracle客户端配置

2010-05-27 11:32:29

2011-07-28 10:15:41

Oracle客户端NLS_LANG参数

2015-08-03 15:38:06

点赞
收藏

51CTO技术栈公众号