【PSU】Oracle打PSU及解除安裝PSU(單例項)
一、 規劃
資料庫版本: Oracle 11.2.0.4 單例項
作業系統: Redhat 6.5 64-bit
PSU: p28204707_112040_Linux-x86-64.zip
OPatch: p6880880_112000_Linux-x86-64.zip
二、 思路清晰
1. 打PSU
step1: 打 PSU 前環境檢查
step2: 打 PSU 前全庫備份
step3: 上傳 PSU 包
step4: 閱讀 README.html
step5: 如果有必要,更新 Opatch
step6: 軟體打 PSU
step7: database 打 PSU
step8: 打 PSU 後檢查
2. 解除安裝PSU
step1: 解除安裝軟體 PSU
step2: 解除安裝 database PSU
step3: 解除安裝 PSU 後檢查
三、 注意事項
1. 閱讀Readme 文件
每個CPU/PSU 都有一個 Readme 文件,關於該 CPU/PSU 的資訊都在 Readme 文件中,再打 CPU/PSU 之前一定要仔細閱讀。
2. Opatch
打PSU 需要用到 Opatch 工具。 Opatch 的版本必須符合補丁包 readme 文件中版本要求,否則需要升級 Opatch 版本。
檢視opatch 版本
$ cd $ORACLE_HOME/OPatch
$ ./opatch version
四、 打PSU 前準備工作
1. 檢查instance 狀態
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
orcl OPEN
2. 檢查資料庫版本
SQL> select * from v$version;
BANNER
-----------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE 11.2.0.4.0 Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
3. 檢視PSU 情況
SQL> set linesize 200
SQL> col comments for a30
SQL> select ACTION_TIME, ACTION, COMMENTS from sys.DBA_REGISTRY_HISTORY;
ACTION_TIME ACTION COMMENTS
------------------------------- --------------- -----------------
24-AUG-13 12.03.45.119862 PM APPLY Patchset 11.2.0.2.0
30-JUL-18 10.04.26.133727 AM APPLY Patchset 11.2.0.2.0
4. 檢視無效物件
SQL> select count(*) from dba_objects where status<>'VALID';
SQL> select object_name,object_type,owner,status from dba_objects where status<>'VALID';
5. 確定定當前存在的one-off 補丁是否和 PSU 衝突
$ unzip p28204707_112040_Linux-x86-64.zip
$ cd 28204707
$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
6. 資料庫備份
建議在打補丁之前對資料庫進行RMAN 全庫備份,避免打補丁出現意外,可以從備份中進行恢復。
五、 打補丁
1. 上傳補丁包,解壓
$ unzip p28204707_112040_Linux-x86-64.zip
2. 檢視當前OPatch 版本
$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch/
$ ./opatch version
OPatch Version: 11.2.0.3.4
3. 更新Opatch
如果發現Opatch 版本低,下載最新的 Opatch ,覆蓋原來的 Opatch
$ ls
p6880880_112000_Linux-x86-64.zip
$ mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_bak20200804
$ cp -r OPatch $ORACLE_HOME/
$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch
$ ./opatch version
OPatch Version: 11.2.0.3.18
4. 打PSU
1) 關閉Instance 和 listener
SQL> shutdown immediate;
SQL> exit
$ lsnrctl stop
2) 檢視當前PSU 版本
$ $ORACLE_HOME/OPatch/opatch lsinv
3) 安裝PSU (軟體 PSU )
$ pwd
/home/oracle/28204707
$ $ORACLE_HOME/OPatch/opatch apply
最後可能會有warnings ,可以忽略。如果是 error 就不能忽略。
4) 安裝PSU ( database PSU )
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
5) 如果在之前的PSU 中有 OJVM PSU ,那麼我們在執行完 catbundle.sql 後 可以看到一些無效的JAVA 類,在這種情況下,執行以下命令
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
6) 檢查補丁日誌看看有沒有報錯
$cd /u01/app/oracle/cfgtoollogs/catbundle
catbundle_PSU_ <database SID> _APPLY_ <TIMESTAMP> .log
catbundle_PSU_ <database SID> _GENERATE_< TIMESTAMP> .log
7) 檢查
$ cd /u01/app/oracle/product/11.2.0/db_1/OPatch
$ ./opatch lsinv
Patch 28204707: applied on Tue Aug 04 13:15:43 EDT 2020
Unique Patch ID: 22491169
Patch description: "Database Patch Set Update : 11.2.0.4.181016 (28204707) "
Created on 19 Sep 2018, 03:24:06 hrs PST8PDT
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from DBA_REGISTRY;
SQL> select ACTION_TIME, ACTION, COMMENTS from DBA_REGISTRY_HISTORY;
SQL> select owner,object_name,object_type,status from dba_objects where status<>'VALID';
SQL> select count(*) from dba_objects where status<>'VALID';
六、 解除安裝PSU
1. 解除安裝軟體PSU
1) 檢查檔案是否存在
$ORACLE_HOME/rdbms/admin/catbundle_PSU_<SID>_ROLLBACK.sql
2) 關閉instance 和監聽
SQL> shutdown immediate;
SQL> exit
$ lsnrctl stop
3) 執行解除安裝命令
$ cd $ORACLE_HOME/OPatch
$ ./ opatch rollback -id 28204707
最後可能會有warnings ,可以忽略。如果是 error 就不能忽略。
2. 解除安裝database PSU
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle_PSU_ <SID> _ROLLBACK.sql
SQL> QUIT
3. 編譯無效物件
如果在之前的PSU 中有 OJVM PSU ,那麼我們在執行完 catbundle.sql 後 可以看到一些無效的JAVA 類,在這種情況下,執行以下命令
$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
4. 檢查日誌
$ cd /u01/app/oracle/cfgtoollogs/catbundle
catbundle_PSU_<database SID>_ROLLBACK_<TIMESTAMP>.log
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2709472/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【PSU】怎麼給RAC打PSU補丁
- Oracle psu查詢Oracle
- Oracle PSU 簡介Oracle
- 12C打psu
- Oracle 11G PSU 31326410 PSU apply failed 處理-拾億OracleAPPAI
- Oracle 最新PSU (Doc ID 2118136.2)Oracle
- 安裝PSU後一定要執行catbundle.sql psu apply指令碼嗎SQLAPP指令碼
- ORACLE基於單機PSU應用方案Oracle
- Oracle 11g RAC自動打GI PSU補丁Oracle
- Oracle 下載最新psu (Doc ID 2118136.2)Oracle
- 打Oracle PSU時碰到的一些問題處理Oracle
- AIX Oracle 11.2.0.4打PSU crsconfig_lib.pm line 11821解決AIOracle
- 多例項資料庫一個用PSU資料庫
- 多例項資料庫一個用PSU(轉載)資料庫
- 補丁psu、spu、cpu的意思
- oracle rac 打PSU補丁30805461兩個問題(Java版本及空間不足導致失敗)OracleJava
- Oracle 補丁那些事兒(PS、PSU、CPU、SPU、BP、DBBP…)Oracle
- OJVM+GI PSU補丁升級JVM
- GI PSU打補丁之opatch auto 自動方式分別打GI_HOME和ORACLE_HOMEOracle
- Oracle 12.2應用PSU後資料庫無法啟動Oracle資料庫
- Oracle 檢查當前資料庫CPU和PSU補丁資訊Oracle資料庫
- ORACLE 12.1.0.2 for linux7.6 應用PSU補丁31550110中的巨坑OracleLinux
- PSU的GI升級,ERROR: This patch is not applicable to GI home.ErrorAPP
- [重慶思莊每日技術分享]-PSU實施異常unable to get oracle owner forOracle
- [重慶思莊每日技術分享]-psu報錯“CheckActiveFilesAndExecutables” failedAI
- 【ERROR】Windows環境Oracle打psu後監聽啟動報錯:上下文生成失敗,找不到從屬程式集ErrorWindowsOracle
- ORACLE11GR2 RAC解除安裝ASM例項步驟OracleASM
- GI PSU滾動方式應用GI HOME和DB HOME(opatch auto together)
- Redis單例項安裝Redis單例
- ORACLE-LINUX環境字元介面單例項安裝OracleLinux字元單例
- Oracle 11G資料庫單例項安裝Oracle資料庫單例
- 在redhat7系統上為Oracle11g資料庫打PSU報CRS-4124 CRS-4000錯誤分析與追蹤RedhatOracle資料庫
- 【Oracle】ASM例項安裝入門OracleASM
- oracle 11g 單例項資料庫的安裝Oracle單例資料庫
- oracle11g安裝 單例項 系統centos7Oracle單例CentOS
- docker安裝及解除安裝Docker
- oracle 19c 安裝、解除安裝Oracle
- oracle19c安裝 單例項 系統centos7 非cdbOracle單例CentOS