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. Java系列:《Java核心技术 卷一》学习笔记,cchapter11 异常

    11.1.1 异常分类     如果一个程序出现了RuntimeException,那么就一定是你的问题. 11.1.2 声明已检测异常     如果子类覆盖了父类的一个方法,那么子类方法中声明的检查 ...

  2. LeetCode-Decode String

    Given an encoded string, return it's decoded string. The encoding rule is: k[encoded_string], where ...

  3. 20145208 《Java程序设计》第6周学习总结

    20145208 <Java程序设计>第6周学习总结 教材学习内容总结 输入与输出 InputStream与OutputStream 从应用程序角度来看,如果要将数据从来源取出,可以使用输 ...

  4. 使用git推送代码到开源中国以及IDEA环境下使用git

    使用git推送代码到开源中国以及IDEA环境下使用git 在学习Java的过程中我们会使用到git这个工具来将我们本周所编写的代码上传到开源中国进行代码托管,而在使用git的时候有很多的同学由于不会操 ...

  5. python实现简易数据库之二——单表查询和top N实现

    上一篇中,介绍了我们的存储和索引建立过程,这篇将介绍SQL查询.单表查询和TOPN实现. 一.SQL解析 正规的sql解析是用语法分析器,但是我找了好久,只知道可以用YACC.BISON等,sqlit ...

  6. 详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]

    目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumen ...

  7. SDAccel-FPGA将带来至多25倍单位功耗性能提升

    很久没有看FPGA了,本来想继续学习HLS,就上Xilinx的网站看了看.结果发现了SDx 开发环境,很新的一个东西.由于我对这方面了解不多,本篇博文仅仅只是资料的整合和介绍. 1.SDx开发环境 X ...

  8. 快速替换dll命名空间

    时15年9月18日,闲来无事,更一博.  背景 三天前,Y公司为避免法律诉讼,需要将代码(包括dll)中有关老东家的命名空间全部改掉.现在我就将快速替换命名空间的方法一步步告诉大家,注意,此举不是为了 ...

  9. 关于一个每天请求50W次接口的设计实现过程

    从大学开始关注博客园,到工作之后注册了博客园账号,直至今日终于能够静下心来将自己个人的所学,所得,所悟能够分享出来与大家分享,好开心~ 言归正传,需求背景是博主所在的公司为一个在线OTA公司,客户端上 ...

  10. 获取url据对路径写法

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