Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

87

积分

0

好友

5

主题
1#
发表于 2012-6-13 15:20:40 | 查看: 5535| 回复: 3
database flashbackup on

闪回日志中记录了磁盘上数据库的改变,有RVWR process每3秒写一次,疑问的是如果像下面的sql
for i in 1...10000000 loop
  DML
end loop
但是如果没commit,会记录到 flb 文件中么?会不会和是否flush buffer cache 有关?
如果在end loop后commit,那flb 文件中是否只记录block dirty前的image,还是loop中间的image都包含还是与是否从buffer刷到disk 文件有关?
2#
发表于 2012-6-13 15:38:48
个人觉得应该是和事务有关系,因为flashback database的还原是通过时间点的,可以用SCN来还原,SCN可以认为是一个事务结束SCN+1,所以提交后的数据块改变才会被记录到闪回日志中,如果你的DML是对一个块进行修改,commit在end loop之前,每个记录都会写入闪回日志,反之就只会最后一个记录记入。
不知道对不对,求指导

[ 本帖最后由 紫恒 于 2012-6-13 15:44 编辑 ]

回复 只看该作者 道具 举报

3#
发表于 2012-6-14 00:03:26
为什么Flashback Log产生量要远少于Redo Log?  http://www.oracledatabase12g.com ... r-than-redolog.html

回复 只看该作者 道具 举报

4#
发表于 2012-6-14 14:33:21
thanks,

有些事务看来应该不是只依赖flashback logs中记录block image而完成任意时间点的恢复的。

[ 本帖最后由 anbob 于 2012-6-14 16:43 编辑 ]

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 22:40 , Processed in 0.047835 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569