码迷,mamicode.com
首页 > 其他好文 > 详细

给11gR2 Dataguard打psu补丁的步骤及注意事项

时间:2015-11-06 16:15:32      阅读:639      评论:0      收藏:0      [点我收藏+]

标签:

参考文档278641.1

0.备份
备主备库的spfile
备份主库的数据

1.在主库上暂停向备库传日志
alter system set log_archive_dest_state_X=defer scope=both sid=‘*‘

2.关闭备库以及备库监听,打上psu;不需要执行catpatch/catbundle/catcpu这些脚本;打完补丁后,将备库启动到mount状态,启动备库监听
(1)关闭数据库及监听
shutdown immediate;
lsnrctl stop

集群的环境关闭命令如下:
srvctl stop database -d dbname
srvctl stop listener -n nodehost1 -l lsnr_name
srvctl stop listener -n nodehost2 -l lsnr_name

(2)打psu补丁
opatch apply (注意要看psu文档上面需要的opatch版本要求,如果不满足,需要去下载6880880 opatch的最新版本)
注意一点,如果没有完全退出sqlplus的话,那么apply的时候会报错:
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:
Following executables are active :
/u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1

解决方法是 :
fuser /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1
再kill -9 显示的第一个值

(3)启动数据库到mount状态,启动监听
startup mount
lsncrctl start


3.关闭主库以及主库监听,打上psu,执行catpatch/catbundle/catcpu这些脚本;
(1)关闭数据库和监听
shutdown immediate
lsnrctl stop

集群的环境关闭命令如下:
srvctl stop database -d dbname
srvctl stop listener -n nodehost1 -l lsnr_name
srvctl stop listener -n nodehost2 -l lsnr_name

(2)opatch apply

(3)执行脚本
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
startup restrict
@catbundle.sql psu apply
@utlrp.sql

注意一点:
如果是普通的不得,执行:
SQL>@catupgrade

如果是安全补丁,执行:
SQL>@catcpu

4.启动主库监听,启动向备库传递日志
lsnrctl start
集群用下面的命令给每个节点启动
srvctl start database -d dbname
srvctl start service -d dbname
srvctl start listener -n nodehost1 -l lsnr_name

打开主库让其他进程也可以访问
alter system disable restricted session;

alter system set log_archive_dest_state_X=enable scope=both sid=‘*‘

这个时候可以在备库的alert日志上面看到类似:
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_990_6ampq53c1_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_991_6ampn54l3_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_992_6apmp561o_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_993_6ampp572b_.arc‘
Thu Nov 6 11:55:20 2016
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_994_6ampz58i1_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_995_6ampa59z8_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_996_6apma68p0_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_997_6amps572b_.arc‘
Thu Nov 6 11:59:26 2016 
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_998_6amps60c1_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_999_6ampz61l3_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_1000_6apmp621o_.arc‘
RFS[1]: Archived Log: ‘/0u1/archivelogdir/pmis_STD/archivelog/2015_11_06/o1_mf_1_1001_6amp652b_.arc‘
Media Recovery Waiting for thread 1 sequence 1002


5.打开备库的 apply/managed recovery
直到看到Media Recovery Waiting for thread 1 sequence 1002 这种信息,表示已经把日志恢复完成,这个时候可以切换到active dataguard的模式


alter database recover managed standby database cancel;

如果没有执行上面的命令,直接alter database open的话,会报错如下:

ORA-10456: cannot open standby database; media recovery session may be in progress

 

所以正确的步骤是:

alter database recover managed standby database cancel;
alter database open;
alter database recover managed standby database using current logfile disconnect ;

再查询状态:
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
NOIDA MOUNTED

6.检查补丁情况,在主备库都要检查
opatch lsinventory

给11gR2 Dataguard打psu补丁的步骤及注意事项

标签:

原文地址:http://www.cnblogs.com/suredandan/p/4942691.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!