Oracle Database PSU/CPU
瀏覽量: 次 發(fā)布日期:2023-08-11 21:28:33
Oracle Database PSU/CPU
1. 什么是PSU/CPU?
CPU: Critical Patch Update
Oracle對于其產(chǎn)品每個季度發(fā)行一次的安全補(bǔ)丁包,通常是為了修復(fù)產(chǎn)品中的安全隱患。
PSU: Patch Set Updates
Oracle對于其產(chǎn)品每個季度發(fā)行一次的補(bǔ)丁包,包含了bug的修復(fù)。Oracle選取被用戶下載數(shù)量多的,并且被驗(yàn)證過具有較低風(fēng)險(xiǎn)的補(bǔ)丁放入到每個季度的PSU中。在每個PSU中不但包含Bug的修復(fù)而且還包含了最新的CPU。
2. 如何查找最新的PSU?
每個數(shù)據(jù)庫版本都有自己的PSU,PSU版本號體現(xiàn)在數(shù)據(jù)庫版本的最后一位,比如最新的10.2.0.5的PSU是10.2.0.5.3,而11.2.0.2的最新PSU則是11.2.0.2.2。
SUPPORT站點(diǎn)中Oracle Recommended Patches — Oracle Database [ID 756671.1] 文檔中查到各個產(chǎn)品版本最新的PSU。
如果你記不住這個文檔號,那么在SUPPORT中以“PSU”為關(guān)鍵字搜索,通常這個文檔會顯示在搜索結(jié)果的最前面。
3. 如何正確安裝PSU?
每個PSU安裝包中都包含一個README.html文檔,其中描述了如何安裝該P(yáng)SU,有些PSU是可以直接安裝的,而有些PSU則必須要求安裝了上一個版本的PSU之后才能繼續(xù)安裝。比如對于10.2.0.4版本的數(shù)據(jù)庫來說,PSU 10.2.0.4.4可以直接安裝在最原始的10.2.0.4.0版本中,而最新的PSU 10.2.0.4.8則必須要求先安裝10.2.0.4.4。這些信息在README.html中都可以找到,所以請仔細(xì)閱讀該文檔。
通常安裝PSU是比較簡單的,步驟如下:
1) 安裝PSU需要使用到opatch,在README.html中有描述該P(yáng)SU需要的最低版本opatch,如果當(dāng)前opatch版本過低,則需要先下載Patch 6880880,該P(yáng)atch中包含最新的opatch,只需要解壓覆蓋原先的$ORACLE_HOME/OPatch目錄即可。
查看當(dāng)前的opatch版本,可以使用opatch version命令。
$ opatch version
Invoking OPatch 10.2.0.5.2
OPatch Version: 10.2.0.5.2
OPatch succeeded.
2)安裝PSU,請仔細(xì)閱讀README.html,確認(rèn)安裝命令,通常是簡單的opatch apply。
opatch apply
3)更新數(shù)據(jù)庫,將修改過的SQL文件應(yīng)用到數(shù)據(jù)庫中,很多DBA在執(zhí)行完上述安裝命令以后就不再進(jìn)行這一步,那么實(shí)際上PSU是沒有完整安裝的。
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
注意:如果PSU是overlay PSU,比如10.2.0.4.8,則需要執(zhí)行@catbundle.sql opsu apply,同樣這些在README.html中都有詳細(xì)描述。
4)重新編譯CPU相關(guān)視圖。該步驟在一個數(shù)據(jù)庫上永遠(yuǎn)只需要執(zhí)行一次,是為了完成在2008年1月份第一次發(fā)布CPU補(bǔ)丁時的后續(xù)工作,如果在安裝以前的PSU或者CPU時執(zhí)行過這個步驟那么就可以無需再次執(zhí)行,另外,即使不執(zhí)行該步驟,數(shù)據(jù)庫也是正常運(yùn)行的,只不過意味著2008年1月份的CPU補(bǔ)丁沒有正常結(jié)束安裝。
cd $ORACLE_HOME/cpu/view_recompile
sqlplus / as sysdba
SQL> @recompile_precheck_jan2008cpu.sql
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP UPGRADE
SQL> @view_recompile_jan2008cpu.sql
SQL> SHUTDOWN;
SQL> STARTUP;
SQL> QUIT
注意:該步驟由于需要重新編譯大量視圖,因此要啟動數(shù)據(jù)庫到upgrade狀態(tài)才可以完成。也就是將引起停機(jī)時間。
4. 如何確認(rèn)當(dāng)前數(shù)據(jù)庫已經(jīng)安裝了什么PSU/CPU?
無論是從V$VERSION或者DBA_REGISTRY或者PRODUCT_COMPONENT_VERSION視圖中,都無法查找到PSU的信息,這些視圖中始終顯示的是最原始的版本,比如10.2.0.4.0。
最常用的方法是使用opatch命令。在打完最新的PSU 10.2.0.4.8的10.2.0.4數(shù)據(jù)庫中會有以下顯示。
$ opatch lsinventory -bugs_fixed | grep -i 'DATABASE PSU'
9654991 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.5 (REQUIRES PRE-REQUISITE
9952234 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.6 (REQUIRES PRE-REQUISITE
10248636 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.7 (REQUIRES PRE-REQUISITE
11724977 11724977 Wed May 25 16:37:17 CST 2011 DATABASE PSU 10.2.0.4.8 (REQUIRES PRE-REQUISITE
8576156 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.1 (INCLUDES CPUJUL2009)
8833280 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.2 (INCLUDES CPUOCT2009)
9119284 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.3 (INCLUDES CPUJAN2010)
9352164 9352164 Wed May 25 15:10:48 CST 2011 DATABASE PSU 10.2.0.4.4 (INCLUDES CPUAPR2010)
另外的方法是查看registry$history表。
兆柏數(shù)據(jù)恢復(fù)公司SQL> select action,comments from registry$history;
ACTION COMMENTS
------------------------------ --------------------
APPLY PSU 10.2.0.4.4
APPLY PSU 10.2.0.4.8
CPU view recompilation
注意:該表的內(nèi)容是在上述安裝PSU步驟的第三步中運(yùn)行catbundle.sql才會插入的,因此如果該步驟忘記執(zhí)行,則此表中無記錄。因此我們在作數(shù)據(jù)庫健康檢查的時候不但要用opatch檢查當(dāng)前數(shù)據(jù)庫最新的PSU補(bǔ)丁,也要檢查registry$history表,以確認(rèn)其它DBA是否正確地完成了PSU的安裝。
如果多個PSU的安裝都忘記了執(zhí)行上述第三步,可以通過以下方法依次補(bǔ)作。
$ ls -l $ORACLE_HOME/psu
total 0
drwxrwxrwx 2 oracle dba 96 Oct 16 2010 10.2.0.4.4
drwxrwxrwx 2 oracle dba 96 Oct 16 2010 10.2.0.4.5
$sqlplus / as sysdba
SQL> @?/psu/10.2.0.4.4/catpsu.sql
SQL> @?/psu/10.2.0.4.5/catopsu.sql
更多關(guān)于CPU的信息,可以參看:Maclean的了解Oracle Critical Patch Update。
5. 參考文檔。
Oracle Recommended Patches — Oracle Database [ID 756671.1]
Patch Set Updates for Oracle Products [ID 854428.1]
Introduction To Oracle Database catbundle.sql [ID 605795.1]
How to confirm that a Critical Patch Update (CPU) has been installed in Linux / UNIX [ID 821263.1]
重要數(shù)據(jù)丟失請聯(lián)系兆柏?cái)?shù)據(jù)恢復(fù)公司
. oracle證書,開啟數(shù)據(jù)庫專業(yè)之旅的鑰匙
. oracle歸檔日志設(shè)置,Oracle數(shù)據(jù)庫歸檔日志設(shè)置詳解
. oracle drop表數(shù)據(jù)恢復(fù),Oracle數(shù)據(jù)庫中drop表數(shù)據(jù)恢復(fù)方法詳解
. oracle 刪除數(shù)據(jù)文件,Oracle 數(shù)據(jù)文件刪除指南
. win11家庭版裝Oracle,oracle官方網(wǎng)站
. oracle價格,全面了解Oracle軟件的授權(quán)與成本
. oracle數(shù)據(jù)庫怎么修復(fù),全面指南
. oracle財(cái)務(wù)軟件,企業(yè)財(cái)務(wù)管理的新時代利器
. 什么是oracle數(shù)據(jù)庫,什么是Oracle數(shù)據(jù)庫?
. 如何查看oracle錯誤日志,Oracle數(shù)據(jù)庫錯誤日志查看指南
. oracle數(shù)據(jù)庫執(zhí)行計(jì)劃怎么看,查看與分析技巧
. oracle刪除的數(shù)據(jù)怎么恢復(fù),Oracle數(shù)據(jù)庫中刪除數(shù)據(jù)恢復(fù)指南
. oracle一個實(shí)例多個數(shù)據(jù)庫,Oracle數(shù)據(jù)庫實(shí)例與多個數(shù)據(jù)庫的配置與管理
. ora-01578:oracle 數(shù)據(jù)塊損壞,oracle數(shù)據(jù)塊損壞
. oracle恢復(fù)歸檔日志文件,Oracle數(shù)據(jù)庫恢復(fù)歸檔日志文件的方法與技巧
. Oracle database 完全恢復(fù),全面解析與操作指南
. oracle下載官網(wǎng),輕松獲取數(shù)據(jù)庫軟件