模拟备库出现

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工作模式相关推荐

  1. oracle 主键能加索引吗,Oracle 添加主键和索引

    数据的主键和索引一般情况下都是必须的,特别是表有大量数据的时候,索引和主键更是必不可少,这样可以提供数据的查询效率: 一.创建表的同时创建主键约束 (1)无命名 create table studen ...

  2. oracle主键重复异常捕获,Oracle异常处理异常处

    Oracle异常处理异常处理是考验一个应用程序健壮性的最好方式,开发人员必须考虑程序中可能出现的各种错误,并进行相应的处理. Oracle中异常分为:1.预定义异常2.非预定义异常3.自定义异常三种. ...

  3. 计算机网络对等模式,计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式。QQ聊天属于________模式。...

    计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式.QQ聊天属于________模式. 更多相关问题 Maria, Enclosed is the schedule for this y ...

  4. oracle主键和唯一索引,Oracle 主键、唯一键与唯一索引的区别

    如果我们让主键约束或者唯一键约束失效,Oracle自动创建的唯一索引是否会受到影响? SQL> drop table test purge; Table dropped. SQL> cre ...

  5. java加密工作模式None_java加解密算法--对称加密工作模式

    对称加密又分为分组加密和序列密码. 分组密码,也叫块加密(block cyphers),一次加密明文中的一个块.是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆 ...

  6. 无需安装Oracle,用PL/SQL直接连接Oracle服务器

    用PL/SQL连接Oracle的时候,没有必要安装Oracle服务器,只要安装一个Oracle客户端,然后使用绿色版PL/SQL连接就可以了.具体操作如下: 1.下载Oracle客户端 http:// ...

  7. Linux链路聚合,链路聚合四种工作模式

    一.基础知识 链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端 ...

  8. Apache网页深入优化之ab压力测试、工作模式与目录属性优化

    ab压力测试工具 Apache自带压力测试工具ab,简单易用,且可以模拟各种条件对Web服务器发起测试请求.ab工具可以直接在Web服务器本地发起测试请求,这对于需要了解服务器的处理性能至关重要,因为 ...

  9. esxi ntp服务器地址_NTP的工作原理以及工作模式

    NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步.NTP基于UDP报文进行传输,使用的UDP端口 ...

最新文章

  1. 搬运机器人举杯贺所需的条件_机器人调试工程师的工作是怎样的
  2. 在中小型公司建立企业根证书颁发机构 (CA)
  3. 什么是MIME?什么是MIME邮件?
  4. 很遗憾,没有一篇文章能讲清楚ZooKeeper
  5. 暴力求解法 之 枚举排列
  6. HDU4135 HDU2841 HDU1695 求[1,m]中与n互素的数的个数
  7. Bigtable 论文翻译
  8. 大数据先行 传统金融转型需从体制上创新
  9. codeforces 236A-C语言解题报告
  10. 第二篇:在RHEL上用qemu-kvm安装xp
  11. C语言 游戏远程call调用,创建远程线程 调用游戏所有call
  12. https证书设置以及设置301跳转
  13. laravel 原生 sql
  14. WIN10开启Hyper-V虚拟化功能
  15. 开心网kaixin001状告kaixin,停用“开心网”名称,赔偿1000万元
  16. 身份实名认证API开发文档
  17. h5怎么做分享到QQ 、朋友圈、微信 、微博等功能
  18. 3D动画制作流程概要
  19. 机器学习-波澜壮阔40年
  20. Sox切割脚本简单思路

热门文章

  1. java类的运行顺序_Java语言类的基本运行顺序
  2. Python matplotlib 绘制等高线图
  3. java时间有几种格式_java解析多种时间格式
  4. B S架构 服务器虚拟化,B/S 架构及 Tomcat
  5. 计算机组装与维修单元卷,计算机组装与维修期中考试试卷及答案
  6. linux按时间排序并查看发现,linux下扫描文件并按时间排序
  7. mysql中文乱码解决方案_关于MySQL中文乱码的完美解决方案
  8. php微服务rpc选择,Dora RPC:PHP 的分布式 RPC,支持微服务、服务发现
  9. c++ 绘制函数图像_【图像增强】CLAHE 限制对比度自适应直方图均衡化
  10. deploy java eclipse_使用eclipse的mvn deploy部署本地包到maven私有库