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. [CareerCup] 5.1 Insert Bits 插入位

    5.1 You are given two 32-bit numbers, N and M, and two bit positions, land j. Write a method to inse ...

  2. Linux基础入门(20135207 王国伊)

    实验一  Linux系统简介 一.实验心得 首个实验是简单介绍了Linux系统的简介,了解Linux系统的历史和发展.使我受益匪浅 实验二  基本概念及操作 一.学习目标 1.实验楼环境介绍 2.常用 ...

  3. Git差异比对

    一. 查看变更还未载入(changed but unstaged,当前没有add 的内容)的文件比对: 只需运行不带任何参数的'git diff'命令即可 二. 查看载入(stage,即已经add)而 ...

  4. 访问图片可以使用闭包map

    1 imageView.animationImages = [ UIImage(named:"panda1"), UIImage(named:"panda2") ...

  5. 工作随笔——xshell4安装后应该做的一些事

    xshell4默认支持中文语言 选项→键盘和鼠标:设置快捷键,鼠标按键(可以提高工作效率) 1.选定文本自动复制到剪贴板 选择→将选定的文本自动复制到剪贴板(选上) 2.更高鼠标中间按钮和右键按钮的功 ...

  6. mysql基础 事务的认识和使用

    事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务是恢复和并发控制的基本单位. 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序 ...

  7. log4js

    这一篇足够:转载:http://www.cnblogs.com/Joans/p/4092293.html 代码贴出来吧: log.js var log4js = require('log4js'); ...

  8. 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  9. 配置ipvsadm服务

    LVS的三种包转发方式      LVS提供了三种包转发方式:NAT(网络地址映射).IP Tunneling(IP隧道).Direct Routing(直接路由)     不同的转发模式决定了不同的 ...

  10. 转:Oracle中merge into的使用

    最近项目上使用Oracle的Merge,所以找来一下资料学习了解. 该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和I ...