Oracle RAC 12.2.0.1打補丁Patch 30920127(Apr 2020)

環境介紹:java

Oracle RAC版本:12.2.0.1(兩節點)node

操做系統版本:CentOS7.4 64bit sql

1、補丁環境準備

1.1 上傳安裝包

p6880880_122010_Linux-x86-64數據庫

p30920127_122010_Linux-x86-64session

1.2 確保OPatch utility版本

Patch 30920127要求Opatch工具爲12.2.0.1.19及更高(gird和Oracle用戶均須要確認)oracle

1.2.1備份原來的OPatch utility

root用戶執行,兩節點均需執行app

```mv /u01/app/12.2.0/grid/OPatch /u01/app/12.2.0/grid/OPatch_bak
mv /u01/app/oracle/product/12.2.0/db_1/OPatch /u01/app/oracle/product/12.2.0/db_1/OPatch_bakide

##### 1.2.2 安裝新的OPatch utility

> root用戶執行,兩節點均需執行

unzip /tmp/p6880880_122010_Linux-x86-64.zip -d /u01/app/12.2.0/grid
unzip /tmp/p6880880_122010_Linux-x86-64.zip -d /u01/app/oracle/product/12.2.0/db_1/
chown grid:oinstall -R /u01/app/12.2.0/grid/OPatch
chown oracle:oinstall -R /u01/app/oracle/product/12.2.0/db_1/OPatch工具

##### 1.2.3 確認版本

> grid用戶執行,兩節點均需執行

$ORACLE_HOME/OPatch/opatch versionpost

#### 1.2 驗證Oracle Inventory並保存(打完補丁以後對比)

> 分別用戶Oracle和grid用戶在兩個節點執行,

$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

#### 1.3 解壓補丁包到指定目錄

> root用戶在兩個節點執行

unzip /tmp/p30920127_122010_Linux-x86-64.zip -d /PSU/
chmod 777 -R /PSU/

#### 1.4衝突檢查

> 在兩個節點執行,確保沒用補丁衝突

檢查grid補丁(grid用戶)

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/30886680
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/30882603
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/30869447
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/26839277
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/30888810

檢查db補丁(oracle用戶)

$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/30886680
$ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /PSU/30920127/30882603

#### 1.5空間檢查

檢查Grid空間(grid用戶),確保空間足夠

cat /tmp/patch_list_gihome.txt
/PSU/30920127/30886680
/PSU/30920127/30882603
/PSU/30920127/30869447
/PSU/30920127/26839277
/PSU/30920127/30888810
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt

檢查db空間(oracle用戶),確保空間足夠

cat /tmp/patch_list_dbhome.txt
/PSU/30920127/30886680
/PSU/30920127/30882603
$ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt

### 2、安裝補丁

#### 2.1打補丁

> Grid home和db home均安裝在對應的節點上,沒用配置ACFS
>
> root用戶分別在兩個節點執行,須要等到一個節點執行完成並確認成功後再在第二個節點執行
>
>

/u01/app/12.2.0/grid/OPatch/opatchauto apply /PSU/30920127

OPatchauto session is initiated at Tue May 5 07:40:47 2020

System initialization log file is /u01/app/12.2.0/grid/cfgtoollogs/opatchautodb/systemconfig2020-05-05_07-40-53AM.log.

Session log file is /u01/app/12.2.0/grid/cfgtoollogs/opatchauto/opatchauto2020-05-05_07-43-06AM.log
The id for this session is WLQR

Executing OPatch prereq operations to verify patch applicability on home /u01/app/12.2.0/grid

Executing OPatch prereq operations to verify patch applicability on home /u01/app/oracle/product/12.2.0/db_1
Patch applicability verified successfully on home /u01/app/oracle/product/12.2.0/db_1

Patch applicability verified successfully on home /u01/app/12.2.0/grid

Verifying SQL patch applicability on home /u01/app/oracle/product/12.2.0/db_1
SQL patch applicability verified successfully on home /u01/app/oracle/product/12.2.0/db_1

Preparing to bring down database service on home /u01/app/oracle/product/12.2.0/db_1
Successfully prepared home /u01/app/oracle/product/12.2.0/db_1 to bring down database service

Bringing down CRS service on home /u01/app/12.2.0/grid
Prepatch operation log file location: /u01/app/grid/crsdata/rac1/crsconfig/crspatch_rac1_2020-05-05_07-43-54AM.log
CRS service brought down successfully on home /u01/app/12.2.0/grid

Performing prepatch operation on home /u01/app/oracle/product/12.2.0/db_1
Perpatch operation completed successfully on home /u01/app/oracle/product/12.2.0/db_1

Start applying binary patch on home /u01/app/oracle/product/12.2.0/db_1
Binary patch applied successfully on home /u01/app/oracle/product/12.2.0/db_1

Performing postpatch operation on home /u01/app/oracle/product/12.2.0/db_1
Postpatch operation completed successfully on home /u01/app/oracle/product/12.2.0/db_1

Start applying binary patch on home /u01/app/12.2.0/grid
Binary patch applied successfully on home /u01/app/12.2.0/grid

Starting CRS service on home /u01/app/12.2.0/grid
Postpatch operation log file location: /u01/app/grid/crsdata/rac1/crsconfig/crspatch_rac1_2020-05-05_08-03-46AM.log
CRS service started successfully on home /u01/app/12.2.0/grid

Preparing home /u01/app/oracle/product/12.2.0/db_1 after database service restarted
No step execution required.........

Trying to apply SQL patch on home /u01/app/oracle/product/12.2.0/db_1
SQL patch applied successfully on home /u01/app/oracle/product/12.2.0/db_1

OPatchAuto successful.

--------------------------------Summary--------------------------------

Patching is completed successfully. Please find the summary as follows:

Host:rac1
RAC Home:/u01/app/oracle/product/12.2.0/db_1
Version:12.2.0.1.0
Summary:

==Following patches were SKIPPED:

Patch: /PSU/30920127/30869447
Reason: This patch is not applicable to this specified target type - "rac_database"

Patch: /PSU/30920127/26839277
Reason: This patch is not applicable to this specified target type - "rac_database"

Patch: /PSU/30920127/30888810
Reason: This patch is not applicable to this specified target type - "rac_database"

==Following patches were SUCCESSFULLY applied:

Patch: /PSU/30920127/30882603
Log: /u01/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2020-05-05_07-45-26AM_1.log

Patch: /PSU/30920127/30886680
Log: /u01/app/oracle/product/12.2.0/db_1/cfgtoollogs/opatchauto/core/opatch/opatch2020-05-05_07-45-26AM_1.log

Host:rac1
CRS Home:/u01/app/12.2.0/grid
Version:12.2.0.1.0
Summary:

==Following patches were SKIPPED:

Patch: /PSU/30920127/26839277
Reason: This patch is already been applied, so not going to apply again.

==Following patches were SUCCESSFULLY applied:

Patch: /PSU/30920127/30869447
Log: /u01/app/12.2.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2020-05-05_07-52-27AM_1.log

Patch: /PSU/30920127/30882603
Log: /u01/app/12.2.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2020-05-05_07-52-27AM_1.log

Patch: /PSU/30920127/30886680
Log: /u01/app/12.2.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2020-05-05_07-52-27AM_1.log

Patch: /PSU/30920127/30888810
Log: /u01/app/12.2.0/grid/cfgtoollogs/opatchauto/core/opatch/opatch2020-05-05_07-52-27AM_1.log

Patching session reported following warning(s):


[WARNING] The database instance 'orcl1' from '/u01/app/oracle/product/12.2.0/db_1', in host'rac1' is not running. SQL changes, if any, will not be applied.
To apply. the SQL changes, bring up the database instance and run the command manually from any one node (run as oracle).
Refer to the readme to get the correct steps for applying the sql changes.

OPatchauto session completed at Tue May 5 08:17:22 2020
Time taken to complete the session 36 minutes, 35 seconds

#### 2.2執行對應的sql

> 因爲是sql語句,全部只須要在一個節點(oracle用戶)執行
>
> 咱們環境是**Standalone DB**,沒用使用**CDB/PDB**

補丁打完以後,數據庫已經啓動

% cd $ORACLE_HOME/OPatch

% ./datapatch -verbose

檢查補丁日誌信息確認日誌沒用異常

$ORACLE_BASE/cfgtoollogs/sqlpatch/30886680/

執行對應的sql

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql
SQL > @dbmsjdev.sql
SQL > exec dbms_java_dev.disable

若是配置了rman的環境,還須要UPGRADE CATALOG;

### 3、驗證補丁集及集羣狀態

#### 3.1 確認補丁集

> grid和oracle用戶分別在兩個節點執行,並和以前的作對比

$ORACLE_HOME/OPatch/opatch lsinventory -detail -oh $ORACLE_HOME

/u01/12.2.0/grid/bin/crsctl query crs releasepatch

#### 3.2確認集羣狀態

crsctl stat res -t

### 4、遇到的問題

#### 4.1 CRS-6706 Patch leve不一致

1.Run the following command as the root user to complete the patching set up behind the scenes:

#GI_HOME/bin:>  ./clscfg -localpatch

2.Run the following command as the root user to lock the GI home:

#GI_HOME/crs/install:>  ./rootcrs.sh -lock

3.Run the following command as the root user to start the GI:

#GI_HOME/bin:>  ./crsctl start crs

#### 4.2 GSMADMIN_INTERNAL.DBMS_GSM_POOLADMIN is invalid

錯誤信息:

Error at line 503: Warning: Package Body created with compilation errors.
    Error at line 6801: Warning: Package Body created with compilation errors.
    Error at line 6808: 4675/4   PL/SQL: Statement ignored
    Error at line 6809: 4675/23  PLS-00302: component 'ISNONORACLECLOUD' must be declared
    Error at line 6831: 4675/4   PL/SQL: Statement ignored
    Error at line 6832: 4675/23  PLS-00302: component 'ISNONORACLECLOUD' must be declared
    Error at line 7485: Warning: Trigger created with compilation errors.
    Error at line 7492: 0/0      PLS-00905: object GSMADMIN_INTERNAL.DBMS_GSM_POOLADMIN is invalid
    Error at line 7509: Warning: Trigger created with compilation errors.
    Error at line 7516: 0/0      PLS-00905: object GSMADMIN_INTERNAL.DBMS_GSM_POOLADMIN is invalid
    Error at line 7523: Warning: Trigger created with compilation errors.
    Error at line 7530: 0/0      PLS-00905: object GSMADMIN_INTERNAL.DBMS_GSM_POOLADMIN is invalid

解決方法:

GDS Objects are Invalid - GSMADMIN_INTERN (文檔 ID 2425776.1)

GSMADMIN and LBACSYS Objects Invalid After Create New 12c Database (文檔 ID 2284611.1)

Execute following steps to compile the invalid objects:

$sqlplus "/as sysdba"SQL> spool fix_cat_logfile.txtSQL> startup upgradeSQL > @?/rdbms/admin/catalog.sqlSQL > @?/rdbms/admin/catproc.sqlSQL > @?/rdbms/admin/utlrp.sqlSQL> spool off

相關文章
相關標籤/搜索