[Oracle] Data Guard CPU/PSU补丁安装详细教程
发布时间:2024-01-26 05:48:21
非Data Guard的补丁安装教程可参考《[Oracle] CPU/PSU补丁安装详细教程》,Data Guard需要Primary和Standby同时打上补丁,所以步骤更复杂一些,其主要步骤如下:
1.在Primary停止日志传输服务;
2.关闭Standby数据库,在Standby的软件上打补丁(注意:不需要为Standby数据库打补丁),启动standby为mount状态,不启用managed recovery;
3.关闭Primary,在Primary的软件和数据库本身都打上补丁;
4.启动Primary数据库,重新开启日志传输服务;
5.在Standby启动Redo Apply,这样Primary上补丁脚本就会自动同步至Standby;
6.检查Primary和Standby是否都已安装补丁。
下面是一个具体例子:
1. 在Primary停止日志传输服务
sys@EPAY>select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
sys@EPAY>show parameter log_archive_dest_3
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_3 string SERVICE=sta ASYNC VALID_FOR=(O
NLINE_LOGFILES,PRIMARY_ROLE) D
B_UNIQUE_NAME=epaybk
log_archive_dest_30 string
log_archive_dest_31 string
sys@EPAY>alter system set log_archive_dest_state_3=defer scope=both;
System altered.
2.在Standby的Oracle软件打上补丁
2.1 关闭数据库实例,listener,ASM实例等
2.2 查看opatch的版本,如果不够,就去下载最新的版本
2.3 在Standby的Oracle软件上打补丁
2.4 启动Standby到mount状态,启动listener
(注意:Standby不需要对数据库本身打补丁)
3. 在Primary上打补丁
3.1 关闭数据库实例,listener,ASM实例等
3.2 查看opatch的版本,如果不够,就去下载最新的版本
3.3 在Primary的Oracle软件上打补丁
3.4 为Primary数据库本身打补丁
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle.sql psu apply
SQL> QUIT
4. 在Primary启动日志传输服务
4.1 启动Primary listener,数据库实例等
4.2 强制注册services到listener
sys@EPAY>alter system register;
System altered.
4.3 重新启动日志传输服务
sys@EPAY>alter system set log_archive_dest_state_3=enable scope=both;
System altered.
注意:启动日志传输,在alert里有可能出现如下错误:
------------------------------------------------------------
Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
returning error ORA-16191
------------------------------------------------------------
根据错误信息的提示,应该是主库在做CPU补丁的时候把sys密码修改了,用主库的密码文件替换备库的密码文件即可解决该错误。
5. Standby启动Redo Apply
5.1 open Standby 数据库
5.2 启用Redo Apply
sys@EPAY>alter database recover managed standby database disconnect from session;
Database altered.
5.3 验证Primary和Standby是否同步
在primary端查询当前最大的归档日志序号:
sys@EPAY>select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
159
在standby端查询已传过来的归档日志:
sys@EPAY>select sequence#, applied from v$archived_log;
5.4 从alert.log可用看出同步了3个日志文件(即把在primary打的补丁同步到了standby)
alter database recover managed standby database disconnect from session
Attempt to start background Managed Standby Recovery process (epay)
Wed Jul 10 06:03:48 2013
MRP0 started with pid=29, OS id=15030
MRP0: Background Managed Standby Recovery process started (epay)
started logmerger process
Wed Jul 10 06:03:53 2013
Managed Standby Recovery not using Real Time Apply
Wed Jul 10 06:04:01 2013
Parallel Media Recovery started with 32 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Wed Jul 10 06:04:01 2013
Completed: alter database recover managed standby database disconnect from session
Media Recovery Log /data/oradata/epay/archivelog/1_157_814716635.dbf
Media Recovery Log /data/oradata/epay/archivelog/1_158_814716635.dbf
Media Recovery Log /data/oradata/epay/archivelog/1_159_814716635.dbf
Media Recovery Waiting for thread 1 sequence 160 (in transit)
6. 后期检查补丁是否安装成功
6.1 在primary, standby分别指向opatch lsinventory
6.2 在数据库里检查补丁是否安装成功


猜你喜欢
- 创建主键可以有两种方式:create table 表名(字段名 类型,字段名 类型,……primary key(name));或者是crea
- 一、django中数据模型关于时间字段的认识1、 DateField :可以记录年月日,映射到数据库是 date 类型2、 DateTime
- 如何制作一个从Access数据库中读取记录的下拉菜单?看看这个例子:<% SQL = "SEL
- /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ',
- 本文实例讲述了Python多继承原理与用法。分享给大家供大家参考,具体如下:python中使用多继承,会涉及到查找顺序(MRO)、重复调用(
- Internet的规模每一百天就会增长一倍,客户希望获得7天×24小时的不间断可用性及较快的系统反应时间,而不愿屡次看到某个站点“Serve
- Socket有一个缓冲区,缓冲区是一个流,先进先出,发送和取出的可自定义大小的,如果取出的数据未取完缓冲区,则可能存在数据怠慢。其中【rec
- pytorch中的权值初始化官方论坛对weight-initilzation的讨论torch.nn.Module.apply(fn)torc
- python中return的用法1、return语句就是把执行结果返回到调用的地方,并把程序的控制权一起返回程序运行到所遇到的第一个retu
- 【原文地址】My "First Look at Orcas" Presentation 【原文发表日期】 Th
- 一、相同点dump 和 dumps 都实现了序列化load 和 loads 都实现反序列化变量从内存中变成可存储或传输的过程称之为序列化序列
- 在我遇到 SimPy 包的其中一位创始人 Klaus Miller 时,从他那里知道了这个包。Miller 博士阅读过几篇提出使用 Pyth
- 0. 准备相关表来进行接下来的测试相关建表语句请看:https://github.com/YangBaohust/my_sqluser1表,
- 本文做的是基于opencv将视频帧转成图片输出,由于一个视频包含的帧数过多,经常我们并不是需要它的全部帧转成图片,因此我们希望可以设置每隔多
- 本文实例为大家分享了three.js 全景重力感应的具体代码,供大家参考,具体内容如下实现three.js 全景图 demo使用three.
- 首先看官网的DataFrame.plot( )函数DataFrame.plot(x=None, y=None, kind='line
- 前言如果我们的应用在启动的时候需要对数据库进行初始化(比如建表等), 可以通过读取.sql文件内容直接执行. 但是, 这样会带出一个问题:在
- 1.跨域原理1. 首先浏览器安全策略限制js ajax跨域访问服务器2. 如果服务器返回的头部信息中有当前域:// 允许 http://lo
- Django测试框架非常简单,首选方法是使用python标准库中的unittest模块。Writing testsDjango的单元测试使用
- 一、前言最近趁空闲之余,在对MySQL数据库进行插入数据测试,对于如何快速插入数据的操作无从下手,在仅1W数据量的情况下,竟花费接近47s,