zoukankan      html  css  js  c++  java
  • 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系统上的配置就介绍到这里了,希望能够带给您一些收获!

  • 相关阅读:
    红黑树
    jsp简单练习-简单的下拉表单
    【源代码】TreeMap源代码剖析
    ScrollView垂直滚动控件
    进度条控件基本使用
    时间对话框的使用
    DatePicker日期与时间控件
    ImageView显示网络上的图片
    bitmap==null
    android.os.NetworkOnMainThreadException
  • 原文地址:https://www.cnblogs.com/the-tops/p/5623887.html
Copyright © 2011-2022 走看看