【轉】Oracle Database PSU/CPU

來源:互聯網
上載者:User

標籤:查看   --   media   覆蓋   2.0   簡單   1.2   includes   int   

轉自: http://www.cnblogs.com/ebs-blog/archive/2011/07/28/2167232.html

 

1. 什麼是PSU/CPU?
CPU: Critical Patch Update
Oracle對於其產品每個季度發行一次的安全補丁包,通常是為了修複產品中的安全隱患。

PSU: Patch Set Updates
Oracle對於其產品每個季度發行一次的補丁包,包含了bug的修複。Oracle選取被使用者下載數量多的,並且被驗證過具有較低風險的補丁放入到每個季度的PSU中。在每個PSU中不但包含Bug的修複而且還包含了最新的CPU。

2. 如何尋找最新的PSU?
每個資料庫版本都有自己的PSU,PSU版本號碼體現在資料庫版本的最後一位,比如最新的10.2.0.5的PSU是10.2.0.5.3,而11.2.0.2的最新PSU則是11.2.0.2.2。
MOS網站中Oracle Recommended Patches — Oracle Database [ID 756671.1] 文檔中查到各個產品版本最新的PSU。
如果你記不住這個文檔號,那麼在MOS中以“PSU”為關鍵字搜尋,通常這個文檔會顯示在搜尋結果的最前面。

注意:必須購買了Oracle基本服務擷取了CSI號以後才有許可權登陸MOS網站。

3. 如何正確安裝PSU?
每個PSU安裝包中都包含一個README.html文檔,其中描述了如何安裝該PSU,有些PSU是可以直接安裝的,而有些PSU則必須要求安裝了上一個版本的PSU之後才能繼續安裝。比如對於10.2.0.4版本的資料庫來說,PSU 10.2.0.4.4可以直接安裝在最原始的10.2.0.4.0版本中,而最新的PSU 10.2.0.4.8則必須要求先安裝10.2.0.4.4。這些資訊在README.html中都可以找到,所以請仔細閱讀該文檔。

通常安裝PSU是比較簡單的,步驟如下:
1) 安裝PSU需要使用到opatch,在README.html中有描述該PSU需要的最低版本opatch,如果當前opatch版本過低,則需要先下載Patch 6880880,該Patch中包含最新的opatch,只需要解壓覆蓋原先的$ORACLE_HOME/OPatch目錄即可。

查看當前的opatch版本,可以使用opatch version命令。

$ opatch version

Invoking OPatch 10.2.0.5.2 

OPatch Version: 10.2.0.5.2 

OPatch succeeded.

2)安裝PSU,請仔細閱讀README.html,確認安裝命令,通常是簡單的opatch apply。

$opatch apply

3)更新資料庫,將修改過的SQL檔案應用到資料庫中,很多DBA在執行完上述安裝命令以後就不再進行這一步,那麼實際上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,則需要執行@catbundle.sql opsu apply,同樣這些在README.html中都有詳細描述。

4)重新編譯CPU相關視圖。該步驟在一個資料庫上永遠只需要執行一次,是為了完成在2008年1月份第一次發布CPU補丁時的後續工作,如果在安裝以前的PSU或者CPU時執行過這個步驟那麼就可以無需再次執行,另外,即使不執行該步驟,資料庫也是正常啟動並執行,只不過意味著2008年1月份的CPU補丁沒有正常結束安裝。

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

注意:該步驟由於需要重新編譯大量視圖,因此要啟動資料庫到upgrade狀態才可以完成。也就是將引起停機時間。

4. 如何確認當前資料庫已經安裝了什麼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資料庫中會有以下顯示。

$ 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表。

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

注意:該表的內容是在上述安裝PSU步驟的第三步中運行catbundle.sql才會插入的,因此如果該步驟忘記執行,則此表中無記錄。因此我們在作資料庫健全狀態檢查的時候不但要用opatch檢查當前資料庫最新的PSU補丁,也要檢查registry$history表,以確認其它DBA是否正確地完成了PSU的安裝。

如果多個PSU的安裝都忘記了執行上述第三步,可以通過以下方法依次補作。

$ 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

更多關於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]

 

 

【轉】Oracle Database PSU/CPU

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.