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