DataGuard开启延时应用的测试
DataGuard开启延时应用的测试
实验环境:RHEL 6.5 + Oracle 11.2.0.4 GI、DB + Primary RAC(2 nodes)+ Standby RAC(2 nodes)
1.体验DG延时应用的效果
主库 log_archive_dest_N 参数当前设定值:
log_archive_dest_2 string SERVICE=mynas VALID_FOR=(ONLIN
E_LOGFILES,PRIMARY_ROLE) DB_UN
IQUE_NAME=mynas
我需要将其修改,增加 DELAY=N 分钟,我这里为了试验方便,设置了5分钟,实际一般都需要根据业务要求延时1天(1440)甚至更久。
alter system set log_archive_dest_2 = 'SERVICE=mynas DELAY=5 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=mynas';
设置完成之后,如果备库之前是USING CURRENT LOGFILE实时应用,那么还需要将备库应用停止重新以不加USING CURRENT LOGFILE方式启动应用,否则将会忽略这个DELAY的参数,这一点我们从主库和备库的日志均可以看到。
主库日志:
Tue Aug 15 15:19:05 2017
Archived Log entry 741 added for thread 1 sequence 287 ID 0x97764e10 dest 1:
Tue Aug 15 15:19:05 2017
WARNING: Managed Standby Recovery started with USING CURRENT LOGFILE
DELAY 5 minutes specified at primary ignored
ARC0: Standby redo logfile selected for thread 1 sequence 287 for destination LOG_ARCHIVE_DEST_2
备库日志:
Tue Aug 15 15:18:28 2017
Media Recovery Waiting for thread 1 sequence 287
Tue Aug 15 15:19:05 2017
WARNING: Managed Standby Recovery started with REAL TIME APPLY
DELAY 5 minutes specified at primary ignored
RFS[33]: Assigned to RFS process 5482
RFS[33]: Selected log 11 for thread 1 sequence 287 dbid -1785877518 branch 919999037
Tue Aug 15 15:19:06 2017
Archived Log entry 353 added for thread 1 sequence 287 ID 0x97764e10 dest 1:
ARC3: Archive log thread 1 sequence 287 available in 5 minute(s)
Tue Aug 15 15:19:06 2017
Managed Standby Recovery started with USING CURRENT LOGFILE
Ignoring previously specified DELAY 5 minutes for thread 1 sequence 287
Media Recovery Log +FRA/mynas/archivelog/2017_08_15/thread_1_seq_287.563.952096745
Media Recovery Waiting for thread 2 sequence 235
注:我建立一个每秒都会插入一条数据的测试表,可用来更清楚的去辅助验证延迟应用的设置是否生效。
因此, 需要将备库取消应用,再以不加USING CURRENT LOGFILE的方式重新开启应用,命令如下:
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
再观察主库日志:
Tue Aug 15 15:33:22 2017
Archived Log entry 743 added for thread 1 sequence 288 ID 0x97764e10 dest 1:
Tue Aug 15 15:33:22 2017
ARC0: Standby redo logfile selected for thread 1 sequence 288 for destination LOG_ARCHIVE_DEST_2
备库日志:
Tue Aug 15 15:33:22 2017
RFS[33]: Selected log 11 for thread 1 sequence 288 dbid -1785877518 branch 919999037
Tue Aug 15 15:33:23 2017
Archived Log entry 354 added for thread 1 sequence 288 ID 0x97764e10 dest 1:
ARC2: Archive log thread 1 sequence 288 available in 4 minute(s)
可以看到延迟应用的设置已经生效。
Tue Aug 15 15:36:11 2017
RFS[33]: Selected log 11 for thread 1 sequence 289 dbid -1785877518 branch 919999037
Tue Aug 15 15:36:12 2017
Archived Log entry 355 added for thread 1 sequence 289 ID 0x97764e10 dest 1:
ARC3: Archive log thread 1 sequence 289 available in 5 minute(s)
Tue Aug 15 15:36:14 2017
RFS[34]: Assigned to RFS process 6921
RFS[34]: Selected log 21 for thread 2 sequence 235 dbid -1785877518 branch 919999037
Tue Aug 15 15:36:15 2017
Archived Log entry 356 added for thread 2 sequence 235 ID 0x97764e10 dest 1:
ARC0: Archive log thread 2 sequence 235 available in 3 minute(s)
Tue Aug 15 15:36:20 2017
Media Recovery Delayed for 3 minute(s) (thread 2 sequence 235)
Tue Aug 15 15:39:17 2017
Media Recovery Log +FRA/mynas/archivelog/2017_08_15/thread_2_seq_235.566.952097775
Media Recovery Log +FRA/mynas/archivelog/2017_08_15/thread_1_seq_287.563.952096745
Media Recovery Log +FRA/mynas/archivelog/2017_08_15/thread_1_seq_288.564.952097603
Media Recovery Delayed for 5 minute(s) (thread 1 sequence 289)
注:我这里同时观察测试表的数据,可以看到,实际上延迟应用,是保证达到设定的值之后才能应用对应的归档日志,本身还会有延迟。
当备库日志显示刚刚应用日志时,这时的差距是最小的,基本和设置的时间一致。
2.总结:开启、关闭延时应用
开启延时应用方法:
主库直接动态修改参数log_archive_dest_N,加入DELAY=(单位是分钟)的参数,然后备库确保不加USING CURRENT LOGFILE启动应用。
--主库:
alter system set log_archive_dest_2 = 'SERVICE=mynas DELAY=5 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=mynas';
--备库:
alter database recover managed standby database cancel;
alter database recover managed standby database disconnect from session;
那么如何从延时应用重新改回实时应用呢?
就是再设置回去就ok了。
--主库:
alter system set log_archive_dest_2 = 'SERVICE=mynas VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=mynas';
--备库:
alter database recover managed standby database cancel;
alter database recover managed standby database using current logfile disconnect from session;
注:由于整个操作涉及的参数是动态可以修改的,所以整个过程都可以在线完成,不需要停机。
3.测试表脚本
每隔1s插入一条数据的测试表
--业务用户jingyu下创建序列和测试表test
conn jingyu/jingyu
create sequence jingyu.s1;
drop table jingyu.test;
create table jingyu.TEST(id number, insert_time timestamp);
--需要sys用户授权dbms_lock给业务用户jingyu
grant execute on dbms_lock to jingyu;
--创建每隔1s插入一条数据的存储过程,持续10小时
create or replace procedure p1 is
begin
for i in 1..36000
loop
insert into jingyu.test select s1.nextval, systimestamp from dual;
commit;
dbms_lock.sleep(1);
end loop;
end;
/
--编辑执行存储过程的脚本
[oracle@jyrac1 ~]$ vi insert.sh
sqlplus jingyu/jingyu <<EOF
exec p1;
EOF
--后台执行脚本
[oracle@jyrac1 ~]$ nohup sh insert.sh &
DataGuard开启延时应用的测试的更多相关文章
- 怎么看网站是否开启CDN加速?测试网站全国访问速度方法详解
注意域名,动静分离的网站,只对静态文件的域名做了cdn 怎么看网站有没开启CDN? 要看一个网站是否开启CDN,方法很简单,只要在不同的地区ping网址就可以,比如在山东济南ping www.jb51 ...
- DataGuard开启failover
1.修改保护模式 DGMGRL> edit configuration set protection mode as maxAvailability; Succeeded. 2.修改日志同步方式 ...
- Oracle 11g DATAGUARD 同步延时监控脚本
转自 https://blog.51cto.com/8858975/1401988监控脚本(注:这里没用Sendmail工具发送邮件,如果用的话需要修改)$cat check_oracle_dg_de ...
- Windows开启关闭测试模式的方法(含开启测试模式失败的解决办法)
前言: 内含:Windows开启关闭测试模式的方法.开启测试模式失败的解决办法.win10进入bios的方式.BitLocker恢复方式. 对于互联网从业者来说 ...
- MyBatis入门(五)---延时加载、缓存
一.创建数据库 1.1.建立数据库 /* SQLyog Enterprise v12.09 (64 bit) MySQL - 5.7.9-log : Database - mybatis ****** ...
- PLAYGROUND 延时运行
PLAYGROUND 延时运行 由 王巍 (@ONEVCAT) 发布于 2015/09/16 从 WWDC 14 的 Keynote 上 Chris 的演示就能看出 Playground 异常强大,但 ...
- VS自带WCF测试客户端简单介绍
在目前的二次开发项目中,一些信息是放在客户那里的,只给你一个服务地址,不知道具体有什么方法,每次想调用一个服务不知道能不能实现目前的需求,只能测试.写个测试程序真的划不来,占用时间不说,而且你忙了一上 ...
- TestNg测试框架使用笔记
Gradle支持TestNG test { useTestNG(){ //指定testng配置文件 suites(file('src/test/resources/testng.xml')) } } ...
- 使用Angular CLI进行单元测试和E2E测试
第一篇文章是: "使用angular cli生成angular5项目" : http://www.cnblogs.com/cgzl/p/8594571.html 第二篇文章是: & ...
随机推荐
- Discuz论坛提速优化技巧
Discuz是国内最受站长们欢迎的建站源码之一,除了开源以外还有着很强大的后台,即便是没有建站基础和不懂代码的站长也能很快的架设出一个论坛,甚至是门户. 一个网站的加载速度除了影响你在搜索引擎里的排名 ...
- JavaScript 语言基础
js语言基础 一 基本知识 UniCode编码 区分大小写(HTML不区分/XHTML区分) Unicode转义序列 \uxxxx (\u加4位16进制表示) 注释 单行注释:// 多行注释:/* * ...
- Android Studio 运行java程序
当我们装了Android Studio 学习安卓开发的时候,难免会要学习java,这时候,难道在重新装一个编译器吗?不需要,我们直接用 Android Studio 就可以. 1.新建一个空项目,选择 ...
- Java基础语法<七> 对象与类
笔记整理 来源于<Java核心技术卷 I > <Java编程思想> 1. 类之间的关系 依赖 users– a 是一种最明显的.最常见的关系.如果一个类的方法操作另一个类的对象 ...
- Java之字符串String,StringBuffer,StringBuilder
String类: String类即字符串类型,并不是Java的基本数据类型,但可以像基本数据类型一样使用,用双引号括起来进行声明.在Java中用String类的构造方法来创建字符串变量. 声明字符串: ...
- window10(64bit)+VS2010编译ACE_TAO源码库
1.下载 ACE+TAO下载地址:http://download.dre.vanderbilt.edu/previous_versions/ VS2010下载地址:https://pan.baidu. ...
- Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
Spider类定义了如何爬去某个网站,包括爬取的动作以及如何从网页内容中提取结构化的数据,总的来说spider就是定义爬取的动作以及分析某个网页 工作流程分析 以初始的URL初始化Request,并设 ...
- MySQL二进制日志备份和恢复详解
原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...
- 玩玩微信公众号Java版之三:access_token及存储access_token
微信官方参考文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183 基本说明: access_token是 ...
- 51nod_1417:天堂里的游戏
题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1417 假设 ans=n/m,C=(A+B)/2 若出正面 ...