Upgrade Oracle Database 12c Release 2(12.2) RAC on RHEL7.3
-- [ RU: 26610291 (GRID INFRASTRUCTURE RELEASE UPDATE 12.2.0.1.170814) ]
1. 解压补丁包
unzip p26610291_122010_Linux-x86-64.zip -d /ups/soft/
2. 更新opatch工具包
su - root mv /ups/oracle/12.2/grid/OPatch /ups/oracle/12.2/grid/OPatch_20171010 cd /ups/soft unzip p6880880_122010_Linux-x86-64.zip -d /ups/oracle/12.2/grid chown -R grid:oinstall /ups/oracle/12.2/grid/OPatch chmod -R +x /ups/oracle/12.2/grid/OPatch su - oracle cd /ups/soft mv $ORACLE_HOME/OPatch $ORACLE_HOME/OPatch_$(date +%Y%m%d) unzip p6880880_122010_Linux-x86-64.zip -d /ups/oracle/database/product/12.2/db_1/
3. Run OPatch Conflict Check
For Grid Infrastructure Home, as home user: su - grid $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609817 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609966 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/25586399 For Database home, as home user: su - oracle $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609817 $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /ups/soft/26610291/26609966
4. Run OPatch SystemSpace Check
For Grid Infrastructure Home, as home user: su - grid cat >> /tmp/patch_list_gihome.txt << EOF /ups/soft/26610291/25586399 /ups/soft/26610291/26609966 /ups/soft/26610291/26609817 EOF $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_gihome.txt For Database home, as home user: su - oracle cat >> /tmp/patch_list_dbhome.txt << EOF /ups/soft/26610291/26609966 /ups/soft/26610291/26609817 EOF $ORACLE_HOME/OPatch/opatch prereq CheckSystemSpace -phBaseFile /tmp/patch_list_dbhome.txt
5. 检查系统软件包是否缺失
su - grid $ORACLE_HOME/OPatch/opatch prereq CheckSystemCommandAvailable -phBaseDir /ups/soft/26610291/26609817 [grid@orc2 ~]$ $ORACLE_HOME/OPatch/opatch prereq CheckSystemCommandAvailable -phBaseDir /ups/soft/26610291/26609817 Oracle Interim Patch Installer version 12.2.0.1.9 Copyright (c) 2017, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /ups/oracle/12.2/grid Central Inventory : /ups/oracle/oraInventory from : /ups/oracle/12.2/grid/oraInst.loc OPatch version : 12.2.0.1.9 OUI version : 12.2.0.1.4 Log file location : /ups/oracle/12.2/grid/cfgtoollogs/opatch/opatch2017-10-10_21-41-19PM_1.log Invoking prereq "checksystemcommandavailable" Prereq "checkSystemCommandAvailable" for patch 26609817 failed. The details are: Missing command :fuser #如上缺少fuser命令,则安装该软件包再进行升级 # 检查命令软件包名称 yum provides "fuser" Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. rhel-Packages/filelists_db | 3.3 MB 00:00:00 psmisc-22.20-11.el7.x86_64 : Utilities for managing processes on your system Repo : rhel-Packages Matched from: Filename : /usr/sbin/fuser # 发现缺少psmisc软件包 yum -y install psmisc
6. opatchauto安装RU补丁包
opatchauto su - root 2.6.1 Add the directory containing the opatchauto to the $PATH environment variable. For example: export PATH=$PATH:/ups/oracle/12.2/grid/OPatch 2.6.2 To patch the GI home and all Oracle RAC database homes of the same version: /ups/oracle/12.2/grid/OPatch/opatchauto apply /ups/soft/26610291 2.6.3 To patch only the GI home: opatchauto apply <UNZIPPED_PATCH_LOCATION>/26610291 -oh <GI_HOME> 2.6.4 To patch one or more Oracle RAC database homes: opatchauto apply <UNZIPPED_PATCH_LOCATION>/26610291 -oh <oracle_home1_path>,<oracle_home2_path> 2.6.5 To roll back the patch from the GI home and each Oracle RAC database home: # opatchauto rollback <UNZIPPED_PATCH_LOCATION>/26610291 2.6.6 To roll back the patch from the GI home: # opatchauto rollback <UNZIPPED_PATCH_LOCATION>/26610291 -oh <path to GI home> 2.6.7 To roll back the patch from the Oracle RAC database home: # opatchauto rollback <UNZIPPED_PATCH_LOCATION>/26610291 -oh <oracle_home1_path>,<oracle_home2_path>
7. 结果检查
sqlplus "/ as sysdba" set lines 168 pages 999 col DESCRIPTION for a40 col status for a10 col version for a10 select patch_id,PATCH_UID,STATUS,VERSION,BUNDLE_ID,to_char(ACTION_TIME,'yyyy-mm-dd hh24:mi:ss') ACTION_TIME,DESCRIPTION from dba_registry_sqlpatch; PATCH_ID PATCH_UID STATUS VERSION BUNDLE_ID ACTION_TIME DESCRIPTION ---------- ---------- ---------- ------------ ---------- ------------------- ---------------------------------------- 26609817 21483023 SUCCESS 12.2.0.1 170814 2017-10-11 09:37:18 DATABASE RELEASE UPDATE 12.2.0.1.170814 SQL>