【51CTO獨(dú)家翻譯】作為一個(gè)DBA,你肯定有大量的軟件、腳本和應(yīng)用程序來(lái)幫助你完成日常的操作,其中一些可能是你自己編寫的,另外一些可能是提供了大量的對(duì)你幫助非常大的特性的商業(yè)解決方案。
然而,也有由社區(qū)創(chuàng)建的工具符合要求,幸運(yùn)的是,圍繞數(shù)據(jù)庫(kù)(特別是Oracle)的開(kāi)源社區(qū),在過(guò)去幾年中確實(shí)爆發(fā)性增長(zhǎng),在OTN上Oracle有一個(gè)頁(yè)面專門詳細(xì)地介紹了他們涉足的所有項(xiàng)目,和許多社區(qū)項(xiàng)目,而且,在SourceForge上搜索時(shí)返回52頁(yè)結(jié)果,明確提到Oracle的就有超過(guò)500個(gè)項(xiàng)目。
有太多的需要篩選了,因此我們將用兩篇文章給大家呈現(xiàn)一些比較大的項(xiàng)目。
庫(kù)和語(yǔ)言接口
如果你正從事軟件開(kāi)發(fā),并處于選擇語(yǔ)言和開(kāi)發(fā)平臺(tái)的階段,首先你需要知道的事情是支持什么類型的數(shù)據(jù)庫(kù)接口,幸運(yùn)的是,有太多的選擇。
DBD::Oracle(http://search.cpan.org/dist/DBD-Oracle/)
如果你正在編寫perl腳本做監(jiān)控程序或使用mod_perl做web開(kāi)發(fā),沒(méi)有比dbd::Oracle,用于Oracle的DBI驅(qū)動(dòng),更合適的了,他提供了所有重要的特性并讓你擺脫OCI的復(fù)雜性,連接、解析、執(zhí)行和提取你的核心內(nèi)容。
mod_perl(http://perl.apache.org/)
當(dāng)你在perl上工作時(shí),你會(huì)明確想要取得這個(gè)Apache模塊,比將你的代碼作為一個(gè)CGI運(yùn)行更好,mod_perl使perl解析程序進(jìn)入Apache內(nèi)存空間,加速執(zhí)行,緩存代碼和提供持久性。
Apache::OWA(http://sourceforge.net/projects/owa/)
為pl/sql開(kāi)發(fā)者提供的與mod_perl并行成為偉大的Apache模塊,難怪Apache進(jìn)入熔合中間層?這就是一個(gè)暗示。
cx_Oracle(http://www.python.net/crew/atuining/cx_Oracle/)
如果你更喜歡用python編程,你在這里也可以找到合適的。
如果你計(jì)劃用c++開(kāi)發(fā)一個(gè)應(yīng)用程序,這里有許多打包好的庫(kù)給你提供OCI功能,從下面為你選擇一個(gè)。
tinyOcci(http://sourceforge.net/projects/tinyocci)
ORA++ OCI庫(kù) (http://mywebpages.comcast.net/jimcainadmin/orapp/)
OCIPlus (http://ociplus.sourceforge.net/)
oci-wrappers (http://sourceforge.net/projects/oci-wrappers)
最近幾年Oracle對(duì)php越來(lái)越重視,甚至在OTN上還專門開(kāi)辟了一個(gè)php開(kāi)發(fā)中心:http://www.oracle.com/technology/tech/php/index.html,因此在php中對(duì)Oracle提供了大量的支持。
OCIPHPSess(http://sourceforge.net/projects/ociphpsess/)
這個(gè)庫(kù)幫助你為Oracle建立可縮放的php代碼,通過(guò)提供給你共享會(huì)話功能實(shí)現(xiàn)。
跟蹤+分析工具
etprof(http://sourceforge.net/projects/etprof)
10046是Oracle的擴(kuò)展跟蹤程序,對(duì)于診斷和跟蹤活動(dòng)會(huì)話精確定位問(wèn)題非常有用,etprof可以用于掃描、描繪和格式化這些輸出文件以讓可讀性更佳。
Orate(http://orate.gnuadvantage.com/)
這個(gè)庫(kù)提供了添加日志消息到你的pl/sql代碼相容的方法以便于后面進(jìn)行代碼跟蹤,與你在c代碼中添加printf非常類似,在你代碼中合適的位置可以添加“進(jìn)入X過(guò)程”的消息,以便于后面對(duì)問(wèn)題進(jìn)行調(diào)試。
Hotsos Oracle Instrumentation Library(http://sourceforge.net/projects/hotsos-ilo/)
Hotsos常常用于跟蹤數(shù)據(jù)定位并隔離數(shù)據(jù)庫(kù)中的瓶頸,使用它們附帶的開(kāi)創(chuàng)性的方法,安裝這個(gè)庫(kù)到目標(biāo)數(shù)據(jù)庫(kù)以定義,測(cè)量和利用SQL跟蹤數(shù)據(jù)。
開(kāi)發(fā)工具
GTKO(http://gsqlr2.sourceforge.net/)
有相當(dāng)多的工具用于開(kāi)發(fā),但是我只想說(shuō)一下值得看的工具,這個(gè)工具包括執(zhí)行計(jì)劃,語(yǔ)法高亮顯示,語(yǔ)句跟蹤以及方案瀏覽。它基于GTK,因此在大多數(shù)Linux發(fā)行版上都能使用,而且它的更新也比較頻繁,因此它的開(kāi)發(fā)還是處于活動(dòng)狀態(tài)的。
SchemaDiff(http://sourceforge.net/projects/schemadiff/)
作為一個(gè)顧問(wèn),我曾經(jīng)訪問(wèn)過(guò)不少網(wǎng)站,并復(fù)審了許多應(yīng)用曾程序,以及基礎(chǔ)的數(shù)據(jù)庫(kù)方案,經(jīng)常有用重復(fù)的方案進(jìn)行不同的登陸,沒(méi)有人能確定最開(kāi)始創(chuàng)建的是做什么用的,你不得不小心,在一個(gè)生產(chǎn)系統(tǒng)上不要輕易中斷任何正在運(yùn)作的服務(wù),這個(gè)SchemaDiff工具可以放在適當(dāng)?shù)奈恢?,它查看兩個(gè)Oracle數(shù)據(jù)庫(kù)方案并告訴你有哪些列、數(shù)據(jù)類型是不同的,的確是一款便利的工具,因此最近沒(méi)有進(jìn)行更新,因此不能很好地支持10g,對(duì)于需要購(gòu)買的人就要小心點(diǎn),你需要進(jìn)行復(fù)審,測(cè)試并進(jìn)行適當(dāng)修改。
圍繞數(shù)據(jù)庫(kù)(特別是Oracle)的開(kāi)源社區(qū),在過(guò)去幾年中確實(shí)爆發(fā)性增長(zhǎng),本文將涉及到在Oracle管理,安全,基準(zhǔn)測(cè)試和監(jiān)視開(kāi)源工具的討論。
管理工具
JoraStat(http://sourceforge.net/projects/jorastat/)
這個(gè)工具可以幫助你預(yù)測(cè)數(shù)據(jù)庫(kù)需要的改變,如果你在你的數(shù)據(jù)庫(kù)中繪制了趨勢(shì)圖,你就可以搶先一步對(duì)其做好規(guī)劃,使用java作為前端,使用存儲(chǔ)過(guò)程將其集成到數(shù)據(jù)庫(kù)中,在sourceforge上的項(xiàng)目頁(yè)面還是活動(dòng)的,因此你可以十分正式地查看其修改和更新內(nèi)容,它仍然處于beta階段。
EasyStandby for Oracle(http://sourceforge.net/projects/shana)
上個(gè)月我在Database Journal上寫了一篇關(guān)于在Oracle標(biāo)準(zhǔn)版上手工創(chuàng)建一個(gè)standby數(shù)據(jù)庫(kù)的文章,正常情況下需要Oracle企業(yè)版,它包括了DataGuard,它才是完整的Oracle standby解決方案,但是價(jià)格因素也需要考慮,企業(yè)版每處理器的價(jià)格是標(biāo)準(zhǔn)版的10倍,盡管不能從Oracle獲得支持,足夠的測(cè)試,但這個(gè)工具被證明對(duì)你的織是有用的和有幫助的,檢查一下代碼,在你的沙盒開(kāi)發(fā)環(huán)境中測(cè)試幾個(gè)月,如果它符合你的需求,那么你就走運(yùn)了。
Jdul/dude(http://sourceforge.net/projects/jdul/)
任何曾經(jīng)加載過(guò)數(shù)據(jù)到Oracle數(shù)據(jù)庫(kù)的人都可能需要卸載數(shù)據(jù),或轉(zhuǎn)儲(chǔ)到一個(gè)流文件,這個(gè)工具將一定符合你的需要,使你的工作更簡(jiǎn)單,盡管Oracle沒(méi)有提供專門為sql*loader提供一款工具進(jìn)行數(shù)據(jù)裝入,但它也不是太困難,Tom Kyte在Ask Tom網(wǎng)站上提供了大量的解決方案(http://asktom.oracle.com/tkyte/flat/index.html)。
Oracle Database Dashboard(http://odd.deskweb.nl/)
這個(gè)工具是另外一款監(jiān)視系統(tǒng),但它是專門為Oracle準(zhǔn)備的,你可以監(jiān)視查詢和會(huì)話,檢查系統(tǒng)參數(shù)等,它相當(dāng)簡(jiǎn)單,作為一款開(kāi)源工具,你可以自定義你的核心內(nèi)容。
Noguska Oracle到 MySQL數(shù)據(jù)轉(zhuǎn)換器(http://sourceforge.net/projects/nog-omdc/)
這是一款讓你驚奇的工具,人們經(jīng)常在數(shù)據(jù)庫(kù)之間進(jìn)行數(shù)據(jù)移動(dòng),從MySQL到Oracle或從Oracle到MySQL,這個(gè)工具幫助你 完成這些轉(zhuǎn)移任務(wù),在MySQL中創(chuàng)建一個(gè)對(duì)應(yīng)的表,列和數(shù)據(jù)類型與Oracle表一致,然后,使用php腳本輸入數(shù)據(jù)庫(kù)認(rèn)證息。
Easy Data Extract(http://sourceforge.net/projects/easydataextract/)
這個(gè)工具我將其視為實(shí)驗(yàn)性質(zhì)的范疇,一點(diǎn)背景:Oracle數(shù)據(jù)文件對(duì)于操作系統(tǒng)是規(guī)則的,例如,如果你用十六進(jìn)制編輯器打開(kāi)它們,就會(huì)看到數(shù)據(jù)位,一些與你表類似的數(shù)據(jù)分散在文件各處,不過(guò)這些文件的格式是有專利的,并被精密地保護(hù),如頭格式、塊等都是沒(méi)有公開(kāi)的,但是對(duì)于一個(gè)經(jīng)驗(yàn)豐富的反向工程師來(lái)說(shuō)能弄清楚它的細(xì)節(jié),正是因?yàn)橐陨显?,我要告誡在生產(chǎn)環(huán)境中使用這個(gè)工具的人要小心謹(jǐn)慎,除了Oracle數(shù)據(jù)文件格式在不同版本直接經(jīng)常發(fā)生變化之外,如果不是小的發(fā)布,所有原理都不會(huì)支持,積極的一面是用于提取數(shù)據(jù),因此你不要寫這些數(shù)據(jù)文件否則會(huì)更危險(xiǎn),但是盡管如此你提取的數(shù)據(jù)仍然在格式上有變化。
LobShooter - (http://oraload.sourceforge.net/)
在Oracle中,如果你擁有大對(duì)象,如庫(kù)文件、圖像或非常大的文本,并且你想將它們存儲(chǔ)在數(shù)據(jù)庫(kù)中,你使用LOB或大對(duì)象數(shù)據(jù)類型,BLOB是二進(jìn)制數(shù)據(jù),CLOB是字符數(shù)據(jù),它們是有差異的,因此你可以搜索文本,而二進(jìn)制數(shù)據(jù)不能很容易地搜索,這個(gè)工具填補(bǔ)了這個(gè)空白,使得你更容易將數(shù)據(jù)移入或移出Oracle數(shù)據(jù)庫(kù)。
Oracle-Admin - (http://sourceforge.net/projects/oracleadmin/)
如果你曾經(jīng)想退出命令行,使用一個(gè)基于web的工具來(lái)管理你的Oracle數(shù)據(jù)庫(kù),OEM可能你會(huì)考慮的,它來(lái)自O(shè)racle,支持得很好,而且有你想要的所有特性,但是它很笨重,消耗了大量的系統(tǒng)資源,Oracle-Admin是一款基于社區(qū)開(kāi)發(fā)的工具,也提供了web接口,你可以向它添加,編寫一些代碼并進(jìn)行提交,或許將來(lái)它就變成項(xiàng)目的一部分了。
安全工具
Oracle密碼倉(cāng)庫(kù) (http://sourceforge.net/projects/opr)
這個(gè)工具允許你將你的密碼保存在某個(gè)位置而不是在你的備份中和其他管理腳本中,可以防止你在命令行上傳遞它們,而且保存在一個(gè)地方有助于你需要改變它們時(shí)可以更容易。
Oracle密碼檢查器(http://www.red-database-security.com/software/checkpwd.html)
密碼破譯不是黑客的專利,它們應(yīng)該成為每個(gè)管理員工具庫(kù)的重要一員,這個(gè)工具可以運(yùn)行在許多平臺(tái)上。
Oracle審核工具 (http://www.cqure.net/wp/?page_id=2)
它是一款基于java的工具,能在linux和windows客戶端上工作,提供了密碼猜測(cè)器,查詢工具,監(jiān)聽(tīng)器檢查等功能。
Pete Finnigan的網(wǎng)站(http://www.petefinnigan.com/tools.htm)
想要連接更多關(guān)于Oracle安全的信息,我強(qiáng)烈建議你去pete的網(wǎng)站看看,這兒包括更多的工具如密碼破譯器,文件系統(tǒng)和操作系統(tǒng)掃描器,監(jiān)聽(tīng)器配置測(cè)試器等,同時(shí),這里還提供了常常更新的商業(yè)解決方案。
基準(zhǔn)測(cè)試
Hammerora (http://hammerora.sourceforge.net/index.html)
大多數(shù)Oracle數(shù)據(jù)庫(kù)工具的名字都很無(wú)趣、不令人激動(dòng),但是這款工具的名字絕對(duì)讓你眼前一亮,如果你想在你的數(shù)據(jù)庫(kù)上做載入測(cè)試,這個(gè)工具提供了大量的選項(xiàng),TPC-C和TPC-H測(cè)試,多用戶測(cè)試,web載入測(cè)試等。
Simora (http://www.scaleabilities.co.uk/content/view/27/60/)
Oaktable網(wǎng)絡(luò)的創(chuàng)立成員之一James Morle給我們帶來(lái)了一款工具,從跟蹤數(shù)據(jù)為你的數(shù)據(jù)庫(kù)應(yīng)用程序基準(zhǔn)測(cè)試創(chuàng)建模擬。
監(jiān)視工具
incanto (http://incanto.sourceforge.net/)
Apache ANT是一個(gè)基于java的建立工具,它替換了如Make以及它的子孫,incanto為訪問(wèn)Oracle工具如sqlplus和導(dǎo)入/導(dǎo)出工具提供ANT任務(wù)。
Ad Oracle Manager – (http://sourceforge.net/projects/oraman/)
AD是與活動(dòng)目錄齊名的另外一個(gè)工具,活動(dòng)目錄是微軟對(duì)LDAP或輕量級(jí)目錄訪問(wèn)協(xié)議無(wú)恥的重命名,這個(gè)工具允許你使用活動(dòng)目錄管理用你數(shù)據(jù)庫(kù)中的戶,表,視圖。
小結(jié)
希望這次Oracle有關(guān)的開(kāi)源應(yīng)用程序之旅能讓你食欲大開(kāi),在sourceforge上有讓人難以置信數(shù)量的工具和活動(dòng)的項(xiàng)目來(lái)對(duì)Oracle提供各種支持,我鼓勵(lì)每個(gè)人都去sourceforge.net上搜索你自己感興趣的工具,同時(shí)也請(qǐng)關(guān)注Oracle-L郵件列表,這里有大量的代碼片段,以及SQL解決方案,盡管它們還不是一個(gè)項(xiàng)目,基于社區(qū)和社區(qū)驅(qū)動(dòng)的技術(shù)的確是開(kāi)源的精髓。
更多信息請(qǐng)查看IT技術(shù)專欄