給軟件打補(bǔ)丁相當(dāng)于給人打預(yù)防針,對(duì)系統(tǒng)的穩(wěn)定運(yùn)行至關(guān)重要。本文詳細(xì)、系統(tǒng)地介紹了Oracle數(shù)據(jù)庫(kù)補(bǔ)丁的分類(lèi)、安裝、管理等問(wèn)題。
創(chuàng)新互聯(lián)公司專(zhuān)注于高陽(yáng)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城開(kāi)發(fā)。高陽(yáng)網(wǎng)站建設(shè)公司,為高陽(yáng)等地區(qū)提供建站服務(wù)。全流程按需策劃設(shè)計(jì),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
廠商提供給用戶的軟件補(bǔ)丁的形式多為編譯后的庫(kù)函數(shù),所以安裝軟件補(bǔ)丁實(shí)際上就是把這些庫(kù)函數(shù)拷貝到相應(yīng)目錄,并在需要時(shí)進(jìn)行聯(lián)接操作。軟件公司一般在一段時(shí)間后會(huì)把針對(duì)某一版本的所有補(bǔ)丁進(jìn)行整理:合并融合,解決沖突,進(jìn)行整體測(cè)試,并使文件拷貝和聯(lián)接操作自動(dòng)執(zhí)行,得到一個(gè)軟件補(bǔ)丁“包”。不同的公司使用不同的名稱(chēng),現(xiàn)在一般計(jì)算機(jī)用戶都熟悉的Windows Service Pack就是這樣的補(bǔ)丁包。Oracle公司給出的補(bǔ)丁包的名稱(chēng)是Patch Set,安裝Patch Set后的版本稱(chēng)Patch Set Release(PSR)。
Oracle公司對(duì)處于標(biāo)準(zhǔn)技術(shù)支持的產(chǎn)品不定期地提供PSR,例如在完成本文時(shí),版本10.2的最新PSR是10.2.0.2;版本10.1的最新PSR是10.1.0.5;版本9.2的最新(也極可能是最終)PSR是9.2.0.8。
在安裝最新PSR后新發(fā)現(xiàn)的Bug,其相應(yīng)補(bǔ)丁當(dāng)然會(huì)收錄到下一個(gè)PSR中。PSR是累積型的,即下一個(gè)PSR中會(huì)包括當(dāng)前PSR中所有補(bǔ)丁和新發(fā)現(xiàn)Bug的補(bǔ)丁。同時(shí)存在幾個(gè)PSR時(shí),只需安裝最新版本一次就可以了。但是由于PSR的發(fā)行有一定間隔,如果這些Bug對(duì)用戶有比較大的影響,那么 Oracle公司也會(huì)向用戶公開(kāi)和提供這些補(bǔ)丁,這些補(bǔ)丁被稱(chēng)為個(gè)別補(bǔ)?。↖nterim Patch,one-off patch 或 Patch Set Exception)。而對(duì)于最終補(bǔ)丁發(fā)行版而言,由于不再有下一個(gè)PSR,所以當(dāng)發(fā)現(xiàn)影響系統(tǒng)的新Bug時(shí),個(gè)別補(bǔ)丁成為惟一選擇。
此外,Oracle公司還定期發(fā)布安全補(bǔ)丁,稱(chēng)之為CPU(Critical Patch Updates)。安全補(bǔ)丁用來(lái)修復(fù)軟件的易受攻擊性(vulnerability)或通常說(shuō)的安全漏洞。這類(lèi)問(wèn)題本來(lái)不屬于軟件錯(cuò)誤,在正常使用中不會(huì)出現(xiàn)任何問(wèn)題。但是別有用心的人可以通過(guò)運(yùn)行非常精巧設(shè)計(jì)的代碼,繞過(guò)數(shù)據(jù)庫(kù)系統(tǒng)的安全管理機(jī)制,達(dá)到非授權(quán)存取的目的。
另外還存在一類(lèi)補(bǔ)?。涸\斷用補(bǔ)丁(diagnostic patch)。顧名思義,這類(lèi)補(bǔ)丁不是用來(lái)解決問(wèn)題的,而是用來(lái)尋找問(wèn)題的原因的。這類(lèi)補(bǔ)丁只在Oracle技術(shù)支持部門(mén)要求安裝時(shí),才需要安裝。在得到需要的診斷信息后,應(yīng)立即卸載這一補(bǔ)丁。
利弊及時(shí)機(jī)選擇
負(fù)責(zé)管理支撐大型應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)的DBA會(huì)容易理解安裝軟件補(bǔ)丁的代價(jià)。安裝PSR需要停止數(shù)據(jù)庫(kù)服務(wù),關(guān)閉數(shù)據(jù)庫(kù),對(duì)于許多應(yīng)用系統(tǒng)安排這樣的停機(jī)時(shí)間本身就是一件比較困難的事情。事實(shí)上,更為嚴(yán)重的是由于安裝PSR可能“引入”新的Bug,反而影響應(yīng)用系統(tǒng)的正常運(yùn)行。軟件補(bǔ)丁本來(lái)是修正 Bug,怎么會(huì)帶來(lái)新的Bug?雖然有些讓人匪夷所思,但很不幸這是現(xiàn)實(shí)存在的。
對(duì)于每一個(gè)PSR,其中都包括了少則幾百多則上千個(gè)嚴(yán)重Bug的修正。即便是如此,在PSR發(fā)布后,很快就又會(huì)在安裝PSR后的數(shù)據(jù)庫(kù)中發(fā)現(xiàn)一些新問(wèn)題。其中一部分Bug是以前就一直存在的只是以前沒(méi)有發(fā)現(xiàn),而現(xiàn)在偶爾被發(fā)現(xiàn),或者是由于PSR修正了某一錯(cuò)誤從而將其“激活”或容易發(fā)現(xiàn)。但是確實(shí)有一些Bug是由這一PSR造成的,Oracle技術(shù)支持部門(mén)稱(chēng)其為倒退(Regression)。對(duì)于每一PSR,在metalink中有兩個(gè)重要的與之有關(guān)的文檔,一個(gè)是“List of fixes added in XXXX”,是這一PSR修復(fù)的Bug的清單,是一本“修復(fù)列表”;另一個(gè)是“Known issues and alerts affecting XXXX”,是安裝PSR后發(fā)現(xiàn)的問(wèn)題,可以稱(chēng)其為“悔過(guò)列表”。由于大型軟件的復(fù)雜性,Bug幾乎是不可避免的。重要的是能夠及時(shí)提供信息,DBA可以結(jié)合自己系統(tǒng)的情況做出正確的判斷。讀者不必因?yàn)橹肋€存在著B(niǎo)ug,就對(duì)Oracle數(shù)據(jù)庫(kù)產(chǎn)品失去信心。PSR修復(fù)的上千個(gè)Bug中絕大多數(shù)是在一些很少見(jiàn)的環(huán)境中,或者是若干個(gè)組件的復(fù)雜組合使用的情形中發(fā)生的。
如果系統(tǒng)在運(yùn)行中出現(xiàn)過(guò)某種問(wèn)題,由Oracle技術(shù)支持部門(mén)或第三方的專(zhuān)家確認(rèn)原因是PSR中的某一Bug,這樣就必須盡早安裝;如果系統(tǒng)一直運(yùn)行正常,并且在PSR已發(fā)現(xiàn)的問(wèn)題中涉及的組件或功能(如Logical Standby, JVM,RAC等)在系統(tǒng)中并不使用,此時(shí)可以選擇安裝也可以選擇不安裝。
另一個(gè)需要考慮的因素是安裝補(bǔ)丁的時(shí)機(jī)。上述這些考慮的一個(gè)重要前提是系統(tǒng)已經(jīng)投入運(yùn)行,擔(dān)心“倒退”的Bug影響系統(tǒng)。如果系統(tǒng)還處在開(kāi)發(fā)和測(cè)試階段,不需要有任何猶豫,安裝最新的PSR,并在此基礎(chǔ)上測(cè)試應(yīng)用系統(tǒng)是否工作正常。如果發(fā)現(xiàn)異常,要及時(shí)請(qǐng)Oracle技術(shù)支持部門(mén)確認(rèn)是否新Bug,如果是請(qǐng)其提供個(gè)別補(bǔ)丁。目的就是在一個(gè)盡可能完善穩(wěn)定的數(shù)據(jù)庫(kù)平臺(tái)上測(cè)試應(yīng)用系統(tǒng)。我們可以把這種安裝補(bǔ)丁的策略概括為“補(bǔ)丁補(bǔ)新不補(bǔ)舊”。
以上都是針對(duì)PSR的安裝,對(duì)于個(gè)別補(bǔ)丁,由于補(bǔ)丁修復(fù)的Bug單一,容易判斷是否需要安裝。需要注意的是,如果在當(dāng)前PSR之上安裝了若干個(gè)個(gè)別補(bǔ)丁,那么在下一個(gè)PSR發(fā)布后,在安裝下一個(gè)PSR之前,需要卸載所有個(gè)別補(bǔ)丁。為便于管理,現(xiàn)在Oracle技術(shù)支持部門(mén)要求必須使用工具 opatch安裝管理個(gè)別工具,而盡量避免手動(dòng)拷貝文件等操作。
最后是安全補(bǔ)丁安裝的判斷。雖然安全漏洞這個(gè)詞看上去讓人覺(jué)得非常嚴(yán)重,但是還要冷靜綜合分析這些漏洞在系統(tǒng)中的危害程度。事實(shí)上,不安裝安全補(bǔ)丁的危險(xiǎn)性可能遠(yuǎn)遠(yuǎn)小于始終不渝地使用scott/tiger這樣人人都知道的用戶名和口令的“標(biāo)準(zhǔn)缺省”做法。
安裝PSR
使用oui工具安裝PSR時(shí)只需要用鼠標(biāo)做幾個(gè)選擇就可以進(jìn)入自動(dòng)執(zhí)行的階段,操作過(guò)程本身非常簡(jiǎn)單。但是如果要求必須一次安裝成功;要求必須在凌晨2點(diǎn)到4點(diǎn)這個(gè)有限的停機(jī)時(shí)間段完成操作;要求安裝過(guò)程不出差錯(cuò),以后出現(xiàn)問(wèn)題時(shí)能夠完全排除此次操作失誤的可能性,那么就需要在啟動(dòng)oui之前做一些準(zhǔn)備工作。
1. 收集信息
有關(guān)PSR的信息中,一個(gè)最重要的文檔就是軟件補(bǔ)丁說(shuō)明,這個(gè)文件相當(dāng)于技術(shù)手冊(cè)中的安裝指南和發(fā)行說(shuō)明。文件本身包含在下載的軟件補(bǔ)丁文件之中,文件名是patchnote.htm或README.html。需要注意的一個(gè)問(wèn)題是在軟件補(bǔ)丁文件之中找到的這一Patch Set Notes可能不是最新版,可以根據(jù)文件內(nèi)的提示信息在metalink中檢索最新版。
另外兩個(gè)重要文件就是前面已經(jīng)提及的“修復(fù)列表”和“悔過(guò)列表”,相對(duì)于“修復(fù)列表”更應(yīng)該仔細(xì)閱讀“悔過(guò)列表”中的每一項(xiàng)內(nèi)容。另外,在Patch Set Notes的已知問(wèn)題(Known Issues)一節(jié)內(nèi)列出了安裝PSR后出現(xiàn)的一些問(wèn)題。
除去這三個(gè)主要文件外,還應(yīng)在metalink中檢索,尋找是否還有其他涉及這一PSR的技術(shù)文章,尋找其他用戶在安裝這一PSR時(shí)或安裝后遇到問(wèn)題時(shí)所發(fā)的救助的帖子,前車(chē)之鑒更應(yīng)重視。
2. 做出判斷
在認(rèn)真閱讀收集到的文章之后,根據(jù)自己系統(tǒng)的實(shí)際情況,做出是立即安裝PSR,或是等待下一PSR的決定。如果是暫緩安裝,則要記錄原因,以便以后跟蹤Bug的修復(fù)進(jìn)程。
3. 制訂實(shí)施計(jì)劃
在決定安裝PSR后,需要制訂一個(gè)實(shí)施計(jì)劃。在計(jì)劃中不僅要包括正常的操作步驟,更要考慮在出現(xiàn)意外時(shí)的應(yīng)急處理(如果安裝PSR失敗,則在正常應(yīng)用開(kāi)始時(shí)間之前,要恢復(fù)系統(tǒng)到安裝之前的狀態(tài))。如果可能,在對(duì)正式系統(tǒng)開(kāi)始實(shí)施之前,應(yīng)在測(cè)試系統(tǒng)中進(jìn)行演練和應(yīng)用處理的測(cè)試,保證在安裝PSR后不會(huì)影響應(yīng)用系統(tǒng)的運(yùn)行。
安裝PSR的計(jì)劃大致有以下幾個(gè)部分:停止數(shù)據(jù)庫(kù)服務(wù)關(guān)閉數(shù)據(jù)庫(kù);備份DBMS軟件和數(shù)據(jù)庫(kù)以備恢復(fù)之用;安裝PSR軟件;更新數(shù)據(jù)庫(kù)數(shù)據(jù)字典升級(jí)PSR版本;正常啟動(dòng)數(shù)據(jù)庫(kù)開(kāi)始數(shù)據(jù)庫(kù)服務(wù)。
看似簡(jiǎn)單的關(guān)閉數(shù)據(jù)庫(kù)的操作,在系統(tǒng)構(gòu)成復(fù)雜時(shí)也會(huì)變得不容易。另外,如果夜間作業(yè)時(shí)間不允許在完成數(shù)據(jù)庫(kù)完全備份之后再安裝PSR,則安裝PSR的日期應(yīng)該選擇在例行的數(shù)據(jù)庫(kù)完全備份的下一個(gè)晚上,只備份重做日志。
在安裝PSR之前備份DBMS軟件的目的是,由于安裝PSR會(huì)對(duì)許多程序和庫(kù)函數(shù)進(jìn)行更新,如果安裝PSR中途失?。m然可能性非常小),有可能造成DBMS軟件出現(xiàn)不一致。另外一種可能的情形是,在安裝PSR,更新數(shù)據(jù)字典后,測(cè)試應(yīng)用系統(tǒng)時(shí),出現(xiàn)了某種異常,原因不明,最終決定放棄PSR。如果操作之前沒(méi)有備份,則此時(shí)只有重新安裝軟件一種選擇(PSR不同于完整軟件安裝,在oui中無(wú)法單獨(dú)卸載PSR軟件)。
對(duì)文件、目錄和文件系統(tǒng)的備份,最簡(jiǎn)單的方式可以使用cp、tar、dump等命令完成。如果希望縮短文件拷貝時(shí)間,可以考慮分區(qū)備份的方法。分區(qū)備份常用的命令是dd。但是,分區(qū)拷貝比文件拷貝速度快的前提是良好的分區(qū)設(shè)計(jì):Oracle軟件單獨(dú)占一個(gè)大小適中(如4GB)的分區(qū),這樣扇區(qū)拷貝才會(huì)體現(xiàn)優(yōu)勢(shì),這也就是為什么在安裝軟件時(shí),Oracle建議單獨(dú)使用一個(gè)分區(qū)安裝軟件的原因之一。
在制定實(shí)施計(jì)劃時(shí),應(yīng)認(rèn)真閱讀Patch Set Notes中有關(guān)操作前準(zhǔn)備工作一節(jié)。在這節(jié)內(nèi)會(huì)介紹對(duì)于一些特殊系統(tǒng)構(gòu)成,如果你的系統(tǒng)屬于文檔中提到的構(gòu)成,一定要首先閱讀文內(nèi)提示的相關(guān)技術(shù)文章,找到正確的安裝步驟。
使用oui, PSR軟件安裝完成后,一定不要忘記更新數(shù)據(jù)字典這一步驟。如果在這一ORACLE_HOME下生成了多個(gè)數(shù)據(jù)庫(kù),則每個(gè)數(shù)據(jù)庫(kù)都必須更新數(shù)據(jù)字典。
. 實(shí)施操作
制訂一個(gè)詳細(xì)的計(jì)劃后,實(shí)施操作就可以“照本宣科”,是一個(gè)簡(jiǎn)單的體力勞動(dòng)。要認(rèn)識(shí)到“忙中出錯(cuò)”的概率遠(yuǎn)比“急中生智”大得多,操作時(shí)盡量減少失誤的可能性。例如,需要執(zhí)行的復(fù)雜命令,盡可能從一個(gè)文件拷貝到終端執(zhí)行,而不要現(xiàn)場(chǎng)輸入。另外,在實(shí)施過(guò)程中,要記錄各個(gè)階段實(shí)際的執(zhí)行時(shí)間,以供以后制訂類(lèi)似計(jì)劃時(shí)參考。
5. 檢查操作結(jié)果并記錄備案
執(zhí)行一個(gè)操作,操作是否成功,一定要進(jìn)行檢查,不能簡(jiǎn)單認(rèn)為沒(méi)有出錯(cuò)信息就是成功。要知道驗(yàn)證的方法。除去極個(gè)別極費(fèi)時(shí)間的驗(yàn)證(分區(qū)備份的內(nèi)容是否可以成功恢復(fù)系統(tǒng),必須恢復(fù)分區(qū),啟動(dòng)數(shù)據(jù)庫(kù),測(cè)試應(yīng)用系統(tǒng)后才能確認(rèn)),其余操作都應(yīng)進(jìn)行驗(yàn)證。所有屏幕輸出信息和日志文件都應(yīng)保留,作為安裝報(bào)告的附件提交給上級(jí)或客戶。
在屏幕輸出或日志文件中出現(xiàn)異常/錯(cuò)誤信息時(shí),應(yīng)即時(shí)分析,決定馬上采取的措施。出現(xiàn)嚴(yán)重錯(cuò)誤時(shí),可能需要重新執(zhí)行某一SQL程序,或者重新安裝PSR。所以在制訂實(shí)施計(jì)劃時(shí)應(yīng)在時(shí)間上留出異常情況處理的時(shí)間。
下面給出一個(gè)在Linux平臺(tái)上安裝10.1的PSR的實(shí)例,給從未安裝PSR的讀者有一個(gè)感性認(rèn)識(shí)。
操作系統(tǒng)是RHEL AS4.0 Update3,Oracle的當(dāng)前版本是10.1.2。在metalink中檢索,找到10.1版的最新PSR10.1.0.5。下載壓縮文件。在壓縮文件中找到Patch Set Notes,該文檔的完成日期是2006年1月。而按照文檔內(nèi)的提示在metalink中檢索得到的此文檔的最新版本完成日期是2006年4月。使用文件比較工具進(jìn)行比較,兩個(gè)版本沒(méi)有實(shí)質(zhì)性差別,只有語(yǔ)句措詞的修改,但是養(yǎng)成總是檢索最新文檔的習(xí)慣有益無(wú)害。
根據(jù)Patch Set Notes中的說(shuō)明,有一些特殊系統(tǒng)構(gòu)成需要額外的步驟,本例中由于全部沒(méi)有涉及到,所以可以按標(biāo)準(zhǔn)步驟執(zhí)行。
另外,檢查“Known issues and alerts affecting 10.1.0.5”文檔后,發(fā)現(xiàn)10.1.0.5引入的影響最大的一個(gè)Bug是執(zhí)行SELECT MAX()在某些特定條件下結(jié)果不正確。而這一Bug可以通過(guò)設(shè)置事件(event)關(guān)閉FIRST ROW優(yōu)化而避免。最后的結(jié)論是這一BUG不會(huì)對(duì)本系統(tǒng)有影響,可以安裝PSR10.1.0.5。
1. 檢查數(shù)據(jù)庫(kù)表空間和初始化參數(shù)是否需要調(diào)整。
System表空間要求有一定未使用空間:初始化參數(shù)SHARED_POOL_SIZE 和 JAVA_POOL_SIZE不能低于最小值150MB。
2. 關(guān)閉數(shù)據(jù)庫(kù),停止listener和agent等進(jìn)程。
3. 解壓縮下載文件至某一目錄,執(zhí)行oui。
在壓縮文件中附帶的oui的版本要比已經(jīng)安裝的版本高,應(yīng)總是使用新版本的oui。在oui窗口中,要求選擇本次安裝的軟件的位置,正確的位置是解壓縮目錄下的子目錄Disk1/stage/, 選中products.xml即可開(kāi)始文件拷貝。
要注意窗口中會(huì)出現(xiàn)本次安裝的日志文件的文件路徑和文件名。文件的位置是在Oracle的inventory所在目錄的子目錄logs中,文件名由前綴InstallActions和安裝日期時(shí)間組成,如: InstallActions2006-08-30-11-32-48AM.log。
正常結(jié)束后,退出oui。打開(kāi)日志文件,檢索是否出現(xiàn)error 或“ORA-”的錯(cuò)誤信息。本次安裝產(chǎn)生的日志文件內(nèi),沒(méi)有任何此類(lèi)的信息,表明PSR軟件安裝成功。如果此時(shí)再次啟動(dòng)oui,點(diǎn)擊“已安裝軟件”,則可以看到在原有的10.1.0.2軟件之下,新出現(xiàn)了10.1.0.5一項(xiàng),這也證實(shí)PSR軟件安裝成功。
4.更新數(shù)據(jù)庫(kù)數(shù)據(jù)字典
更新數(shù)據(jù)字典時(shí),必須以特殊的升級(jí)方式打開(kāi)數(shù)據(jù)庫(kù)。
$ sqlplus /nolog
SQL CONNECT / AS SYSDBA
SQL STARTUP UPGRADE
SQL SPOOL patch.log
SQL @?/rdbms/admin/catpatch.sql
執(zhí)行結(jié)束后,關(guān)閉重定向:
SQL SPOOL OFF
打開(kāi)文件patch.log檢查是否有錯(cuò)誤“ORA-”。(這一文件在啟動(dòng)sqlplus時(shí)的當(dāng)前目錄中,當(dāng)然也可以在“SPOOL patch.log”語(yǔ)句中顯式指定文件路徑。)如果出現(xiàn)錯(cuò)誤要分析原因,在解決問(wèn)題后,需要再次執(zhí)行catpatch.sql程序。
更新數(shù)據(jù)字典時(shí),由于對(duì)某些PL/SQL包刪除后又重新生成,造成相關(guān)PL/SQL包的狀態(tài)為異常(invalid)。在以后調(diào)用這些包時(shí),檢測(cè)到其狀態(tài)為非法,會(huì)自動(dòng)執(zhí)行編譯命令,使?fàn)顟B(tài)成為正常(valid)。雖然不會(huì)出錯(cuò),但會(huì)造成個(gè)別處理第一次執(zhí)行時(shí)變慢。顯然,與其留到應(yīng)用系統(tǒng)運(yùn)行時(shí)再一個(gè)個(gè)編譯,不如之前集中一次重編譯所有異常包。
SQL SHUTDOWN
SQL STARTUP
SQL @?/rdbms/admin/utlrp.sql
最后,根據(jù)Known Issues中的指示,完成與本系統(tǒng)有關(guān)的操作。例如,修改Pro*C的配置文件。這里執(zhí)行一個(gè)修改文件存取權(quán)限的“后操作”,以便非同組用戶和程序可以存取客戶端工具和庫(kù)函數(shù)。
$ cd $ORACLE_HOME/install
$ ./ changePerm.sh
個(gè)別補(bǔ)丁管理工具opatch
如前所述,在發(fā)布一個(gè)PSR后發(fā)現(xiàn)的新BUG,只能把其補(bǔ)丁收入到下一個(gè)PSR中。如果對(duì)數(shù)據(jù)庫(kù)有實(shí)質(zhì)性影響,則這一補(bǔ)丁以個(gè)別補(bǔ)丁的形式向用戶提供。個(gè)別補(bǔ)丁是與某一個(gè)特定的PSR關(guān)聯(lián),是安裝在這一PSR之上的。另外,如同其名字表明的,個(gè)別補(bǔ)丁只是單一Bug的補(bǔ)丁,不會(huì)包含其他個(gè)別補(bǔ)丁,即不是累積型的。
在9.2版之前,安裝個(gè)別補(bǔ)丁的操作完全是手工的。這種手工方式的缺點(diǎn)不僅在于加重DBA的負(fù)擔(dān),容易造成操作失誤,更嚴(yán)重的是無(wú)法對(duì)已安裝的個(gè)別補(bǔ)丁進(jìn)行管理。
為解決手工方式的缺陷,從9.2版開(kāi)始,Oracle公司設(shè)計(jì)實(shí)現(xiàn)了個(gè)別補(bǔ)丁安裝管理工具opatch。opatch使用一個(gè)稱(chēng)為 inventory的系統(tǒng)數(shù)據(jù)結(jié)構(gòu)(嚴(yán)格說(shuō)是與oui共享inventory),集中管理所有已安裝的個(gè)別補(bǔ)??;個(gè)別補(bǔ)丁的安裝和卸載都使用opatch 命令完成,沖突檢測(cè)也由opatch在安裝時(shí)自動(dòng)完成;提供列表命令可以很方便得到已安裝個(gè)別補(bǔ)丁的信息。
10g(10.1和10.2)版本中,opatch作為一個(gè)標(biāo)準(zhǔn)工具,在軟件安裝時(shí)自動(dòng)安裝。(安裝在$ORACLE_HOME/OPatch 下。)而對(duì)于9.2版,需要從metalink下載opatch。無(wú)論數(shù)據(jù)庫(kù)是哪一個(gè)版本,系統(tǒng)中是否已經(jīng)安裝opatch,在使用之前,應(yīng)從 metalink下載最新版本的opatch。很遺憾,由于系統(tǒng)實(shí)現(xiàn)的問(wèn)題,10.2使用的opatch與之前版本(10.1和9.2)使用的 opatch不兼容,不能混用,這一點(diǎn)必須注意。
opatch是使用perl編寫(xiě)的腳本程序(其中也使用JAVA API)。編程使用的perl版本是5.6版,雖然在5.6之前的版本中也可運(yùn)行,但應(yīng)盡可能安裝5.6或以上的版本的perl。對(duì)于DBA來(lái)說(shuō)一個(gè)好消息是,如果安裝9.2版軟件時(shí)保留了HTTP服務(wù)器,則在$ORACLE_HOME/Apache下會(huì)自動(dòng)安裝perl。(10g會(huì)自動(dòng)安裝配置perl 和opatch。)
opatch命令格式為:
opatch command [ command_options ] [ -h[elp] ]
命令有:apply(安裝個(gè)別補(bǔ)丁)、rollback(卸載個(gè)別補(bǔ)丁)、lsinventory(對(duì)inventory進(jìn)行列表)、query (顯示某一個(gè)別補(bǔ)丁的詳細(xì)信息)、version(顯示opatch版本信息)。在opatch目錄下,有用戶使用指南文件(Users_Guide.txt),其中有詳細(xì)的命令格式和使用示例,讀者可以參考。Opatch執(zhí)行操作時(shí),除在屏幕輸出結(jié)果外,還生成日志文件。日志文件的路徑和文件名格式如下:
$ORACLE_HOME/.patch_storage/ patch_id / action - patch_id _ mm-dd-yyyy_hh-mi-ss .log
其中“patch_id”是Oracle技術(shù)支持部門(mén)為個(gè)別補(bǔ)丁分配的編號(hào)。
4. 個(gè)別補(bǔ)丁安裝實(shí)例
沿用安裝PSR實(shí)例中的環(huán)境。在安裝PSR10.1.0.5后,檢索metalink,發(fā)現(xiàn)若干在其之上的個(gè)別補(bǔ)丁。選擇其中之一安裝。
個(gè)別補(bǔ)丁Patch 4518443修復(fù)BUG4518443,這一BUG的主要問(wèn)題是TNS LISTENER在注冊(cè)O(shè)NS(Oracle Notification Services)的同時(shí)如果創(chuàng)建子進(jìn)程,那么LISTENER會(huì)掛起(HANGUP)。
安裝時(shí),首先,從metalink下載補(bǔ)丁的壓縮文件p4518443_10105_LINUX.zip。將此文件解壓縮至某一目錄中。解壓縮后,這一補(bǔ)丁的所有文件都在子目錄4518443下,目錄名就是個(gè)別補(bǔ)丁的補(bǔ)丁號(hào),opatch依據(jù)目錄名獲得信息,所以一定不要重命名子目錄。
然后,在終端窗口中,執(zhí)行cd命令移動(dòng)到4518443子目錄中,執(zhí)行以下命令:
$ $ORACLE_HOME/OPatch/opatch apply
對(duì)inventory列表,確認(rèn)安裝操作:
$ $ORACLE_HOME/OPatch/opatch lsinventory
執(zhí)行卸載命令時(shí),也必須使4518443子目錄成為當(dāng)前目錄。其中,Rollback命令需要兩個(gè)參數(shù):-id給出個(gè)別補(bǔ)丁號(hào);-ph 給出個(gè)別補(bǔ)丁解壓縮后的路徑。
$ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443
隨后再對(duì)inventory列表,則會(huì)看到這一個(gè)別補(bǔ)丁已經(jīng)被移去。
4. 使用opatch顯示已安裝的版本信息
不需要啟動(dòng)數(shù)據(jù)庫(kù),執(zhí)行加選項(xiàng)的對(duì)inventory的列表命令,可以得到已安裝的軟件的各個(gè)組件的詳細(xì)版本信息。
$ $ORACLE_HOME/OPatch/opatch lsinventory -detail
安全補(bǔ)丁CPU
一個(gè)CPU內(nèi)包含了對(duì)多個(gè)安全漏洞的修復(fù),并且也包括相應(yīng)必需的非安全漏洞的補(bǔ)丁。CPU是累積型的,只要安裝最新發(fā)布的CPU即可,其中包括之前發(fā)布的所有CPU的內(nèi)容。事實(shí)上,在CPU之前的安全漏洞修改除去個(gè)別例外也被包括在CPU中。Oracle公司只對(duì)處于標(biāo)準(zhǔn)技術(shù)支持和延長(zhǎng)支持期間的產(chǎn)品提供CPU更新,對(duì)處于維持支持范圍的產(chǎn)品不提供新的CPU。(對(duì)于9.2以前的版本,只對(duì)處于ECS和EMS期間的版本提供CPU更新。)一般對(duì)當(dāng)前補(bǔ)丁發(fā)行版及前一個(gè)版本提供CPU,但也有只限于當(dāng)前補(bǔ)丁發(fā)行版的例外情形。也就是說(shuō),一般需要先安裝最新PSR后才可能安裝CPU。由于是累積型的定期發(fā)布,所以對(duì)于某一平臺(tái)的某一版本,如果兩次CPU發(fā)布期間沒(méi)有發(fā)現(xiàn)新的安全漏洞,則新發(fā)布的CPU與前一版本完全相同。
建議騰訊電腦管家修復(fù)
1)騰訊電腦管家會(huì)智能匹配電腦系統(tǒng),針對(duì)性推送適合系統(tǒng)的高危漏洞補(bǔ)丁,而其他安全軟件可能推送非高危漏洞補(bǔ)??;
2)騰訊電腦管家推送最近發(fā)布的漏洞補(bǔ)丁包,而其他安全軟件可能提示已過(guò)期的漏洞補(bǔ)?。梢酝ㄟ^(guò)查看各安全軟件的補(bǔ)丁發(fā)布日期得知)。
3)騰訊電腦管家還可以定期自動(dòng)刪除補(bǔ)丁包,清理電腦空間
打開(kāi)騰訊電腦管家——主菜單——修復(fù)漏洞——定期刪除補(bǔ)丁包(默認(rèn)勾選狀態(tài))
更換一個(gè)目錄試一下
把patch 安裝文件放在/tmp 文件下,在嘗試一下安裝
網(wǎng)頁(yè)標(biāo)題:oracle補(bǔ)丁怎么修復(fù),oracle 打補(bǔ)丁
網(wǎng)站URL:http://jinyejixie.com/article46/dsdgpeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、ChatGPT、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、電子商務(wù)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)