給軟件打補丁相當于給人打預防針,對系統(tǒng)的穩(wěn)定運行至關(guān)重要。本文詳細、系統(tǒng)地介紹了Oracle數(shù)據(jù)庫補丁的分類、安裝、管理等問題。
10余年的華容網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整華容建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“華容網(wǎng)站設(shè)計”,“華容網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
廠商提供給用戶的軟件補丁的形式多為編譯后的庫函數(shù),所以安裝軟件補丁實際上就是把這些庫函數(shù)拷貝到相應(yīng)目錄,并在需要時進行聯(lián)接操作。軟件公司一般在一段時間后會把針對某一版本的所有補丁進行整理:合并融合,解決沖突,進行整體測試,并使文件拷貝和聯(lián)接操作自動執(zhí)行,得到一個軟件補丁“包”。不同的公司使用不同的名稱,現(xiàn)在一般計算機用戶都熟悉的Windows Service Pack就是這樣的補丁包。Oracle公司給出的補丁包的名稱是Patch Set,安裝Patch Set后的版本稱Patch Set Release(PSR)。
Oracle公司對處于標準技術(shù)支持的產(chǎn)品不定期地提供PSR,例如在完成本文時,版本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)補丁當然會收錄到下一個PSR中。PSR是累積型的,即下一個PSR中會包括當前PSR中所有補丁和新發(fā)現(xiàn)Bug的補丁。同時存在幾個PSR時,只需安裝最新版本一次就可以了。但是由于PSR的發(fā)行有一定間隔,如果這些Bug對用戶有比較大的影響,那么 Oracle公司也會向用戶公開和提供這些補丁,這些補丁被稱為個別補丁(Interim Patch,one-off patch 或 Patch Set Exception)。而對于最終補丁發(fā)行版而言,由于不再有下一個PSR,所以當發(fā)現(xiàn)影響系統(tǒng)的新Bug時,個別補丁成為惟一選擇。
此外,Oracle公司還定期發(fā)布安全補丁,稱之為CPU(Critical Patch Updates)。安全補丁用來修復軟件的易受攻擊性(vulnerability)或通常說的安全漏洞。這類問題本來不屬于軟件錯誤,在正常使用中不會出現(xiàn)任何問題。但是別有用心的人可以通過運行非常精巧設(shè)計的代碼,繞過數(shù)據(jù)庫系統(tǒng)的安全管理機制,達到非授權(quán)存取的目的。
另外還存在一類補丁:診斷用補丁(diagnostic patch)。顧名思義,這類補丁不是用來解決問題的,而是用來尋找問題的原因的。這類補丁只在Oracle技術(shù)支持部門要求安裝時,才需要安裝。在得到需要的診斷信息后,應(yīng)立即卸載這一補丁。
利弊及時機選擇
負責管理支撐大型應(yīng)用系統(tǒng)的數(shù)據(jù)庫的DBA會容易理解安裝軟件補丁的代價。安裝PSR需要停止數(shù)據(jù)庫服務(wù),關(guān)閉數(shù)據(jù)庫,對于許多應(yīng)用系統(tǒng)安排這樣的停機時間本身就是一件比較困難的事情。事實上,更為嚴重的是由于安裝PSR可能“引入”新的Bug,反而影響應(yīng)用系統(tǒng)的正常運行。軟件補丁本來是修正 Bug,怎么會帶來新的Bug?雖然有些讓人匪夷所思,但很不幸這是現(xiàn)實存在的。
對于每一個PSR,其中都包括了少則幾百多則上千個嚴重Bug的修正。即便是如此,在PSR發(fā)布后,很快就又會在安裝PSR后的數(shù)據(jù)庫中發(fā)現(xiàn)一些新問題。其中一部分Bug是以前就一直存在的只是以前沒有發(fā)現(xiàn),而現(xiàn)在偶爾被發(fā)現(xiàn),或者是由于PSR修正了某一錯誤從而將其“激活”或容易發(fā)現(xiàn)。但是確實有一些Bug是由這一PSR造成的,Oracle技術(shù)支持部門稱其為倒退(Regression)。對于每一PSR,在metalink中有兩個重要的與之有關(guān)的文檔,一個是“List of fixes added in XXXX”,是這一PSR修復的Bug的清單,是一本“修復列表”;另一個是“Known issues and alerts affecting XXXX”,是安裝PSR后發(fā)現(xiàn)的問題,可以稱其為“悔過列表”。由于大型軟件的復雜性,Bug幾乎是不可避免的。重要的是能夠及時提供信息,DBA可以結(jié)合自己系統(tǒng)的情況做出正確的判斷。讀者不必因為知道還存在著Bug,就對Oracle數(shù)據(jù)庫產(chǎn)品失去信心。PSR修復的上千個Bug中絕大多數(shù)是在一些很少見的環(huán)境中,或者是若干個組件的復雜組合使用的情形中發(fā)生的。
如果系統(tǒng)在運行中出現(xiàn)過某種問題,由Oracle技術(shù)支持部門或第三方的專家確認原因是PSR中的某一Bug,這樣就必須盡早安裝;如果系統(tǒng)一直運行正常,并且在PSR已發(fā)現(xiàn)的問題中涉及的組件或功能(如Logical Standby, JVM,RAC等)在系統(tǒng)中并不使用,此時可以選擇安裝也可以選擇不安裝。
另一個需要考慮的因素是安裝補丁的時機。上述這些考慮的一個重要前提是系統(tǒng)已經(jīng)投入運行,擔心“倒退”的Bug影響系統(tǒng)。如果系統(tǒng)還處在開發(fā)和測試階段,不需要有任何猶豫,安裝最新的PSR,并在此基礎(chǔ)上測試應(yīng)用系統(tǒng)是否工作正常。如果發(fā)現(xiàn)異常,要及時請Oracle技術(shù)支持部門確認是否新Bug,如果是請其提供個別補丁。目的就是在一個盡可能完善穩(wěn)定的數(shù)據(jù)庫平臺上測試應(yīng)用系統(tǒng)。我們可以把這種安裝補丁的策略概括為“補丁補新不補舊”。
以上都是針對PSR的安裝,對于個別補丁,由于補丁修復的Bug單一,容易判斷是否需要安裝。需要注意的是,如果在當前PSR之上安裝了若干個個別補丁,那么在下一個PSR發(fā)布后,在安裝下一個PSR之前,需要卸載所有個別補丁。為便于管理,現(xiàn)在Oracle技術(shù)支持部門要求必須使用工具 opatch安裝管理個別工具,而盡量避免手動拷貝文件等操作。
最后是安全補丁安裝的判斷。雖然安全漏洞這個詞看上去讓人覺得非常嚴重,但是還要冷靜綜合分析這些漏洞在系統(tǒng)中的危害程度。事實上,不安裝安全補丁的危險性可能遠遠小于始終不渝地使用scott/tiger這樣人人都知道的用戶名和口令的“標準缺省”做法。
安裝PSR
使用oui工具安裝PSR時只需要用鼠標做幾個選擇就可以進入自動執(zhí)行的階段,操作過程本身非常簡單。但是如果要求必須一次安裝成功;要求必須在凌晨2點到4點這個有限的停機時間段完成操作;要求安裝過程不出差錯,以后出現(xiàn)問題時能夠完全排除此次操作失誤的可能性,那么就需要在啟動oui之前做一些準備工作。
1. 收集信息
有關(guān)PSR的信息中,一個最重要的文檔就是軟件補丁說明,這個文件相當于技術(shù)手冊中的安裝指南和發(fā)行說明。文件本身包含在下載的軟件補丁文件之中,文件名是patchnote.htm或README.html。需要注意的一個問題是在軟件補丁文件之中找到的這一Patch Set Notes可能不是最新版,可以根據(jù)文件內(nèi)的提示信息在metalink中檢索最新版。
另外兩個重要文件就是前面已經(jīng)提及的“修復列表”和“悔過列表”,相對于“修復列表”更應(yīng)該仔細閱讀“悔過列表”中的每一項內(nèi)容。另外,在Patch Set Notes的已知問題(Known Issues)一節(jié)內(nèi)列出了安裝PSR后出現(xiàn)的一些問題。
除去這三個主要文件外,還應(yīng)在metalink中檢索,尋找是否還有其他涉及這一PSR的技術(shù)文章,尋找其他用戶在安裝這一PSR時或安裝后遇到問題時所發(fā)的救助的帖子,前車之鑒更應(yīng)重視。
2. 做出判斷
在認真閱讀收集到的文章之后,根據(jù)自己系統(tǒng)的實際情況,做出是立即安裝PSR,或是等待下一PSR的決定。如果是暫緩安裝,則要記錄原因,以便以后跟蹤Bug的修復進程。
3. 制訂實施計劃
在決定安裝PSR后,需要制訂一個實施計劃。在計劃中不僅要包括正常的操作步驟,更要考慮在出現(xiàn)意外時的應(yīng)急處理(如果安裝PSR失敗,則在正常應(yīng)用開始時間之前,要恢復系統(tǒng)到安裝之前的狀態(tài))。如果可能,在對正式系統(tǒng)開始實施之前,應(yīng)在測試系統(tǒng)中進行演練和應(yīng)用處理的測試,保證在安裝PSR后不會影響應(yīng)用系統(tǒng)的運行。
安裝PSR的計劃大致有以下幾個部分:停止數(shù)據(jù)庫服務(wù)關(guān)閉數(shù)據(jù)庫;備份DBMS軟件和數(shù)據(jù)庫以備恢復之用;安裝PSR軟件;更新數(shù)據(jù)庫數(shù)據(jù)字典升級PSR版本;正常啟動數(shù)據(jù)庫開始數(shù)據(jù)庫服務(wù)。
看似簡單的關(guān)閉數(shù)據(jù)庫的操作,在系統(tǒng)構(gòu)成復雜時也會變得不容易。另外,如果夜間作業(yè)時間不允許在完成數(shù)據(jù)庫完全備份之后再安裝PSR,則安裝PSR的日期應(yīng)該選擇在例行的數(shù)據(jù)庫完全備份的下一個晚上,只備份重做日志。
在安裝PSR之前備份DBMS軟件的目的是,由于安裝PSR會對許多程序和庫函數(shù)進行更新,如果安裝PSR中途失敗(雖然可能性非常小),有可能造成DBMS軟件出現(xiàn)不一致。另外一種可能的情形是,在安裝PSR,更新數(shù)據(jù)字典后,測試應(yīng)用系統(tǒng)時,出現(xiàn)了某種異常,原因不明,最終決定放棄PSR。如果操作之前沒有備份,則此時只有重新安裝軟件一種選擇(PSR不同于完整軟件安裝,在oui中無法單獨卸載PSR軟件)。
對文件、目錄和文件系統(tǒng)的備份,最簡單的方式可以使用cp、tar、dump等命令完成。如果希望縮短文件拷貝時間,可以考慮分區(qū)備份的方法。分區(qū)備份常用的命令是dd。但是,分區(qū)拷貝比文件拷貝速度快的前提是良好的分區(qū)設(shè)計:Oracle軟件單獨占一個大小適中(如4GB)的分區(qū),這樣扇區(qū)拷貝才會體現(xiàn)優(yōu)勢,這也就是為什么在安裝軟件時,Oracle建議單獨使用一個分區(qū)安裝軟件的原因之一。
在制定實施計劃時,應(yīng)認真閱讀Patch Set Notes中有關(guān)操作前準備工作一節(jié)。在這節(jié)內(nèi)會介紹對于一些特殊系統(tǒng)構(gòu)成,如果你的系統(tǒng)屬于文檔中提到的構(gòu)成,一定要首先閱讀文內(nèi)提示的相關(guān)技術(shù)文章,找到正確的安裝步驟。
使用oui, PSR軟件安裝完成后,一定不要忘記更新數(shù)據(jù)字典這一步驟。如果在這一ORACLE_HOME下生成了多個數(shù)據(jù)庫,則每個數(shù)據(jù)庫都必須更新數(shù)據(jù)字典。
. 實施操作
制訂一個詳細的計劃后,實施操作就可以“照本宣科”,是一個簡單的體力勞動。要認識到“忙中出錯”的概率遠比“急中生智”大得多,操作時盡量減少失誤的可能性。例如,需要執(zhí)行的復雜命令,盡可能從一個文件拷貝到終端執(zhí)行,而不要現(xiàn)場輸入。另外,在實施過程中,要記錄各個階段實際的執(zhí)行時間,以供以后制訂類似計劃時參考。
5. 檢查操作結(jié)果并記錄備案
執(zhí)行一個操作,操作是否成功,一定要進行檢查,不能簡單認為沒有出錯信息就是成功。要知道驗證的方法。除去極個別極費時間的驗證(分區(qū)備份的內(nèi)容是否可以成功恢復系統(tǒng),必須恢復分區(qū),啟動數(shù)據(jù)庫,測試應(yīng)用系統(tǒng)后才能確認),其余操作都應(yīng)進行驗證。所有屏幕輸出信息和日志文件都應(yīng)保留,作為安裝報告的附件提交給上級或客戶。
在屏幕輸出或日志文件中出現(xiàn)異常/錯誤信息時,應(yīng)即時分析,決定馬上采取的措施。出現(xiàn)嚴重錯誤時,可能需要重新執(zhí)行某一SQL程序,或者重新安裝PSR。所以在制訂實施計劃時應(yīng)在時間上留出異常情況處理的時間。
下面給出一個在Linux平臺上安裝10.1的PSR的實例,給從未安裝PSR的讀者有一個感性認識。
操作系統(tǒng)是RHEL AS4.0 Update3,Oracle的當前版本是10.1.2。在metalink中檢索,找到10.1版的最新PSR10.1.0.5。下載壓縮文件。在壓縮文件中找到Patch Set Notes,該文檔的完成日期是2006年1月。而按照文檔內(nèi)的提示在metalink中檢索得到的此文檔的最新版本完成日期是2006年4月。使用文件比較工具進行比較,兩個版本沒有實質(zhì)性差別,只有語句措詞的修改,但是養(yǎng)成總是檢索最新文檔的習慣有益無害。
根據(jù)Patch Set Notes中的說明,有一些特殊系統(tǒng)構(gòu)成需要額外的步驟,本例中由于全部沒有涉及到,所以可以按標準步驟執(zhí)行。
另外,檢查“Known issues and alerts affecting 10.1.0.5”文檔后,發(fā)現(xiàn)10.1.0.5引入的影響最大的一個Bug是執(zhí)行SELECT MAX()在某些特定條件下結(jié)果不正確。而這一Bug可以通過設(shè)置事件(event)關(guān)閉FIRST ROW優(yōu)化而避免。最后的結(jié)論是這一BUG不會對本系統(tǒng)有影響,可以安裝PSR10.1.0.5。
1. 檢查數(shù)據(jù)庫表空間和初始化參數(shù)是否需要調(diào)整。
System表空間要求有一定未使用空間:初始化參數(shù)SHARED_POOL_SIZE 和 JAVA_POOL_SIZE不能低于最小值150MB。
2. 關(guān)閉數(shù)據(jù)庫,停止listener和agent等進程。
3. 解壓縮下載文件至某一目錄,執(zhí)行oui。
在壓縮文件中附帶的oui的版本要比已經(jīng)安裝的版本高,應(yīng)總是使用新版本的oui。在oui窗口中,要求選擇本次安裝的軟件的位置,正確的位置是解壓縮目錄下的子目錄Disk1/stage/, 選中products.xml即可開始文件拷貝。
要注意窗口中會出現(xiàn)本次安裝的日志文件的文件路徑和文件名。文件的位置是在Oracle的inventory所在目錄的子目錄logs中,文件名由前綴InstallActions和安裝日期時間組成,如: InstallActions2006-08-30-11-32-48AM.log。
正常結(jié)束后,退出oui。打開日志文件,檢索是否出現(xiàn)error 或“ORA-”的錯誤信息。本次安裝產(chǎn)生的日志文件內(nèi),沒有任何此類的信息,表明PSR軟件安裝成功。如果此時再次啟動oui,點擊“已安裝軟件”,則可以看到在原有的10.1.0.2軟件之下,新出現(xiàn)了10.1.0.5一項,這也證實PSR軟件安裝成功。
4.更新數(shù)據(jù)庫數(shù)據(jù)字典
更新數(shù)據(jù)字典時,必須以特殊的升級方式打開數(shù)據(jù)庫。
$ 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
打開文件patch.log檢查是否有錯誤“ORA-”。(這一文件在啟動sqlplus時的當前目錄中,當然也可以在“SPOOL patch.log”語句中顯式指定文件路徑。)如果出現(xiàn)錯誤要分析原因,在解決問題后,需要再次執(zhí)行catpatch.sql程序。
更新數(shù)據(jù)字典時,由于對某些PL/SQL包刪除后又重新生成,造成相關(guān)PL/SQL包的狀態(tài)為異常(invalid)。在以后調(diào)用這些包時,檢測到其狀態(tài)為非法,會自動執(zhí)行編譯命令,使狀態(tài)成為正常(valid)。雖然不會出錯,但會造成個別處理第一次執(zhí)行時變慢。顯然,與其留到應(yīng)用系統(tǒng)運行時再一個個編譯,不如之前集中一次重編譯所有異常包。
SQL SHUTDOWN
SQL STARTUP
SQL @?/rdbms/admin/utlrp.sql
最后,根據(jù)Known Issues中的指示,完成與本系統(tǒng)有關(guān)的操作。例如,修改Pro*C的配置文件。這里執(zhí)行一個修改文件存取權(quán)限的“后操作”,以便非同組用戶和程序可以存取客戶端工具和庫函數(shù)。
$ cd $ORACLE_HOME/install
$ ./ changePerm.sh
個別補丁管理工具opatch
如前所述,在發(fā)布一個PSR后發(fā)現(xiàn)的新BUG,只能把其補丁收入到下一個PSR中。如果對數(shù)據(jù)庫有實質(zhì)性影響,則這一補丁以個別補丁的形式向用戶提供。個別補丁是與某一個特定的PSR關(guān)聯(lián),是安裝在這一PSR之上的。另外,如同其名字表明的,個別補丁只是單一Bug的補丁,不會包含其他個別補丁,即不是累積型的。
在9.2版之前,安裝個別補丁的操作完全是手工的。這種手工方式的缺點不僅在于加重DBA的負擔,容易造成操作失誤,更嚴重的是無法對已安裝的個別補丁進行管理。
為解決手工方式的缺陷,從9.2版開始,Oracle公司設(shè)計實現(xiàn)了個別補丁安裝管理工具opatch。opatch使用一個稱為 inventory的系統(tǒng)數(shù)據(jù)結(jié)構(gòu)(嚴格說是與oui共享inventory),集中管理所有已安裝的個別補丁;個別補丁的安裝和卸載都使用opatch 命令完成,沖突檢測也由opatch在安裝時自動完成;提供列表命令可以很方便得到已安裝個別補丁的信息。
10g(10.1和10.2)版本中,opatch作為一個標準工具,在軟件安裝時自動安裝。(安裝在$ORACLE_HOME/OPatch 下。)而對于9.2版,需要從metalink下載opatch。無論數(shù)據(jù)庫是哪一個版本,系統(tǒng)中是否已經(jīng)安裝opatch,在使用之前,應(yīng)從 metalink下載最新版本的opatch。很遺憾,由于系統(tǒng)實現(xiàn)的問題,10.2使用的opatch與之前版本(10.1和9.2)使用的 opatch不兼容,不能混用,這一點必須注意。
opatch是使用perl編寫的腳本程序(其中也使用JAVA API)。編程使用的perl版本是5.6版,雖然在5.6之前的版本中也可運行,但應(yīng)盡可能安裝5.6或以上的版本的perl。對于DBA來說一個好消息是,如果安裝9.2版軟件時保留了HTTP服務(wù)器,則在$ORACLE_HOME/Apache下會自動安裝perl。(10g會自動安裝配置perl 和opatch。)
opatch命令格式為:
opatch command [ command_options ] [ -h[elp] ]
命令有:apply(安裝個別補丁)、rollback(卸載個別補丁)、lsinventory(對inventory進行列表)、query (顯示某一個別補丁的詳細信息)、version(顯示opatch版本信息)。在opatch目錄下,有用戶使用指南文件(Users_Guide.txt),其中有詳細的命令格式和使用示例,讀者可以參考。Opatch執(zhí)行操作時,除在屏幕輸出結(jié)果外,還生成日志文件。日志文件的路徑和文件名格式如下:
$ORACLE_HOME/.patch_storage/ patch_id / action - patch_id _ mm-dd-yyyy_hh-mi-ss .log
其中“patch_id”是Oracle技術(shù)支持部門為個別補丁分配的編號。
4. 個別補丁安裝實例
沿用安裝PSR實例中的環(huán)境。在安裝PSR10.1.0.5后,檢索metalink,發(fā)現(xiàn)若干在其之上的個別補丁。選擇其中之一安裝。
個別補丁Patch 4518443修復BUG4518443,這一BUG的主要問題是TNS LISTENER在注冊O(shè)NS(Oracle Notification Services)的同時如果創(chuàng)建子進程,那么LISTENER會掛起(HANGUP)。
安裝時,首先,從metalink下載補丁的壓縮文件p4518443_10105_LINUX.zip。將此文件解壓縮至某一目錄中。解壓縮后,這一補丁的所有文件都在子目錄4518443下,目錄名就是個別補丁的補丁號,opatch依據(jù)目錄名獲得信息,所以一定不要重命名子目錄。
然后,在終端窗口中,執(zhí)行cd命令移動到4518443子目錄中,執(zhí)行以下命令:
$ $ORACLE_HOME/OPatch/opatch apply
對inventory列表,確認安裝操作:
$ $ORACLE_HOME/OPatch/opatch lsinventory
執(zhí)行卸載命令時,也必須使4518443子目錄成為當前目錄。其中,Rollback命令需要兩個參數(shù):-id給出個別補丁號;-ph 給出個別補丁解壓縮后的路徑。
$ $ORACLE_HOME/OPatch/opatch rollback -id 4518443 -ph /…/4518443
隨后再對inventory列表,則會看到這一個別補丁已經(jīng)被移去。
4. 使用opatch顯示已安裝的版本信息
不需要啟動數(shù)據(jù)庫,執(zhí)行加選項的對inventory的列表命令,可以得到已安裝的軟件的各個組件的詳細版本信息。
$ $ORACLE_HOME/OPatch/opatch lsinventory -detail
安全補丁CPU
一個CPU內(nèi)包含了對多個安全漏洞的修復,并且也包括相應(yīng)必需的非安全漏洞的補丁。CPU是累積型的,只要安裝最新發(fā)布的CPU即可,其中包括之前發(fā)布的所有CPU的內(nèi)容。事實上,在CPU之前的安全漏洞修改除去個別例外也被包括在CPU中。Oracle公司只對處于標準技術(shù)支持和延長支持期間的產(chǎn)品提供CPU更新,對處于維持支持范圍的產(chǎn)品不提供新的CPU。(對于9.2以前的版本,只對處于ECS和EMS期間的版本提供CPU更新。)一般對當前補丁發(fā)行版及前一個版本提供CPU,但也有只限于當前補丁發(fā)行版的例外情形。也就是說,一般需要先安裝最新PSR后才可能安裝CPU。由于是累積型的定期發(fā)布,所以對于某一平臺的某一版本,如果兩次CPU發(fā)布期間沒有發(fā)現(xiàn)新的安全漏洞,則新發(fā)布的CPU與前一版本完全相同。
上帝_無言
關(guān)注
Oracle數(shù)據(jù)庫打補丁方法 原創(chuàng)
2022-04-29 17:54:42
? 1點贊
?
上帝_無言 ?
碼齡5年
關(guān)注
本篇僅針對DB 12.1.0.2.0 版本12C 的Opatch工具打補丁來講解
Oracle 補丁過程
一,全庫備份 oracle
用戶:
abcdef
密碼:
123
數(shù)據(jù)庫:
ruru
全庫導出命令
exp abcdef/123@ruru file=E:\bak.dmp full=y
二,關(guān)閉實例,關(guān)閉進程,關(guān)閉監(jiān)聽器。
1.開始菜單搜索,打開Sqlplus, 輸入 /as sysdba 登錄
2.執(zhí)行 shutdown immediate 關(guān)閉數(shù)據(jù)庫實例,
3.停止相關(guān)服務(wù),打開任務(wù)管理器,服務(wù)列,找到oracle相關(guān)服務(wù)右鍵停止
?
4.停止相關(guān)進程,打開任務(wù)管理器,進程列,找到相關(guān)進程 結(jié)束進程。
?
三,備份Opatch, 解壓補丁,打補丁。
1.opatch 文件夾備份,防止錯誤,可以恢復。
?
2.開始菜單搜索 命令提示符, 右鍵 以管理員身份運行,
進入到 %ORACL_HOME%\APP\product\12.1.0\dbhome_1\OPatch
?
再進入相關(guān)補丁文件內(nèi) 執(zhí)行 …\opatch apply 命令執(zhí)行打補丁過程
?
最后顯示 Successed 即為打補丁成功。
四,啟動相關(guān)進程,啟動oracle, 更新sql.
1.啟動之前關(guān)閉的服務(wù)器 服務(wù)列中相關(guān)服務(wù),點擊開始,
?
2.使用sqlplus連接數(shù)據(jù)庫,啟動實例
開始菜單搜索,打開Sqlplus, 輸入 /as sysdba 登錄
3.使用 startup 命令啟動數(shù)據(jù)庫實例。
4. 使用 PL/SQL 測試是否可以正常連接數(shù)據(jù)庫,
如果連接失敗 運行打開PDB, 如果正常連接 則不需要。
alter pluggable database all open;
5.更新注冊信息 到數(shù)據(jù)表,
在sqlPlus中 執(zhí)行該命令
@?/rdbms/admin/dpload.sql
最后結(jié)果出現(xiàn)如下圖,即為打補丁成功。
?
文章知識點與官方知識檔案匹配
MySQL入門技能樹使用數(shù)據(jù)庫 創(chuàng)建和刪除數(shù)據(jù)庫
29055 人正在系統(tǒng)學習中
打開CSDN,閱讀體驗更佳
Windows環(huán)境下給oracle打補丁詳細教程_范微的博客
檢測當前數(shù)據(jù)補丁安裝情況。C:\WINDOWS\system32opatch lsinventory Invoking OPatch 11.1.0.6.6 Oracle 中間補丁程序安裝程序版本 11.1.0.6.6 版權(quán)所有 (c) 2009, Oracle Corporation。保留所有權(quán)利。 Oracle 主目錄 : F:\app\mr_...
oracle滾動打補丁,使用Oracle Opatch打補丁_從一小姐的博客
1: MOS上下載對應(yīng)的補丁(support.oracle.com); 2: 在打補丁前,有條件的情況下對數(shù)據(jù)庫進行一次全備份; 檢查數(shù)據(jù)庫環(huán)境: 每個補丁的應(yīng)用都有一定的環(huán)境,包含數(shù)據(jù)庫版本,Opatch版本,我們通過命令opatch Isinventory來進行檢查,操作如下:...
Oracle數(shù)據(jù)庫如何打補丁
Oracle安裝好后,還需要打上補丁,才能夠穩(wěn)定地運行的哦。
mysql漏洞如何打補丁_【補充】Mysql數(shù)據(jù)庫測試及使用環(huán)境搭建教程
一、背景介紹Metasploit就是一個漏洞框架。它的全稱叫做The Metasploit Framework,簡稱叫做MSF。Metasploit作為全球最受歡迎的工具,不僅僅是因為它的方便性和強大性,更重要的是它的框架。它允許使用者開發(fā)自己的漏洞腳本,從而進行測試。那么如何利用Metasploit(msf)進行Mysql弱口令爆破呢?如何搭建Sql靶機呢?接下來讓我們一起學習!二、資...
繼續(xù)訪問
Oracle 11.2.0.4打補丁的方法_蟻庫的博客
Oracle 11.2.0.4打補丁的方法 一、概述 本文主要介紹了Oracle 11.2.0.3 升級到11.2.0.4的補丁的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下 二、打補丁 所需補丁及高版本opatch...
oracle數(shù)據(jù)庫如何打補丁_DoveFeng的博客
為解決手工方式的缺陷,從9.2版開始,Oracle公司設(shè)計實現(xiàn)了個別補丁安裝管理工具opatch.opatch使用一個稱為inventory的系統(tǒng)數(shù)據(jù)結(jié)構(gòu)(嚴格說是與oui共享inventory),集中管理所有已安裝的個別補丁;個別補丁的安裝和卸載都使用opatch命令完成,沖突檢測...
Oracle補丁就該這么打
Oracle補丁就該這么打 原創(chuàng) 金震宇 IT那活兒 今天 [ 補丁集下載 ] oracle打補丁最常見原因為bug修復或安全迎檢漏洞修復需要打到最新的補丁版本。下文的經(jīng)驗之談是基于rac環(huán)境,19c版本的最新補丁集的過程分享。 可以參考《Assistant:Download Reference for Oracle Database/GI Update, Revision, PSU,SPU(CPU), Bundle Patches, Patchsets and Base Releases (Doc I
繼續(xù)訪問
最新發(fā)布 Oracle rac 19C(19.16)補丁升級(OPatch 34130714)操作過程
在升級完成后本次操作有個實例未能啟動,手動通過集群命令進行拉起此告警實例。6.完成數(shù)據(jù)字典更新后關(guān)閉實例進行OJVM升級,再次進行數(shù)據(jù)字典升級。6.完成數(shù)據(jù)字典更新后關(guān)閉實例進行OJVM升級,再次進行數(shù)據(jù)字典升級。2.兩個節(jié)點grid、oracle替換OPatch工具。2.兩個節(jié)點grid、oracle替換OPatch工具。2.兩個節(jié)點備份grid、oracle家目錄。2.兩個節(jié)點備份grid、oracle家目錄。5.節(jié)點一所有實例,進行數(shù)據(jù)字典更新。5.節(jié)點一所有實例,進行數(shù)據(jù)字典更新。
繼續(xù)訪問
記錄Oracle rac 19C(19.15)補丁升級(OPatch 33803476)操作過程
提示以下是本篇文章正文內(nèi)容,下面案例可供參考。
繼續(xù)訪問
Windows環(huán)境下給oracle打補丁詳細教程
Windows環(huán)境下給oracle打補丁詳細教程
繼續(xù)訪問
?
oracle 打補丁
oracle 11G補丁安裝
繼續(xù)訪問
小白入門(九):Oracle數(shù)據(jù)庫打補丁操作過程
文章目錄前言簡要介紹:一.OPatch 更新:1、檢查目前補丁包版本($ORACLE_HOME下):2、創(chuàng)建目錄備份當前Opatch工具:3、傳輸壓縮包并解壓Opatch工具至$ORACLE_HOME下:二、應(yīng)用PSU補丁:1、Oraclehome下創(chuàng)建目錄解壓PSU補丁:2、執(zhí)行oracle 中間補丁安裝程序:3、停止監(jiān)聽以及數(shù)據(jù)庫:4、應(yīng)用補丁:三、數(shù)據(jù)庫應(yīng)用補丁:1、升級數(shù)據(jù)庫數(shù)據(jù)字典、編譯無效對象 :2、查看 PSU 更新信息3、opatch 檢查:1、升級前檢查是否有沖突1.1測試兼容性, 如果之
繼續(xù)訪問
oracle 補丁,Oracle補丁介紹一
【前言】保證數(shù)據(jù)庫的穩(wěn)定與安全運行是DBA的價值所在,Oracle Database本身也是一個軟件,隨著系統(tǒng)的使用場景和使用深度的增加一些原本沒被發(fā)現(xiàn)的漏洞或BUG就會逐漸被發(fā)現(xiàn)。所以成熟的IT企業(yè),往往會定期對數(shù)據(jù)庫進行安全檢查和補丁的更新;【一】Oracle版本命名規(guī)則在進行Oracle更新補丁之前,先對Oracle的版本命名有個認識。從9i之后,oracle版本命名規(guī)則定義如下:A.B.C...
繼續(xù)訪問
熱門推薦 mysql[漏洞打補丁]小版本升級5.7.25到5.7.28
mysql[漏洞]小版本升級 事件背景 近日,公司進行安全掃描,發(fā)現(xiàn)mysql存在漏洞,高危漏洞編號為(CVE-2019-3822),此外還有多個中危,低危漏洞,目前mysql版本為5.7.25 解決方案 對mysql進行小版本升級到5.7.28,生產(chǎn)環(huán)境無法聯(lián)網(wǎng),用rpm 包離線安裝,選擇就地升級。 Mysql的兩種升級方式 就地升級(In-place Upgrade) 關(guān)閉舊版本mys...
繼續(xù)訪問
?
Oracle打補丁步驟
1、登錄MOS,在patchesupdates查找自己想要安裝的補丁號或者bug code,下載補丁。同時查閱readme,這里面寫的是怎么安裝補丁以及安裝補丁的事項。 2、將下載好的zip文件傳入要打補丁的主機。解壓到一個文件夾里(可以是自己臨時創(chuàng)建的一個文件夾PATCH_TOP_DIR,但需要注意整個文件夾包括里面的文件的屬主都修改為oracle) 3、關(guān)閉數(shù)據(jù)庫...
繼續(xù)訪問
Oracle 11.2.0.4 RAC 手動打補丁
1 補丁介紹 GI補丁一般包括DB補丁,在打GI補丁過程中會自動打上DB補丁。也就是說GI版本=DB版本 比如下載GI補丁包p26635745_112040_Linux-x86-64,解壓其實里面包括22502505、26392168、26609929三個目錄,而DB補丁包p26392168_112040_Linux-x86-64.zip解壓后就是26392168目錄 1. 1 下載補丁和...
繼續(xù)訪問
oracle滾動打補丁,ORACLE打補丁的方法和案例
打補丁使用opatch工具,具體操作方法以補丁包中的readme.txt為準1.查看某個補丁是否安裝的方法(下面命令不行就升級opatch)$ORACLE_HOME/OPatch/opatchlsinventory2.下載補丁包查看當前opatch版本。Oracle 11.2.0.1.0自帶的opatch版本是11.1.0.6.6。補丁包的README.html中有描述該補丁或PSU需要的最低版本...
繼續(xù)訪問
?
oracle滾動打補丁,Oracle打補丁過程補丁7272646
redhat enterprise linux 6.1安裝oracle 11.1.0.6.0,會提示錯誤:OUI-18001:the operating systemRedHat enterprise linux 6.1安裝Oracle 11.1.0.6.0會提示錯誤:OUI-18001:the operating system 'Linux
1、 環(huán)境介紹
我們選擇11gR2作為實驗環(huán)境。
SQL select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
在安裝目錄$ORACLE_HOME下,是自帶一個OPatch工具包的。一般小版本的升級,都是通過OPatch來完成。
[oracle@bsplinux ~]$ cd $ORACLE_HOME
[oracle@bsplinux oracle]$ ls -l | grep OPatch
drwxr-xr-x 8 oracle oinstall 4096 Oct 23 20:00 OPatch
不過,同Oracle自帶的Uninstall一樣,11.2.0.1自帶的OPatch的版本是不能提供升級功能的。所以,我們通常需要首先升級OPatch,之后才能進行打補丁。
2、OPatch升級
首先,我們需要確定當前的OPatch版本。進入OPatch目錄之后,可以通過版本首先確認。
[oracle@bsplinux OPatch]$ ls -l
total 92
drwxr-xr-x 2 oracle oinstall 4096 May 22 16:16 docs
-rw-r--r-- 1 oracle oinstall 21576 May 6 2009 emdpatch.pl
drwxr-xr-x 2 oracle oinstall 4096 May 22 16:16 jlib
drwxr-xr-x 5 oracle oinstall 4096 May 22 16:16 ocm
-rwxr-xr-x 1 oracle oinstall 8709 May 6 2009 opatch
-rw-r--r-- 1 oracle oinstall 49 May 22 16:22 opatch.ini
-rw-r--r-- 1 oracle oinstall 2576 May 6 2009 opatch.pl
drwxr-xr-x 4 oracle oinstall 4096 May 22 16:16 opatchprereqs
[oracle@bsplinux OPatch]$ ./opatch version
Invoking OPatch 11.1.0.6.6
OPatch Version: 11.1.0.6.6
OPatch succeeded.
11.2.0.1自帶的OPatch版本為11.1.0.6.6,我們需要首先升級OPatch。第一步是進行原有OPatch備份。
[oracle@bsplinux oracle]$ tar zcvf opatch_bk.tar OPatch
OPatch/
OPatch/opatchprereqs/
OPatch/opatchprereqs/prerequisite.properties
(篇幅原因,省略部分內(nèi)容)
OPatch/jlib/opatchprereq.jar
OPatch/opatch
OPatch/opatch.ini
[oracle@bsplinux oracle]$ ls -l | grep opatch
-rw-r--r-- 1 oracle oinstall 1187195 Oct 23 19:06 opatch_bk.tar
最新版本的OPatch可以從MOS上面下載到,補丁文件名稱為:p6880880_112000_LINUX.zip(For Linux 32)。
[oracle@bsplinux upload]$ ls -l | grep p688
-rw-r--r-- 1 root root 32510812 Oct 23 19:58 p6880880_112000_LINUX.zip
--解壓到ORACLE_HOME目錄上
[oracle@bsplinux upload]$ unzip p6880880_112000_LINUX.zip -d $ORACLE_HOME
Archive: p6880880_112000_LINUX.zip
creating: /u01/app/oracle/OPatch/oplan/
(篇幅原因,省略部分……)
inflating: /u01/app/oracle/OPatch/crs/s_crsconfig_defs
inflating: /u01/app/oracle/OPatch/crs/s_crsconfig_lib.pm
之后,驗證OPatch安裝成功。
[oracle@bsplinux OPatch]$ ./opatch version
OPatch Version: 11.2.0.3.0
OPatch succeeded.
[oracle@bsplinux OPatch]$
3、補丁安裝
如果OPatch不是最新的版本,直接安裝PSU可能會有各種的問題。更新OPatch之后,我們就可以下載對應(yīng)的PSU進行更新。
[oracle@bsplinux upload]$ ls -l | grep p12
-rw-r--r-- 1 root root 18510829 Oct 23 19:35 p12419378_112010_LINUX.zip
[oracle@bsplinux upload]$ unzip p12419378_112010_LINUX.zip -d $ORACLE_HOME
(省略)
[oracle@bsplinux oracle]$ cd 12419378/
[oracle@bsplinux 12419378]$ ls -l
total 60
drwxr-xr-x 3 oracle oinstall 4096 Jul 8 2011 custom
drwxr-xr-x 4 oracle oinstall 4096 Jul 8 2011 etc
drwxr-xr-x 12 oracle oinstall 4096 Jul 8 2011 files
-rwxr-xr-x 1 oracle oinstall 2871 Jul 8 2011 patchmd.xml
-rw-rw-r-- 1 oracle oinstall 40790 Jul 18 2011 README.html
-rw-r--r-- 1 oracle oinstall 21 Jul 8 2011 README.txt
將數(shù)據(jù)庫和監(jiān)聽程序關(guān)閉。
[oracle@bsplinux OPatch]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Tue Oct 23 19:26:11 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL conn / as sysdba
Connected.
SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@bsplinux OPatch]$ lsnrctl stop
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 23-OCT-2012 19:26:55
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
The command completed successfully