賽迪網 > IT技術 數據庫 > 精彩更新
  IT資訊搜索
 
IT產品搜索

防患于未然 給Oracle數據庫打補丁 (1)

發佈時間:2007.01.26 04:42     來源:ChinaITLab    作者:ChinaITLab

給軟體打補丁相當於給人打預防針,對系統的穩定運行至關重要。本文詳細、系統地介紹了Oracle數據庫補丁的分類、安裝、管理等問題。

廠商提供給用戶的軟體補丁的形式多為編譯後的庫函數,所以安裝軟體補丁實際上就是把這些庫函數拷貝到相應目錄,並在需要時進行聯接操作。軟體公司一般在一段時間後會把針對某一版本的所有補丁進行整理:合併融合,解決衝突,進行整體測試,並使文件拷貝和聯接操作自動執行,得到一個軟體補丁“包 ”。不同的公司使用不同的名稱,現在一般電腦用戶都熟悉的Windows Service Pack就是這樣的補丁包。Oracle公司給出的補丁包的名稱是Patch Set,安裝Patch Set後的版本稱Patch Set Release(PSR)。

Oracle公司對處於標準技術支援的產品不定期地提供PSR,例如在完成本文時,版本10.2的最新PSR是10.2.0.2;版本10.1的最新PSR是10.1.0.5;版本9.2的最新(也極可能是最終)PSR是9.2.0.8.

在安裝最新PSR後新發現的Bug,其相應補丁當然會收錄到下一個PSR中。PSR是累積型的,即下一個PSR中會包括當前PSR中所有補丁和新發現Bug的補丁。同時存在幾個PSR時,只需安裝最新版本一次就可以了。但是由於PSR的發行有一定間隔,如果這些Bug對用戶有比較大的影響,那麼Oracle公司也會向用戶公開和提供這些補丁,這些補丁被稱為個別補丁(Interim Patch,one-off patch 或 Patch Set Exception)。而對於最終補丁發行版而言,由於不再有下一個PSR,所以當發現影響系統的新Bug時,個別補丁成為惟一選擇。

此外,Oracle公司還定期發佈安全補丁,稱之為CPU(Critical Patch Updates)。安全補丁用來修復軟體的易受攻擊性(vulnerability)或通常說的安全漏洞。這類問題本來不屬於軟體錯誤,在正常使用中不會出現任何問題。但是別有用心的人可以通過運行非常精巧設計的代碼,繞過數據庫系統的安全管理機制,達到非授權存取的目的。

另外還存在一類補丁:診斷用補丁(diagnostic patch)。顧名思義,這類補丁不是用來解決問題的,而是用來尋找問題的原因的。這類補丁只在Oracle技術支援部門要求安裝時,才需要安裝。在得到需要的診斷資訊後,應立即卸載這一補丁。

利弊及時機選擇

負責管理支撐大型應用系統的數據庫的DBA會容易理解安裝軟體補丁的代價。安裝PSR需要停止數據庫服務,關閉數據庫,對於許多應用系統安排這樣的停機時間本身就是一件比較困難的事情。事實上,更為嚴重的是由於安裝PSR可能“引入”新的Bug,反而影響應用系統的正常運行。軟體補丁本來是修正Bug,怎麼會帶來新的Bug?雖然有些讓人匪夷所思,但很不幸這是現實存在的。

對於每一個PSR,其中都包括了少則幾百多則上千個嚴重Bug的修正。即便是如此,在PSR發佈後,很快就又會在安裝PSR後的數據庫中發現一些新問題。其中一部分Bug是以前就一直存在的只是以前沒有發現,而現在偶爾被發現,或者是由於PSR修正了某一錯誤從而將其“激活”或容易發現。但是確實有一些Bug是由這一PSR造成的,Oracle技術支援部門稱其為倒退(Regression)。對於每一PSR,在metalink中有兩個重要的與之有關的文檔,一個是“List of fixes added in XXXX”,是這一PSR修復的Bug的清單,是一本“功德簿”;另一個是“Known issues and alerts affecting XXXX”,是安裝PSR後發現的問題,可以稱其為“悔過簿”。由於大型軟體的複雜性,Bug幾乎是不可避免的。重要的是能夠及時提供資訊,DBA可以結合自己系統的情況做出正確的判斷。讀者不必因為知道還存在著Bug,就對Oracle數據庫產品失去信心。PSR修復的上千個Bug中絕大多數是在一些很少見的環境中,或者是若干個組件的複雜組合使用的情形中發生的。

如果系統在運行中出現過某種問題,由Oracle技術支援部門或第三方的專家確認原因是PSR中的某一Bug,這樣就必須儘早安裝;如果系統一直運行正常,並且在PSR已發現的問題中涉及的組件或功能(如Logical Standby, JVM,RAC等)在系統中並不使用,此時可以選擇安裝也可以選擇不安裝。

另一個需要考慮的因素是安裝補丁的時機。上述這些考慮的一個重要前提是系統已經投入運行,擔心“倒退”的Bug影響系統。如果系統還處在開發和測試階段,不需要有任何猶豫,安裝最新的PSR,並在此基礎上測試應用系統是否工作正常。如果發現異常,要及時請Oracle技術支援部門確認是否新Bug,如果是請其提供個別補丁。目的就是在一個盡可能完善穩定的數據庫平臺上測試應用系統。我們可以把這種安裝補丁的策略概括為“補丁補新不補舊”。

以上都是針對PSR的安裝,對於個別補丁,由於補丁修復的Bug單一,容易判斷是否需要安裝。需要注意的是,如果在當前PSR之上安裝了若干個個別補丁,那麼在下一個PSR發佈後,在安裝下一個PSR之前,需要卸載所有個別補丁。為便於管理,現在Oracle技術支援部門要求必須使用工具opatch安裝管理個別工具,而儘量避免手動拷貝文件等操作。

最後是安全補丁安裝的判斷。雖然安全漏洞這個詞看上去讓人覺得非常嚴重,但是還要冷靜綜合分析這些漏洞在系統中的危害程度。事實上,不安裝安全補丁的危險性可能遠遠小于始終不渝地使用scott/tiger這樣人人都知道的用戶名和密碼的“標準缺省”做法。

1 2 3 4 下一頁>>


[ 發表評論 ] 字體[  ] [ 列印 ] [ 進入博客 ] [ 進入論壇 ]  [ 推薦給朋友 ]
  相關文章
· Oracle 10g自動工作負載資訊庫剖析 (01-25) · 甲骨文新推Oracle Linux管理套裝軟體 (01-25)
· Oracle的CRM武器--讓數據圍著銀行轉 (01-24) · SQL Server和Oracle數據鎖定比較 (01-24)
· Oracle基於Client/Server的性能調整 (01-24) · Linux平台下監控Oracle數據庫性能 (01-24)
· Oracle中PL/SQL編程對系統性能的影響 (01-24) · 專家調優秘密之改善Oracle數據庫性能 (01-24)
· 在數據字典中直接修改Oracle表列名 (01-23) · 用Windows腳本宿主自動化Oracle工具 (01-23)
  客戶需求反饋表
* 姓  名:
更多資料  了解方案  認識廠商
* 單位名稱:
* 聯繫電話:
* 電子郵件:
  賽迪推薦  
  手機·資費 ·新品·導購·評測·手機資費·寬帶
手機搜索  諾基亞 N73 MOTO Z6
  IT產品 ·筆記本·臺式機·伺服器·列印·投影
IT產品搜索 
  IT技術 ·開發·網管·安全·數據庫·作業系統
  博客·論壇 ·曾劍秋·項立剛·Java學習·網管