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

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.gz
DBD-Oracle-1.22
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$ls
Changes       Makefile.PL     oraperl.ph          README.login.txt
dbdimp.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.PL
Using 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$make
cp Oracle.pm blib/lib/DBD/Oracle.pm
cp oraperl.ph blib/lib/oraperl.ph
cp dbdimp.h blib/arch/auto/DBD/Oracle/dbdimp.h
I/Driver.xst > Oracle.xsi
[..省略部分屏幕输出..]

然后切换成root用户make install

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

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

【编辑推荐】

  1. 详解Oracle几种性能调优方法
  2. Oracle DBA职责及日常工作分析
  3. Oracle数据块原理深入剖析

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/260031.html<

(0)
管理的头像管理
上一篇2025-05-02 23:37
下一篇 2025-05-02 23:38

相关推荐

  • 骨干网络体系结构能干什么?骨干网络体系结构的作用

    骨干网络体系结构是现代信息社会的“超级高速公路网”,它通过分层设计、冗余备份和智能调度,确保海量数据在全球范围内高速、稳定、安全地传输,是支撑云计算、物联网及人工智能应用的底层基石,想象一下,如果你把互联网比作一个巨大的城市交通系统,那么骨干网络就是连接各个城市的主干道和立交桥,没有它,你的每一次微信发送、每一……

    2026-06-18
    0
  • 高io数据库可以干什么用?高io数据库适合什么场景

    高IO数据库的核心价值在于通过极高的读写吞吐量,解决海量数据场景下的性能瓶颈,是支撑高并发交易、实时分析及大规模内容分发的关键基础设施,在数字化转型的深水区,数据不再仅仅是静态的记录,而是流动的资产,传统的机械硬盘或普通SSD早已无法满足现代应用对速度的极致追求,高IO(Input/Output)数据库,就是那……

    2026-06-18
    0
  • 高io服务器性能如何?高io服务器适合什么场景

    高IO服务器并非单纯指代某种硬件,而是指在随机读写、高并发连接及小文件处理场景下,具备极致IOPS(每秒输入输出操作次数)和低延迟特性的计算资源,它是支撑现代高并发应用稳定运行的核心基石,在2026年的数字化浪潮中,业务负载早已从简单的静态页面展示演变为复杂的实时数据处理,许多开发者在排查系统瓶颈时,往往忽略了……

    2026-06-18
    0
  • 隔离网络空间哪里便宜?国内隔离网络空间价格

    隔离网络空间并没有统一的“便宜”标准,其成本高度取决于物理隔离等级、带宽需求及安全合规要求,通常物理网闸方案初期投入较高但长期运维成本低,而逻辑隔离方案虽初期便宜但存在潜在安全风险,建议根据业务敏感度选择混合隔离架构以平衡成本与安全,在数字化时代,企业构建独立网络环境的需求日益增长,但“隔离网络空间哪里便宜”这……

    2026-06-18
    0
  • 骨干网络体系结构设备为何故障?常见原因有哪些

    骨干网络体系结构设备故障的核心原因通常归结为硬件老化、配置错误、物理链路中断及外部攻击四大类,其中电源模块失效与光模块性能衰减是占比最高的隐性故障源,骨干网作为数字经济的“大动脉”,其稳定性直接关乎国计民生,当核心路由器或交换机出现丢包、震荡甚至宕机时,运维人员往往面临巨大的压力,很多人第一反应是检查软件配置……

    2026-06-18
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注