Oracle資料庫opatch補丁操作流程_oracle

來源:互聯網
上載者:User

一、 升級前準備工作

1、 確認資料庫版本

使用dba登陸查詢當前資料庫的版本

SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi PL/SQL Release 10.2.0.5.0 - Production CORE 10.2.0.5.0 Production TNS for 64-bit Windows: Version 10.2.0.5.0 - Production NLSRTL Version 10.2.0.5.0 – Production

2、 查詢補丁安裝資訊

SQL> select * from dba_registry_history;

沒有任何記錄一般是未安裝補丁,也可以在環境設定以後用opatch lsinventory opatch 命令查詢當前補丁安裝情況。

3、 查詢資料庫失效對象個數,這個數字記下來記為N1

SQL> SELECT sum(OBJECT_NAME)N1 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';

如果存在失效對象最好先編譯一遍

Sql >@?/rdbms/admin/utlrp.sql 

編譯完成後重新執行下下面語句,查看當前的實效對象記為N2

SQL> SELECT sum(OBJECT_NAME)N2 FROM DBA_OBJECTS WHERE STATUS= 'INVALID';

SQL> SELECT OBJECT_NAME FROM DBA_OBJECTS WHERE STATUS= 'INVALID';--將該結果存入excel或者表中,便於補丁完後進行核對。

4、 補丁類型

Oracle資料庫補丁一般分為兩種CPU和PSU補丁。

Oracle PSU的全稱是Patch Set Update,Oracle對於其產品每個季度發行一次的補丁包,包含了bug的修複。Oracle選取被使用者下載數量多,且被驗證過具有較低風險的補丁放入到每個季度的PSU中。在每個PSU中不但包含Bug的修複而且還包含了最新的CPU。PSU通常隨CPU一起發布。PSU通常是增量的,大部分PSU可以直接安裝,但有些PSU則必須要求安裝了上一 個版本的PSU之後才能繼續安裝,要仔細看各個PSU的Readme文檔。

Oracle CPU的全稱是Critical Patch Update, Oracle對於其產品每個季度發行一次安全補丁包,通常是為了修複產品中的安全隱患。CPU是累積的(Cumulative),即最新的CPU補丁已經包含以往的CPU補丁,所以只要安裝最新的CPU補丁即可。
安全性漏洞整改時我們要安裝的是CPU補丁。

5、 查詢補丁資訊

登陸oracle官網安全專題http://www.oracle.com/technetwork/topics/security點擊learn More,找到Critical Path Update Advisory

開啟以後可以看到oracle發布的補丁的列表,裡麵包含了oracle產品發布的補丁。

6、 補丁下載

例如我們當前的oracle的版本為10.2.0.5,該版本的最後更新補丁為2013年 7月份,點擊上圖紅色連結後可以看到10.2.0.5的資料庫補丁。

註:下載使用metalink的帳號,依照伺服器的類型下載相應版本的補丁即可。如果沒有oracle 的metalink帳號無法下載補丁。

7、 Database Backup工作

在補丁升級前做好資料庫的備份工作,使用rman或者匯出資料檔案方式進行資料庫的全備。條件允許的情況下作業系統最好也進行一次備份。

所有以上操作做完後我們可以進行補丁安裝工作了。

二、 補丁安裝操作

1、 閱讀補丁安裝要求

每個補丁下載後的壓縮包均會包含一份README.html 在安裝前需要仔細閱讀。一般會標明該補丁適用的資料庫版本和作業系統版本,修複了哪些BUG等,還會有相關的提示資訊。

2、 環境設定

2.1、Windows環境下

進入電腦屬性→進階系統設定→系統屬性→環境變數


編輯path在path末尾加上%ORACLE_HOME%\OPatch或者在cmd 下set path=%path%;%ORACLE_HOME%\OPatch;

2.2、Linux下的環境變數設定

使用oracle 安裝使用者,設定ORACLE_HOME以後export PATH=$ORACLE_HOME/OPatch:$PATH。

