Linux環境配置DBD::Oracle,幫助Perl連線Oracle資料庫
PERL語言一直是90年代開發CGI程式的首選語言。因為那個時代Python/Ruby/PHP這類相對“高階”的指令碼語言尚屬幼年或著根本沒有出生;而用C/C++來開發CGI,靈活性則又太差。PERL以其快速的開發週期,靈活的語法定義和能充分擴充套件模組機制,在那個Web應用才剛剛開始的火熱年代,領盡了風騷。
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,主頁在
接下來把如何安裝DBD::Oracle的步驟羅列如下,供大家參考。
DBD::Oracle模組既可安裝在有Oracle Database的主機上,也可以裝在沒有Oracle Database的主機上,後者需要安裝Oracle Instant Client進行遠端資料庫連線,本文只關注第二種配置,即DBD::Oracle透過Instant Client實現資料庫訪問。
第一步: 下載Oracle Instant Client
第二步:下載DBD::Oracle
第三步:配置ORACLE_HOME環境變數
第四步:編譯安裝DBD::Oracle模組
至此,DBD::Oracle配置安裝完畢,使用者可以使用此模組連線Oracle進行相應的操作,幸運的是,DBD::Oracle的現有維護者John Scoles寫了一篇極其精彩的文件,名叫 《》, 指導使用者如何使用此模組,有心的讀者千萬不要錯過!
by @ Apr 2 2009
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,主頁在
接下來把如何安裝DBD::Oracle的步驟羅列如下,供大家參考。
DBD::Oracle模組既可安裝在有Oracle Database的主機上,也可以裝在沒有Oracle Database的主機上,後者需要安裝Oracle Instant Client進行遠端資料庫連線,本文只關注第二種配置,即DBD::Oracle透過Instant Client實現資料庫訪問。
第一步: 下載Oracle Instant Client
Oracle Instant Client的主頁在 ; 秉承了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檔案已經沒用,可以刪之,也可備份供以後重用。
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的下載地址是 ,下載後隨便放到某一目錄,這裡我放到/tmp,然後解壓,如下:
shawn@shawn-laptop:/tmp$ tar zxf DBD-Oracle-1.22.tar.gz
shawn@shawn-laptop:/tmp$ cd 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
[..省略部分螢幕輸出..]
DBD::Oracle在search.cpan.org的下載地址是 ,下載後隨便放到某一目錄,這裡我放到/tmp,然後解壓,如下:
shawn@shawn-laptop:/tmp$ tar zxf DBD-Oracle-1.22.tar.gz
shawn@shawn-laptop:/tmp$ cd 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$export ORACLE_HOME=/tmp/InstantClient/instantclient_11_1
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$ echo $ORACLE_HOME
/tmp/InstantClient/instantclient_11_1
shawn@shawn-laptop:/tmp/DBD-Oracle-1.22$export ORACLE_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
[..省略部分螢幕輸出..]
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進行相應的操作,幸運的是,DBD::Oracle的現有維護者John Scoles寫了一篇極其精彩的文件,名叫 《》, 指導使用者如何使用此模組,有心的讀者千萬不要錯過!
by @ Apr 2 2009
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16168490/viewspace-584327/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- perl DBD::oracleOracle
- PLSQL連線oracle資料庫配置SQLOracle資料庫
- perl DBI、DBD-mysql、DBD-Oracle安裝MySqlOracle
- python環境連結Oracle資料庫PythonOracle資料庫
- ORACLE 配置連線遠端資料庫Oracle資料庫
- ORACLE RAC資料庫配置Dataguard環境(3)Oracle資料庫
- ORACLE RAC資料庫配置Dataguard環境(2)Oracle資料庫
- ORACLE RAC資料庫配置Dataguard環境(1)Oracle資料庫
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- Perl連線Oracle資料庫的一些操作指令碼【轉】Oracle資料庫指令碼
- 配置ORACLE 客戶端連線到資料庫Oracle客戶端資料庫
- 【Oracle】Python 連線Oracle 資料庫OraclePython資料庫
- perl連線Oracle錯誤Oracle
- Oracle連線MongoDB資料庫OracleMongoDB資料庫
- Oracle資料庫連線方式Oracle資料庫
- Java連線oracle資料庫JavaOracle資料庫
- Docker環境Oracle資料庫搭建DockerOracle資料庫
- Win環境至Linux環境Oracle資料庫遷移全過程LinuxOracle資料庫
- 基於C++11的資料庫連線池環境配置C++資料庫
- Python 連線 Oracle資料庫PythonOracle資料庫
- [Navicate]Navicate連線Oracle資料庫Oracle資料庫
- Python連線oracle資料庫PythonOracle資料庫
- oracle資料庫修改連線數Oracle資料庫
- NodeJs連線Oracle資料庫NodeJSOracle資料庫
- JDBC連線資料庫時,Oracle9i的連線引數配置JDBC資料庫Oracle
- Oracle RAC 環境下的連線管理Oracle
- java Jdbc連線oracle資料庫連線測試JavaJDBCOracle資料庫
- Tomcat4_1_30下Oracle DataSource(Oracle 資料庫連線池)配置TomcatOracle資料庫
- java連線Oracle資料庫獲取資料JavaOracle資料庫
- Oracle dos連線資料庫基本操作Oracle資料庫
- 使用instantclient連線oracle資料庫clientOracle資料庫
- .Net與Oracle的資料庫連線Oracle資料庫
- [Oracle] -- 配置Oracle環境變數Oracle變數
- 免安裝oracle軟體連線oracle資料庫Oracle資料庫
- oracle linux環境下hostonly模式配置OracleLinux模式
- 配置Oracle DBlink連線MySQL庫OracleMySql
- 資料庫幫助類資料庫
- 【配置上線】Linux克隆安裝Oracle資料庫軟體LinuxOracle資料庫