oracle主备库sync模式,Oracle 探索DG备库undo工作模式
模拟备库出现
ORA-01555
分析备库
undo
工作模式
一:
修改主库
备库
undo
表空间
1.在主库创建undo表空间(会自动同步到备库)
SYS@prod>create undo tablespace smallundo datafile '/u01/app/oracle/oradata/prod/smallundo.dbf' size 2M;
修改undo表空间
SYS@prod>alter system set undo_tablespace=smallundo;
2.在备库修改undo表空间 //由于备库处于redo only模式,无法在线修改undo_tablespace
SYS@stddb>shutdown immediate
[oracle@service2 dbs]$ cd $ORACLE_HOME/dbs
修改参数文件
*.undo_tablespace='smallundo'
SYS@stddb>create spfile from pfile
SYS@stddb>startup
主库:
SYS@prod>show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string SMALLUNDO
备库:
SYS@stddb>show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string smallundo
二 :测试
1.在主库创建test表:
SYS@prod>create table test (id number);
SYS@prod>insert into test(id) values(1);
SYS@prod>commit;
2.在备库模拟长时间的查询操作:
SYS@stddb>variable rfc refcursor
SYS@stddb>execute open :rfc for select * from test;
3.在主库执行循环更新操作:
SYS@prod>
begin
for i in 1..20000 loop
update test set id = 3;
commit;
end loop;
end;
4.在备库获取查询结果:
SYS@stddb>print :rfc
ERROR:
ORA-01555: snapshot too old: rollback segment number 13 with name"_SYSSMU13_2332596898$" too small
三:结论
在备库执行查询语句出现的ORA-01555与主库出现的ORA-01555原因是没区别的,主备的undo块是实时同步的,
本次测试中,采用的非自动扩展的undo表空间,由于表空间无法自动扩展,会优先保留Active有可用空间,会将已经提交事务的undo data覆盖掉,即使没有满足undo retention的保留时间,所以会出现ORA-01555错误
当长时间查询的SQL语句,无法从undo中获得前映像构造CR块就会出现ORA-01555错误
例如:
A会话执行一条查询语句,查询数据行数为10亿行,B会话执行一条delete语句,删除1亿行数据,然后进行提交,当B会话事务提交成功后,A数据才查询到这1亿行数据,此时需要undo data来构造一致性读,如果此时undo date被覆盖,那么就会出现Ora-01555错误。
备库
CR
块构造:
主备同步时,如果主库进行一个事务,但是这个未提交,在备库查询,需要构造CR块满足查询,结合当前块和undo块生成CR块。
//与主库构造CR模式相同,也可以理解为在备库上查询和在主库上查询使用的undo是没区别的
测试:
SYS@prod>select * from test;
ID
----------
3
SYS@stddb>select object_name,object_id from dba_objects where object_name='TEST' and owner='SYS';
//查询test表的object_id
OBJECT_NAME OBJECT_ID
-------------------- ----------
TEST 88641
在主库进行一次修改操作:
SYS@prod>update test set id = 1;
1 row updated.
在主库备库查询块状态:
SYS@prod>select obj,state from x$bh where state = 3 and obj=88641;
No rows selected.
SYS@stddb>select obj,state from x$bh where state = 3 and obj=88641;
No rows selected.
执行查询操作:
SYS@stddb>select * from test;
ID
----------
3
在主备库查询test表构造CR块情况:
SYS@prod>select obj,state from x$bh where state = 3 and obj=88641;
OBJ STATE
---------- ----------
88641 3
88641 3
SYS@stddb>select obj,state from x$bh where state = 3 and obj=88641;
OBJ STATE
---------- ----------
88641 3
88641 3
3是CR模式
备库的redo工作模式:
主库的redo日志进行日志切换时,备库的redo日志也会随之切换,但是没有任何意义,仅仅算是同步,也不记录警告日志。
SYS@stddb>select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CURRENT
2 CLEARING
3 CLEARING
备库的redo只有current与clearing两种状态。
oracle主备库sync模式,Oracle 探索DG备库undo工作模式相关推荐
- oracle 主键能加索引吗,Oracle 添加主键和索引
数据的主键和索引一般情况下都是必须的,特别是表有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率: 一.创建表的同时创建主键约束 (1)无命名 create table studen ...
- oracle主键重复异常捕获,Oracle异常处理异常处
Oracle异常处理异常处理是考验一个应用程序健壮性的最好方式,开发人员必须考虑程序中可能出现的各种错误,并进行相应的处理. Oracle中异常分为:1.预定义异常2.非预定义异常3.自定义异常三种. ...
- 计算机网络对等模式,计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式。QQ聊天属于________模式。...
计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式.QQ聊天属于________模式. 更多相关问题 Maria, Enclosed is the schedule for this y ...
- oracle主键和唯一索引,Oracle 主键、唯一键与唯一索引的区别
如果我们让主键约束或者唯一键约束失效,Oracle自动创建的唯一索引是否会受到影响? SQL> drop table test purge; Table dropped. SQL> cre ...
- java加密工作模式None_java加解密算法--对称加密工作模式
对称加密又分为分组加密和序列密码. 分组密码,也叫块加密(block cyphers),一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆 ...
- 无需安装Oracle,用PL/SQL直接连接Oracle服务器
用PL/SQL连接Oracle的时候,没有必要安装Oracle服务器,只要安装一个Oracle客户端,然后使用绿色版PL/SQL连接就可以了.具体操作如下: 1.下载Oracle客户端 http:// ...
- Linux链路聚合,链路聚合四种工作模式
一.基础知识 链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端 ...
- Apache网页深入优化之ab压力测试、工作模式与目录属性优化
ab压力测试工具 Apache自带压力测试工具ab,简单易用,且可以模拟各种条件对Web服务器发起测试请求.ab工具可以直接在Web服务器本地发起测试请求,这对于需要了解服务器的处理性能至关重要,因为 ...
- esxi ntp服务器地址_NTP的工作原理以及工作模式
NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步.NTP基于UDP报文进行传输,使用的UDP端口 ...
最新文章
- 搬运机器人举杯贺所需的条件_机器人调试工程师的工作是怎样的
- 在中小型公司建立企业根证书颁发机构 (CA)
- 什么是MIME?什么是MIME邮件?
- 很遗憾,没有一篇文章能讲清楚ZooKeeper
- 暴力求解法 之 枚举排列
- HDU4135 HDU2841 HDU1695 求[1,m]中与n互素的数的个数
- Bigtable 论文翻译
- 大数据先行 传统金融转型需从体制上创新
- codeforces 236A-C语言解题报告
- 第二篇:在RHEL上用qemu-kvm安装xp
- C语言 游戏远程call调用,创建远程线程 调用游戏所有call
- https证书设置以及设置301跳转
- laravel 原生 sql
- WIN10开启Hyper-V虚拟化功能
- 开心网kaixin001状告kaixin,停用“开心网”名称,赔偿1000万元
- 身份实名认证API开发文档
- h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
- 3D动画制作流程概要
- 机器学习-波澜壮阔40年
- Sox切割脚本简单思路
热门文章
- java类的运行顺序_Java语言类的基本运行顺序
- Python matplotlib 绘制等高线图
- java时间有几种格式_java解析多种时间格式
- B S架构 服务器虚拟化,B/S 架构及 Tomcat
- 计算机组装与维修单元卷,计算机组装与维修期中考试试卷及答案
- linux按时间排序并查看发现,linux下扫描文件并按时间排序
- mysql中文乱码解决方案_关于MySQL中文乱码的完美解决方案
- php微服务rpc选择,Dora RPC:PHP 的分布式 RPC,支持微服务、服务发现
- c++ 绘制函数图像_【图像增强】CLAHE 限制对比度自适应直方图均衡化
- deploy java eclipse_使用eclipse的mvn deploy部署本地包到maven私有库