实例DG应用PSU"/>
11204RAC+单实例DG应用PSU
目录
- 0、核心步骤
- 1、检查环境
- 2、下载并上传PSU
- 3、备份`GRID_HOME`、`ORACLE_HOME`
- 4、更新`OPatch`
- 5、备库打补丁
- 6、主库打补丁
- 7、备库重新恢复应用
0、核心步骤
1.主库禁用日志传送到备库
2.关闭备库,应用补丁,但不执行脚本(catpatch.sql等),启动到mount,不启用日志恢复
3.关闭主库,应用补丁,执行脚本(run catpatch/catbundle/catcpu等)
4.启动主库,重新开启日志传送到备库
5.备库开启日志恢复
6.检查补丁应用情况
1、检查环境
RAC
一节点
[grid@racbj01 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARC.dgONLINE ONLINE racbj01 ONLINE ONLINE racbj02
ora.DATA.dgONLINE ONLINE racbj01 ONLINE ONLINE racbj02
ora.LISTENER.lsnrONLINE ONLINE racbj01 ONLINE ONLINE racbj02
ora.OCR.dgONLINE ONLINE racbj01 ONLINE ONLINE racbj02
ora.asmONLINE ONLINE racbj01 Started ONLINE ONLINE racbj02 Started
ora.gsdOFFLINE OFFLINE racbj01 OFFLINE OFFLINE racbj02
ora1workONLINE ONLINE racbj01 ONLINE ONLINE racbj02
ora.onsONLINE ONLINE racbj01 ONLINE ONLINE racbj02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr1 ONLINE ONLINE racbj02
ora.cvu1 ONLINE ONLINE racbj02
ora.oc4j1 ONLINE ONLINE racbj02
ora.racbj01.vip1 ONLINE ONLINE racbj01
ora.racbj02.vip1 ONLINE ONLINE racbj02
ora.racdb.db1 ONLINE ONLINE racbj01 Open 2 ONLINE ONLINE racbj02 Open
ora.scan1.vip1 ONLINE ONLINE racbj02
[grid@racbj01 ~]$ srvctl status nodeapps
VIP racbj01vip is enabled
VIP racbj01vip is running on node: racbj01
VIP racbj02vip is enabled
VIP racbj02vip is running on node: racbj02
Network is enabled
Network is running on node: racbj01
Network is running on node: racbj02
GSD is disabled
GSD is not running on node: racbj01
GSD is not running on node: racbj02
ONS is enabled
ONS daemon is running on node: racbj01
ONS daemon is running on node: racbj02
[grid@racbj01 ~]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 30-MAR-2021 15:47:51Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 25-MAR-2021 14:32:08
Uptime 5 days 1 hr. 15 min. 43 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File /u01/app/grid/diag/tnslsnr/racbj01/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.107.174.164)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.107.174.167)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).Instance "+ASM1", status READY, has 1 handler(s) for this service...
Service "racdb" has 1 instance(s).Instance "racdb1", status READY, has 1 handler(s) for this service...
Service "racdbXDB" has 1 instance(s).Instance "racdb1", status READY, has 1 handler(s) for this service...
The command completed successfully
备库检查
SQL> select process,client_process,THREAD#,sequence#,status from v$managed_standby;PROCESS CLIENT_PROCESS THREAD# SEQUENCE# STATUS
--------------------------- ------------------------ ---------- ---------- ------------------------------------
ARCH ARCH 2 65 CLOSING
ARCH ARCH 0 0 CONNECTED
ARCH ARCH 1 141 CLOSING
ARCH ARCH 1 140 CLOSING
ARCH ARCH 1 143 CLOSING
ARCH ARCH 1 142 CLOSING
ARCH ARCH 2 64 CLOSING
ARCH ARCH 2 66 CLOSING
RFS UNKNOWN 0 0 IDLE
RFS UNKNOWN 0 0 IDLE
RFS ARCH 0 0 IDLE
RFS ARCH 0 0 IDLE
RFS LGWR 1 144 IDLE
RFS UNKNOWN 0 0 IDLE
RFS LGWR 2 67 IDLE
MRP0 N/A 2 67 APPLYING_LOG
RFS UNKNOWN 0 0 IDLE17 rows selected.
SQL> select database_role,open_mode from v$database;DATABASE_ROLE OPEN_MODE
------------------------------------------------ ------------------------------------------------------------
PHYSICAL STANDBY READ ONLY WITH APPLY
主库建一个测试表,查看是否实时同步
SYS@racdb1> create table t1 (id int,name varchar2(20));Table created.SYS@racdb1> insert into t1 values(1,'zhangsan');1 row created.SYS@racdb1> commit;Commit complete.SYS@racdb1> select * from t1;ID NAME
---------- ------------------------------------------------------------1 zhangsan
备库查询
SQL> select * from t1;ID NAME
---------- ------------------------------------------------------------1 zhangsan
每个节点的grid
、Oracle
执行下面的命令,以下输出就是没有打过补丁,为了节省篇幅,每个节点的输出就不都粘贴出来了
[grid@racbj01 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
There are no Interim patches installed in this Oracle Home.
[grid@racbj01 ~]$ $ORACLE_HOME/OPatch/opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.4
Copyright (c) 2012, Oracle Corporation. All rights reserved.Oracle Home : /u01/app/11.2.0/grid
Central Inventory : /u01/app/oraInventoryfrom : /u01/app/11.2.0/grid/oraInst.loc
OPatch version : 11.2.0.3.4
OUI version : 11.2.0.4.0
Log file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2021-03-30_16-28-06PM_1.logLsinventory Output file location : /u01/app/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2021-03-30_16-28-06PM.txt--------------------------------------------------------------------------------
Installed Top-level Products (1): Oracle Grid Infrastructure 11g 11.2.0.4.0
There are 1 products installed in this Oracle Home.There are no Interim patches installed in this Oracle Home.Rac system comprising of multiple nodesLocal node = racbj01Remote node = racbj02--------------------------------------------------------------------------------OPatch succeeded.
2、下载并上传PSU
通常情况下GI PSU
包含 DB PSU
;DB PSU
包含 CPU
实际情况以readme
为准
这里我们应用最新的PSUGI PSU31718723
(当前时间20210330
)
三个节点分别执行
[root@racbj01 ~]# mkdir /u01/soft
[root@racbj01 ~]# chown -R oracle:oinstall /u01/soft
三个节点执行,不都列出了,注意这里的权限是root
,一会要改成grid:oinstall
[oracle@racbj01 ~]$ cd /u01/soft/
[oracle@racbj01 soft]$ ll
total 1406064
-rw-r--r-- 1 root root 1319414278 Mar 30 12:19 p31718723_112040_Linux-x86-64.zip
-rw-r--r-- 1 root root 120388005 Sep 9 2020 p6880880_112000_Linux-x86-64.zip
3、备份GRID_HOME
、ORACLE_HOME
备份之前要先关闭实例和集群(一个一个来,不要影响业务)
srvctl stop instance -d databasename -n hostname
crsctl stop crs
删除grid
和oracle
用户下的audit
文件(审计文件)和xml
文件(alert
日志的xml
格式)
grid
:
cd $ORACLE_HOME/rdbms/audit
find . -mtime +7 -name "*.aud" | xargs rm -rf
cd $ORACLE_BASE/diag/asm/+asm/+ASM1/alert/
find . -mtime +7 -name "*.xml" | xargs rm -rf
oracle
:
cd $ORACLE_HOME/rdbms/audit
find . -mtime +7 -name "*.aud" | xargs rm -rf
cd $ORACLE_BASE/diag/rdbms/racdb/racdb1/alert/
find . -mtime +7 -name "*.xml" | xargs rm -rf
三个节点备份GRID_HOME
、ORACLE_HOME
,节省篇幅,只粘贴一个节点的结果,单实例dg
没有grid
就不用做相应的操作
备份gi_home
时间有点长,耐心等待
[root@racbj02 ~]# cd /u01/app/11.2.0
[root@racbj02 ~]# tar -pzcvf gihome.tar.gz grid
备份ora_home
[root@racbj02 ~]# cd /u01/app/oracle/product/11.2.0
[root@racbj02 ~]# tar -pzcvf orahome.tar.gz db_1
4、更新OPatch
备份原来的OPatch
,安装需要的OPatch
版本,只列一个节点,所有节点都要操作
[root@racbj01 ~]# mv /u01/app/11.2.0/grid/OPatch/ /u01/app/11.2.0/grid/OPatch_bak
[root@racbj01 ~]# mv /u01/app/oracle/product/11.2.0/db_1/OPatch/ /u01/app/oracle/product/11.2.0/db_1/OPatch_bak
[root@racbj01 ~]# chmod 755 /u01/soft/p6880880_112000_Linux-x86-64.zip
[root@racbj01 ~]# unzip /u01/soft/p6880880_112000_Linux-x86-64.zip -d /u01/app/11.2.0/grid
[root@racbj01 ~]# unzip /u01/soft/p6880880_112000_Linux-x86-64.zip -d /u01/app/oracle/product/11.2.0/db_1/
[root@racbj01 ~]# chown -R grid:oinstall /u01/app/11.2.0/grid/OPatch
[root@racbj01 ~]# chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1/OPatch
验证一下OPatch
版本
[grid@racbj01 ~]$ /u01/app/11.2.0/grid/OPatch/opatch version
OPatch Version: 11.2.0.3.25OPatch succeeded.
[oracle@racbj01 ~]$ /u01/app/oracle/product/11.2.0/db_1/OPatch/opatch version
OPatch Version: 11.2.0.3.25OPatch succeeded.
5、备库打补丁
在RAC+DG
的环境中打PSU
补丁,首先要在DG
的备库端进行PSU
补丁的安装,停止并shutdown
所有standby
数据库、停监听、关EM
,然后打补丁,打完补丁之后不要执行catbundle.sql psu apply
脚本。这个脚本应该在生产端执行然后通过redo
传递至灾备端。
在主库上暂停向备库传日志
SYS@racdb2> alter system set log_archive_dest_state_2=defer scope=both sid='*';System altered.
备库停库停监听
SQL> shu immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@173adg 11.2.0]$ lsnrctl stop
解压PSU
[root@173adg soft]# chown -R oracle:oinstall p31718723_112040_Linux-x86-64.zip
[oracle@173adg soft]$ unzip p31718723_112040_Linux-x86-64.zip
检测与当前环境是否冲突
[oracle@173adg soft]$ cd 31537677/
[oracle@173adg 31718723]$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 11.2.0.3.25
Copyright (c) 2021, Oracle Corporation. All rights reserved.PREREQ sessionOracle Home : /u01/app/oracle/product/11.2.0/dbhome_1
Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
OPatch version : 11.2.0.3.25
OUI version : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-03-30_18-13-43PM_1.logInvoking prereq "checkconflictagainstohwithdetail"Prereq "checkConflictAgainstOHWithDetail" passed.OPatch succeeded.
备库手动打补丁
[oracle@173adg soft]$ $ORACLE_HOME/OPatch/opatch napply -local /u01/soft/31537677/ -oh $ORACLE_HOME
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.
/bin/ld: warning: -z lazyload ignored.
/bin/ld: warning: -z nolazyload ignored.Composite patch 31537677 successfully applied.
OPatch Session completed with warnings.
Log file location: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2021-03-30_18-22-56PM_1.logOPatch completed with warnings.
上面的警告是一个内部bug可以忽略,参考
.html
备库
[oracle@173adg soft]$ $ORACLE_HOME/OPatch/opatch lspatches
31537677;Database Patch Set Update : 11.2.0.4.201020 (31537677)OPatch succeeded.
[oracle@173adg soft]$ $ORACLE_HOME/OPatch/opatch lsinventory
--太长了,粘贴一部分,结果就是应用补丁成功了22195465, 18440047, 19211433, 21515534, 20331945, 22686674, 1838453718607546, 17254374, 18315328, 31172207, 23115139, 28790634, 2139422516360112, 22195477, 17726838, 18510194, 17571306, 24766121, 1730227721842740, 17551709, 26910644, 17634921, 28566241, 25489607, 16538760--------------------------------------------------------------------------------OPatch succeeded.
备库启动数据库到mount状态,启动监听
SQL> startup mount;
ORACLE instance started.Total System Global Area 8.0973E+10 bytes
Fixed Size 2261968 bytes
Variable Size 1.1006E+10 bytes
Database Buffers 6.9793E+10 bytes
Redo Buffers 171487232 bytes
Database mounted.
[oracle@173adg soft]$ lsnrctl start
如果主库是单实例的话,下面就是停主库,停监听,打补丁,执行脚本了,启动主库监听,启动传日志,然后打开备库的实时应用,验证没问题就可以了
alter system set log_archive_dest_state_X=enable scope=bothsid=’*’
我们这里主要讨论主库是RAC
RAC
节点一修改权限(其他节点也要执行)
[root@racbj01 ~]# chown -R grid:oinstall /u01/soft/p31718723_112040_Linux-x86-64.zip
解压
[grid@racbj01 ~]$ unzip /u01/soft/p31718723_112040_Linux-x86-64.zip -d /u01/soft
6、主库打补丁
Oracle 11g 新特性 --Online Patching (Hot Patching 热补丁)说明
这里看一下RAC的Patch。如果是RAC的GI升级,或者是PSR,还是需要停机的。因为GI的升级需要停掉整个CRS。 但对数据库独立patch则可以采取滚动方式来安装。
GRID_HOME
和ORACLE_HOME
都在本地并且没有配置ACFS就可以gi和oracle
一起升级
节点一
[grid@racbj01 soft]$ echo $ORACLE_HOME
/u01/app/11.2.0/grid
root
用户执行
[root@racbj01 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /u01/soft/31718723/
Executing /u01/app/11.2.0/grid/perl/bin/perl /u01/app/11.2.0/grid/OPatch/crs/patch11203.pl -patchdir /u01/soft -patchn 31718723 -paramfile /u01/app/11.2.0/grid/crs/install/crsconfig_paramsThis is the main log file: /u01/app/11.2.0/grid/cfgtoollogs/opatchauto2021-03-31_11-12-52.logThis file will show your detected configuration and all the steps that opatchauto attempted to do on your system:
/u01/app/11.2.0/grid/cfgtoollogs/opatchauto2021-03-31_11-12-52.report.log2021-03-31 11:12:52: Starting Clusterware Patch Setup
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_paramsStopping RAC /u01/app/oracle/product/11.2.0/db_1 ...
Stopped RAC /u01/app/oracle/product/11.2.0/db_1 successfullypatch /u01/soft/31718723/29938455/custom/server/29938455 apply successful for home /u01/app/oracle/product/11.2.0/db_1
patch /u01/soft/31718723/31537677 apply successful for home /u01/app/oracle/product/11.2.0/db_1 Stopping CRS...
Stopped CRS successfullypatch /u01/soft/31718723/29938455 apply successful for home /u01/app/11.2.0/grid
patch /u01/soft/31718723/31537677 apply successful for home /u01/app/11.2.0/grid
patch /u01/soft/31718723/29509309 apply successful for home /u01/app/11.2.0/grid Starting CRS...
Installing Trace File Analyzer
CRS-4123: Oracle High Availability Services has been started.Starting RAC /u01/app/oracle/product/11.2.0/db_1 ...
Started RAC /u01/app/oracle/product/11.2.0/db_1 successfullyopatch auto succeeded.
看一下log
有没有问题,然后grid
用户和Oracle
用户执行opatch lspatches
、opatch lsinventory
,没有问题的话RAC
二节点开始打补丁
RAC
二节点(没有问题,输出跟上面一样,就不粘贴了)
[root@racbj02 ~]# /u01/app/11.2.0/grid/OPatch/opatch auto /u01/soft/31718723/
其中一个节点执行注册到数据库就行
[root@racbj01 ~]# su - oracle
[oracle@racbj01 ~]$ cd $ORACLE_HOME/rdbms/admin
[oracle@racbj01 admin]$ sqlplus /nolog
@> conn / as sysdba
Connected.
SYS@racdb1> @catbundle.sql psu apply
SYS@racdb1> quit
SELECT *FROM dba_registry_history
下面没有invaild
的
SELECT *FROM dba_registry
编译一下无效对象
SQL> @utlrp.sql
输出很长,前边略.......
DOC>#ERRORS DURING RECOMPILATION
---------------------------461 row selected.Function created.PL/SQL procedure successfully completed.Function dropped.PL/SQL procedure successfully completed.
7、备库重新恢复应用
主库(其中一个节点执行就行)
SYS@racdb2> alter system set log_archive_dest_state_2=enable scope=both sid='*';System altered.
备库
SQL> alter database recover managed standby database using current logfile disconnect from session;Database altered.
备库alert
开始了介质恢复
alter database recover managed standby database using current logfile disconnect from session
Attempt to start background Managed Standby Recovery process (racdb)
Wed Mar 31 16:04:10 2021
MRP0 started with pid=39, OS id=31918
MRP0: Background Managed Standby Recovery process started (racdb)started logmerger process
Wed Mar 31 16:04:15 2021
Managed Standby Recovery starting Real Time Apply
Parallel Media Recovery started with 32 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Media Recovery Log /u01/app/oracle/arch2_69_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_148_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_149_1067800873.arc
Completed: alter database recover managed standby database using current logfile disconnect from session
Media Recovery Log /u01/app/oracle/arch1_150_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_70_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_151_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_71_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_72_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_73_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_152_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_153_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_154_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_155_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_74_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_156_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_157_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_75_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_76_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_77_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_78_1067800873.arc
Wed Mar 31 16:04:25 2021
Media Recovery Log /u01/app/oracle/arch2_79_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_158_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_159_1067800873.arc
Media Recovery Log /u01/app/oracle/arch1_160_1067800873.arc
Media Recovery Log /u01/app/oracle/arch2_80_1067800873.arc
Media Recovery Waiting for thread 1 sequence 161 (in transit)
Recovery of Online Redo Log: Thread 1 Group 11 Seq 161 Reading mem 0Mem# 0: /u01/app/oracle/redo/group_11.320.1068138875Mem# 1: /u01/app/oracle/oradata/group_11.2952.1068138875
Media Recovery Waiting for thread 2 sequence 81 (in transit)
Recovery of Online Redo Log: Thread 2 Group 14 Seq 81 Reading mem 0Mem# 0: /u01/app/oracle/redo/group_14.323.1068138891Mem# 1: /u01/app/oracle/oradata/group_14.2958.1068138891
打开备库
SQL> alter database recover managed standby database cancel;Database altered.SQL> alter database open read only;Database altered.SQL> alter database recover managed standby database using current logfile disconnect from session;Database altered.
查看备库状态
SQL> select process,client_process,thread#,sequence#,status from v$managed_standby;PROCESS CLIENT_PROCESS THREAD# SEQUENCE# STATUS
--------------------------- ------------------------ ---------- ---------- ------------------------------------
ARCH ARCH 2 80 CLOSING
ARCH ARCH 0 0 CONNECTED
ARCH ARCH 1 158 CLOSING
ARCH ARCH 1 148 CLOSING
ARCH ARCH 1 159 CLOSING
ARCH ARCH 2 69 CLOSING
ARCH ARCH 1 160 CLOSING
ARCH ARCH 1 155 CLOSING
RFS ARCH 0 0 IDLE
RFS UNKNOWN 0 0 IDLE
RFS UNKNOWN 0 0 IDLE
RFS LGWR 1 161 IDLE
RFS ARCH 0 0 IDLE
RFS UNKNOWN 0 0 IDLE
RFS LGWR 2 81 IDLE
RFS UNKNOWN 0 0 IDLE
MRP0 N/A 1 161 APPLYING_LOG
RFS UNKNOWN 0 0 IDLE18 rows selected.
更多推荐
11204RAC+单实例DG应用PSU
发布评论