實戰(zhàn)Linux環(huán)境配置DBD:Oracle模塊 |
發(fā)布時間: 2012/8/10 17:43:06 |
Web開發(fā),不外乎兩點,一為版面,一為內容。 論版面,PERL的CGI模塊功能強大,又簡單易用,短短數(shù)行,便能動態(tài)生成HTML網(wǎng)頁。 而論內容,那么必然會用到數(shù)據(jù)庫,用數(shù)據(jù)庫來管理內容。PERL對數(shù)據(jù)庫的支持廣而且全,幾乎所有的主流數(shù)據(jù)庫都有與之相應的PERL模塊支持。為了開發(fā)可在不同數(shù)據(jù)庫上移植的PERL應用,DBI(DataBase Interface)模塊應運而生,使用這個模塊,應用只需使用統(tǒng)一的接口便能操作不同的數(shù)據(jù)庫,真正實現(xiàn)了可移植;當然,這個DBI也配備有相應的開關來支持不同數(shù)據(jù)庫的各種特性,每一個數(shù)據(jù)庫都能單獨成文,本篇暫不涉及這此點。 DBI只是個抽象層,要實現(xiàn)支持不同的數(shù)據(jù)庫,則需要在DBI之下,編寫針對不同數(shù)據(jù)庫的驅動。對MySql來說,有DBD::Mysql, 而對Oracle來說,則是DBD::Oracle。其中的DBD這是DataBase Driver之簡寫。 所以總的體系結構如下所示: 應用(Application) -> DBI -> DBD -> DB 要連接不同類型的數(shù)據(jù)庫,就得在應用所在主機上配置安裝DBI以及相對應的DBD模塊,關于DBI的安裝配置,偶遇此文,大家全可拿來參考,我就不重新造輪子,安裝順序是先裝DBI,再裝DBD::Oracle。 DBD::Oracle模塊不是Oracle官方開發(fā)的,而是由Pythian Group這個很有名的DBA咨詢公司組織專人開發(fā),目前的最新版本是1.22,主頁在http://www.pythian.com/news/dbd-oracle,讀者可以到那里找到關于此模塊的最新動態(tài)。 接下來把如何安裝DBD::Oracle的步驟羅列如下,供大家參考。 DBD::Oracle模塊既可安裝在有Oracle Database的主機上,也可以裝在沒有Oracle Database的主機上,后者需要安裝Oracle Instant Client進行遠程數(shù)據(jù)庫連接,本文只關注第二種配置,即DBD::Oracle通過Instant Client實現(xiàn)數(shù)據(jù)庫訪問。 第一步: 下載Oracle Instant Client Oracle Instant Client的主頁在http://www.oracle.com/technology/tech/oci/instantclient/index.html ; 秉承了Oracle公司的一貫做法,同一軟件按配置分成了不同的可下載包,讓用戶可以按照自己的需求,找到最合適的部分下載。要成功配置DBD::Oracle, 需要Basic,SQL*Plus,SDK這三個配置,讀者需要把這三個包下載并放到同一目錄,如下所示為我已經(jīng)下載的三個包,版本是當前最新的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文件已經(jīng)沒用,可以刪之,也可備份供以后重用。 第二步:下載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環(huán)境變量 如果安裝了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進行相應的操作, 本文出自:億恩科技【1tcdy.com】 |