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. #useradd -g oinstall oracle
  3. #passwd oracle

2.建立一个Oracle 基本目录

  1. #mkdir –p /usr/local/oracle
  2. #chown –R oracle:oinstall /usr/local/oracle
  3. #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. #export ORACLE_SID=hbdb
  3. export SQLPATH=/usr/local/oracle
  4. #寻找tnsnames.ora路径
  5. export TNS_ADMIN=/usr/local/oracle
  6. export NLS_LANG=''american_america.ZHS16GBK''
  7. export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
  8. export PATH=$PATH:$ORACLE_HOME

4.tnsnames.ora配置:

  1. MYDB =
  2. (DESCRIPTION =
  3. (ADDRESS_LIST =
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.5)(PORT = 1521))
  5. )
  6. (CONNECT_DATA =
  7. (SID = HBDB)
  8. (SERVER = DEDICATED)
  9. )
  10. )

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

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

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

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

scons脚本:

  1. env = Environment()
  2. env.Append(CCFLAGS='-g')
  3. src_files = Split('DBconnect.cpp ../dboci/source/dboci.cpp')
  4. include = Split('/usr/local/oracle/sdk/include ../dboci/include')
  5. lib_path = Split('/usr/local/oracle')
  6. lib_files = Split('clntsh nnz11')
  7. env.Program(target='dbconnect',source = src_files, LIBS=lib_files, LIBPATH=lib_path,CPPPATH=include)

运行结果:

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

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

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

Oracle 11g客户端在Linux系统上的配置步骤详解的更多相关文章

  1. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  2. Jmeter(五十三) - 从入门到精通高级篇 - 懒人教你在Linux系统中安装Jmeter(详解教程)

    1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多 ...

  3. Linux系统上安装配置MAVEN

    1,下载maven 首先进入maven下载目录:http://maven.apache.org/download.cgi 2,上传maven到linux系统 以下操作路径都是本人习惯,目录可以随意更改 ...

  4. 【夯实Mysql基础】MySQL在Linux系统下配置文件及日志详解

    本文地址 分享提纲: 1. 概述 2. 详解配置文件 3. 详解日志 1.概述 MySQL配置文件在Windows下叫my.ini,在MySQL的安装根目录下:在Linux下叫my.cnf,该文件位于 ...

  5. linux系统运维常用基本命令详解

      1.ls 文件属性:  -:普通文件  d:目录文件  b:块设备  c:字符设备文件  l:符号连接文件  p:命令管道  s:套接字文件  文件权限: 9位数字,每3位一组  文件硬链接次数  ...

  6. linux系统中whereis的用法详解

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...

  7. linux系统中的文件权限详解(转)

    一.在<Linux系统中如何查看文件属性>中介绍了通过ls指令来查看文件的属性,具体如下: [命令] letuknowit@ubuntu:/$ cd /tmp letuknowit@ubu ...

  8. linux系统编程:守护进程详解及创建,daemon()使用

    一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.它不需要用户输入就能运行而且提供某种服务,不是对整个 ...

  9. Linux系统Shutdown命令定时关机详解

    转自:http://www.bootf.com/490.html Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执 ...

随机推荐

  1. Android -- 使用inBitmap要注意的地方

    SDK版本 需要注意的是inBitmap只能在3.0以后使用.2.3上,bitmap的数据是存储在native的内存区域,并不是在Dalvik的内存堆上. 在android3.0开始,系统在Bitma ...

  2. 获取url据对路径写法

    var _absUrl = (function () { var a; return function (url) { if (!a) a = document.createElement('a'); ...

  3. Mediator Pattern --中介者模式原理及实现(C++)

    主要参考<大话设计模式>和<设计模式:可复用面向对象软件的基础>两本书.本文介绍中介者模式的实现. 中介者模式:What it is:Define an object that ...

  4. cocos2d-x 3.6 mac下的试用(粒子,触摸事件,图片)

    戏说 虽然公司再如何如何,咱程序员在干好课外学习的情况下也是要努力做好本职工作的. 工作中的lua也写多了,深入了解Cocos2d-x当然还是要倒腾倒腾C++,对于一个C#用了这么多年,工作用lua的 ...

  5. Java学习笔记(二十)——Java 散列表_算法内容

    [前面的话] 周末,本来打算找人去玩,结果没找到,所以我只好有学习了. 为什么会学习散列表,因为要使用HashMap?因为在做项目的时候,在服务器和客户端需要传输DTO,而传输的属性是动态增加的,所以 ...

  6. Boostrap(2)

    网页布局 1.网格布局 网格布局就是把网页分为许多小格子,看起来像table,然后在每个小格子中放我们的内容.当然,我们也可以指定一片区域使用网格系统.网格布局主要是应用在移动设备上的,使用方法如下: ...

  7. Javascript基础系列之(三)数据类型 (数值 Number)

    javascript中想限定一个数的数值,无需限定它是整数还是浮点数型 var num1 = 80 ; var num2 = 55.51; var num3 = -34; var num4 = 9e5 ...

  8. groovyConsole — the Groovy Swing console

    1. Groovy : Groovy Console The Groovy Swing Console allows a user to enter and run Groovy scripts. T ...

  9. C#中async/await中的异常处理

    在同步编程中,一旦出现错误就会抛出异常,我们可以使用try-catch来捕捉异常,而未被捕获的异常则会不断向上传递,形成一个简单而统一的错误处理机制.不过对于异步编程来说,异常处理一直是件麻烦的事情, ...

  10. 【CodeForces 471A】MUH and Sticks

    题 题意 给你六根木棍的长度,熊需要头比身体短,大象需要头和身体一样,四肢要一样长,否则就是外星人.请你判断能组成哪一个. 分析 暴力,循环看一下每根有几根相同的,然后如果有四根都是有四根相同的&am ...