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

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

2011-07-26 10:47 newhappy2008 CSDN博客 字号:T | T
一键收藏,随时查看,分享好友!

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

AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

 

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_files, LIBS=lib_files, LIBPATH=lib_path,CPPPATH=include) 

 

运行结果:

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

 

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

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

posted @ 2016-06-28 16:15  the_tops  阅读(888)  评论(0编辑  收藏  举报