分享更有价值
被信任是一种快乐

Oracle中DG备库undo工作模式是什么

文章页正文上

这篇文章主要讲解了“Oracle中DG备库undo工作模式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle中DG备库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_tablespaceSYS@stddb>shutdown immediate[oracle@service2 dbs]$ cd $ORACLE_HOME/dbs修改参数文件
*.undo_tablespace=’smallundo’SYS@stddb>create spfile from pfileSYS@stddb>startup主库:SYS@prod>show parameter undo;NAME TYPE VALUE———————————— ———– ——————————undo_management string AUTOundo_retention integer 900undo_tablespace string SMALLUNDO备库:SYS@stddb&gt免费主机域名;show parameter undoNAME TYPE VALUE———————————— ———– ——————————undo_management string AUTOundo_retention integer 900undo_tablespace string smallundo1.在主库创建test表:SYS@prod>create table test (id number);SYS@prod>insert into test(id) values(1);SYS@prod>commit;2.在备库模拟长时间的查询操作:SYS@stddb>variable rfc refcursorSYS@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 :rfcERROR: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块满足查询,结合当前块和undo块生成CR块。//与主库构造CR模式相同,也可以理解为在备库上查询和在主库上查询使用的undo是没区别的测试:SYS@prod>select * from test;ID———-3SYS@stddb>select object_name,object_id from dba_objects where object_name=’TEST’ and owner=’SYS’;//查询test表的object_idOBJECT_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; OBJSTATE———- ———- 88641 3 88641 3SYS@stddb>select obj,state from x$bh where state = 3 and obj=88641; OBJSTATE———- ———- 88641 3 88641 33是CR模式备库的redo工作模式:主库的redo日志进行日志切换时,备库的redo日志也会随之切换,但是没有任何意义,仅仅算是同步,也不记录警告日志。SYS@stddb>select group#,status from v$log; GROUP# STATUS———- —————-1 CURRENT2 CLEARING3 CLEARING备库的redo只有current与clearing两种状态。感谢各位的阅读,以上就是“Oracle中DG备库undo工作模式是什么”的内容了,经过本文的学习后,相信大家对Oracle中DG备库undo工作模式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是云技术,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: oracle的自带脚本有哪些

本篇内容主要讲解“oracle的自带脚本有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle的自带脚本有哪些”吧!创建一个数据库看起来免费主机域名容易,做起来难。若是手动来创建的话,就需要对数据库的内容…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册