2.3、OPATCH命令測試

環境變數設定成功後測試OPatch命令是否可用,終端下opatch –help,可以看到相關資訊表示環境變數設定成功。

3、 查詢補丁安裝資訊

作業系統下查看當前補丁安裝情況opatch lsinventory –patch

4、 停掉監聽和oracle服務

4.1、Windows下關閉服務

在服務裡關閉Oracle相關服務進程,停掉監聽和oracle服務。關閉PLSQL用戶端,關閉SQLPLUS介面。

4.2、Linux下關閉服務

shutdown 掉所有執行個體,關閉監聽和oracle 相關進程。如果有安裝GI和其他使用Oracle 的應用一併停止,退出SQLPLUS介面。

5、 安裝補丁

在補丁目錄下執行opatch apply。例如我的補丁解壓在E:\13460968,那就先CD到該目錄,然後執行opatch apply

注意:windows下有時候會出現所有oracle進程關閉,但是命令執行後依然會出現D:\oracle\product\10.2.0\db_1\bin\oci.dll 佔用的錯誤。

linux下出現進程佔用時一般是sqlplus 進程未關閉,可以用fuser查詢是什麼使用者佔用,但是強制kill時候資料庫啟動的時候可能會報錯。

去到該目錄找到該檔案改名,例如改成oci.dllbak,如果執行過補丁後援動作記得改回來,重新執行opatch apply。

選擇y,下一步等待補丁安裝完畢即可。

6、 啟動資料庫

Windows先在服務中啟動oracle的服務和監聽。以sysdba登陸系統。

Linux 下正常啟動oracle執行個體和監聽。以sysdba登陸系統。

7、 執行指令碼,更新補丁資訊到資料庫

執行補丁包中的目錄下的指令碼,等待指令碼運行完畢即可。Linux找到補丁目錄執行即可。

sql>@E:\13460968\files\Bundle\Patch14\catcpu.sql

注意:不同補丁集位置可能有所不同,但一般都是有該指令碼。

8、 編譯失效對象,執行以下語句

Sql >@?/rdbms/admin/utlrp.sql



注意:大部分失效對象錯誤是可以忽略的,具體類型可以用如下命令去檢查。

SQL> SELECT sum (OBJECT_NAME)N3 FROM DBA_OBJECTS WHERE STATUS='INVALID'; 

查看N3和第一張第3節的N2比對下,看是否新增失效對象,如果有查看具體的失效對象是什麼,利用第一章節3小節得到的列表比對,如果不能處理諮詢資料庫管理員處理。

9、 查詢補丁更新的資訊

select * from dba_registry_history;

可以查看到剛剛安裝的補丁的相關資訊。(這裡我安裝了一次,卸載了一次,最後是剛剛安裝成功的資訊都記錄到了資料庫)。命令列下執行Opatch lsinventory opatch

整個安裝流程結束,資料庫正常。

三、 復原操作

一般情況下在不確定問題原因的情況下諮詢DBA進行檢查,確定問題原因,在無法查證原因的情況下可以回退,具體的復原操作命令如下。

1、如果補丁應用後資料庫異常或者發生BUG,可以利用Opatch復原補丁更新的操作。

2、關閉oracle相關服務,參照第二節2小節設定環境變數,執行如下命令,紅色部分為安裝補丁的ID。

opatch rollback -id 13460968

3、執行完畢後 啟動oracle相關服務,windows記得恢複重新命名的dll檔案。

4、查詢資料庫是否可以正常啟動。

5、復原完畢以後使用sysdba使用者執行roolback指令碼

Sql>@E:\13460968\files\Bundle\Patch14\ catcpu_rollback.sql

6、檢查資料庫是否正常。

注意:資料庫補丁升級工作需要停應用和相關服務,在升級前一定要進行資料庫的備份工作。

以上所述是小編給大家介紹的Oracle資料庫opatch補丁操作流程,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.