当前位置:  数据库>oracle

实战Linux环境配置DBD:Oracle模块

    来源: 互联网  发布时间:2017-03-21

    本文导语: Web开发,不外乎两点,一为版面,一为内容。 论版面,PERL的CGI模块功能强大,又简单易用,短短数行,便能动态生成HTML网页。 而论内容,那么必然会用到数据库,用数据库来管理内容。PERL对数据库的支持广而且全,几乎所有...

Web开发,不外乎两点,一为版面,一为内容。

论版面,PERL的CGI模块功能强大,又简单易用,短短数行,便能动态生成HTML网页。

而论内容,那么必然会用到数据库,用数据库来管理内容。PERL对数据库的支持广而且全,几乎所有的主流数据库都有与之相应的PERL模块支持。为了开发可在不同数据库上移植的PERL应用,DBI(DataBase Interface)模块应运而生,使用这个模块,应用只需使用统一的接口便能操作不同的数据库,真正实现了可移植;当然,这个DBI也配备有相应的开关来支持不同数据库的各种特性,每一个数据库都能单独成文,本篇暂不涉及这此点。

DBI只是个抽象层,要实现支持不同的数据库,则需要在DBI之下,编写针对不同数据库的驱动。对MySql来说,有DBD::Mysql, 而对Oracle来说,则是DBD::Oracle。其中的DBD这是DataBase Driver之简写。

所以总的体系结构如下所示:

应用(Application) -> DBI -> DBD -> DB

要连接不同类型的数据库,就得在应用所在主机上配置安装DBI以及相对应的DBD模块,关于DBI的安装配置,偶遇此文,大家全可拿来参考,我就不重新造轮子,安装顺序是先装DBI,再装DBD::Oracle。

DBD::Oracle模块不是Oracle官方开发的,而是由Pythian Group这个很有名的DBA咨询公司组织专人开发,目前的最新版本是1.22,主页在http://www.pythian.com/news/dbd-oracle,读者可以到那里找到关于此模块的最新动态。

接下来把如何安装DBD::Oracle的步骤罗列如下,供大家参考。

DBD::Oracle模块既可安装在有Oracle Database的主机上,也可以装在没有Oracle Database的主机上,后者需要安装Oracle Instant Client进行远程数据库连接,本文只关注第二种配置,即DBD::Oracle通过Instant Client实现数据库访问。

第一步: 下载Oracle Instant Client

Oracle Instant Client的主页在http://www.oracle.com/technology/tech/oci/instantclient/index.html  ; 秉承了Oracle公司的一贯做法,同一软件按配置分成了不同的可下载包,让用户可以按照自己的需求,找到最合适的部分下载。要成功配置DBD::Oracle, 需要Basic,SQL*Plus,SDK这三个配置,读者需要把这三个包下载并放到同一目录,如下所示为我已经下载的三个包,版本是当前最新的11.1.0.7

shawn@shawn-laptop:/tmp/InstantClient$ls

instantclient-basic-linux32-11.1.0.7.zip

instantclient-sdk-linux32-11.1.0.7.zip

instantclient-sqlplus-linux32-11.1.0.7.zip

使用unzip命令在当前目录解压这三个zip文件,会自动生成instantclient_11_1目录,这里面包含了以上三个包里面的所有文件,解压后的目录结构:

shawn@shawn-laptop:/tmp/InstantClient$ls

instantclient_11_1

instantclient-basic-linux32-11.1.0.7.zip

instantclient-sdk-linux32-11.1.0.7.zip

instantclient-sqlplus-linux32-11.1.0.7.zip

这时候这三个zip文件已经没用,可以删之,也可备份供以后重用。

第二步:下载DBD::Oracle

这个时候,我们可以使用PERL自带的CPAN进行自动安装,也可以手动下载此模块,编译安装,此文采用后者。

DBD::Oracle在search.cpan.org的下载地址是http://search.cpan.org/CPAN/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.22.tar.gz,下载后随便放到某一目录,这里我放到/tmp,然后解压,如下:

shawn@shawn-laptop:/tmp$tarzxf DBD-Oracle-1.22.tar.gzDBD-Oracle-1.22shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$lsChanges       Makefile.PL     oraperl.ph          README.login.txtdbdimp.c      MANIFEST        Oraperl.pm          README.longs.txt[..省略部分屏幕输出..]

第三步:配置ORACLE_HOME环境变量

如果安装了Oracle Database软件,这个ORACLE_HOME就是安装oracle时所设值。在只安装Instant Client的情形下,此值设为第一步中instantclient_11_1目录的绝对路径,如下:

shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$exportORACLE_HOME=/tmp/InstantClient/instantclient_11_1

shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$echo $ORACLE_HOME

/tmp/InstantClient/instantclient_11_1

第四步:编译安装DBD::Oracle模块

首先是使用PERL的Makefile.PL来生成makefile

shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$perl Makefile.PLUsing DBI 1.607 (for perl 5.008008 on i486-linux-gnu-thread-multi) installed in /usr/local/lib/perl/5.8.8/auto/DBI/Configuring DBD::Oracle for perl 5.008008 on linux (i486-linux-gnu-thread-multi)Remember to actually *READ* the README file! Especially if you have any problems.

Installing on a linux, Ver#2.6

Using Oracle in /tmp/InstantClient/instantclient_11_1

DEFINE _SQLPLUS_RELEASE = "1101000700" (CHAR)

Oracle version 11.1.0.7 (11.1)

Looks like an Instant Client installation, okay

[..省略部分屏幕输出..]

运行make

shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$makecp Oracle.pm blib/lib/DBD/Oracle.pmcp oraperl.ph blib/lib/oraperl.phcp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.hI/Driver.xst > Oracle.xsi[..省略部分屏幕输出..]

然后切换成root用户make install

shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$suPassword:root@shawn-laptop:/tmp/DBD-Oracle-1.22#make install[..省略部分屏幕输出..]

至此,DBD::Oracle配置安装完毕,用户可以使用此模块连接Oracle进行相应的操作,


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 基于Docker容器的云计算平台搭建实战
  • WEB前端 iis7站长之家
  • mongodb分片原理详细介绍及实战举例
  • linux c编程实战
  • ​docker之轻量虚拟化技术——docker实战分享
  • 实战Nginx:取代Apache的高性能Web服务器
  • 请教有实战经验的大虾们关于Linux做安全路由或网关服务器的问题!
  • 谁有 linux c实战编程 pdf,麻烦发我一份 100分感谢
  • 我按cn-java上实战EJB做的第一个EJB例子(最简单的),最后运行http://localhost:6888/hello/servlet/HelloServlet,结果提示“Http:404
  • mysql 读写分离(实战篇)
  • 实战EJB,实体BEAN,怎么出了这个错误??怎么会找不到???
  • MySQL 数据库设计复习笔记及项目实战
  • 实战EJB之四(开发实体CMP),在部署应用程序的时候,点击"实体EJB的持续性管理",”在设置数据源的JNDI名时,如何修改datasources.xml来
  • 实战Oracle数据库备份与恢复
  • 实战 J2EE 开发购物网站 - 创建数据库
  • 实战 J2EE 开发购物网站 二
  • Oracle 数据库优化实战心得总结
  • Linux vmstat命令实战详细解析
  • Oracle10g在AIX上的安装准备工作《Oracle大型数据库系统在AIX/unix上的实战详解》 集中答疑 40
  • java反射机制实战示例分享
  • IIS6+TOMCAT整合,实战实例!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3