Redo和Undo
-
Redo及其作用
-
Undo及其作用
-
Redo与Undo的关系
-
提交和回滚处理
-
基于LogMiner的日志分析
1
1.1 Redo及其作用
1.1.1Redo的作用是恢复已提交的事务,从而保证无论在介质失败还是实例失败时,都可以恢复用户已提交的事务,使数据库达到一致状态。
1.1.2Redo功能的实现依赖于以下三个组件:
- –Log Buffer
- –LGWR
- –联机重做日志文件和归档日志文件
1.2 Redo数据量的测量
1.2.1用SQL*Plus内置的AUTORACE功能统计(只能针对简单的DML操作,无法统计存储过程调用等复杂操作的日志信息):
1.2.2.通过动态性能视图v$mystat检索。例如:
2 Undo及其作用
2.2.1Undo的作用是:
–回滚操作;
–支持读一致性;
–恢复失败的事务。
2.2.2Undo的实现是通过Undo表空间内的undo段来实现的。每个事务只被分配一个undo段,undo段可以服务于多个事务。
2.2.3Undo机制只是逻辑地把数据恢复到修改前的状态,而不是物理地恢复。
语句中使用以下动态性能视图查询当前事务使用的undo块数:
V$MYSTAT:取得会话ID;
V$SESSION:获取事务地址;
V$TRANSACTION:找出事务使用的undo块数。
事务提交或回滚时会释放undo块占用的空间。
9.3 Redo与Undo的比较
|
Undo
|
Redo
|
记录
|
怎样还原修改
|
怎样创建修改
|
用于
|
回滚、读一致性
|
前滚、数据库修改
|
存储于
|
Undo段
|
Redo日志文件
|
保护
|
多用户系统中的读一致性
|
损失的数据
|
3.4 undo管理
管理目标是避免出现两种错误:
vORA-01650: unable to extend rollback segment
vORA-01555: snapshot too old
管理方式落实为正确配置三个参数和一个还原表空间属性:
UNDO_MANAGEMENT
UNDO_TABLESPACE
UNDO_RETENTION
RETENTION GUARANTEE
commit操作需要的时间很“平”,与事务的大小没有直接关系。
rollback操作所需的时间与事务所修改的数据量直接相关。
因此在设计事务时,不要考虑事务的大小和多少,而应以所执行的操作是否构成一个逻辑工作单元作依据。
提交前可能完成的操作
–在SGA中生成UNDO块
–在SGA中生成已修改的数据块
–在SGA中生成前两项对应的redo日志
–如果需要,前面的某些数据可能已经刷新输出到磁盘
–得到所需的所有锁
提交时要完成的操作
–为事务生成SCN
–LGWR把剩余所有缓存重做日志和SCN写入日志文件
–释放锁
–对缓冲区中的数据块进行块清理
v回滚前可能完成的操作
–在SGA中生成UNDO块
–在SGA中生成已修改的数据块
–在SGA中生成前两项对应的redo日志
–如果需要,前面的某些数据可能已经刷新输出到磁盘
–得到所需的所有锁
v回滚时要完成的操作
–撤销已做的所有修改
–释放锁
分享到:
相关推荐
BLOG_Oracle_lhr_【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较BLOG_Oracle_lhr_【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行...
RAC下的REDO和UNDO管理 收藏.docxRAC下的REDO和UNDO管理 收藏.docxRAC下的REDO和UNDO管理 收藏.docxRAC下的REDO和UNDO管理 收藏.docxRAC下的REDO和UNDO管理 收藏.docxRAC下的REDO和UNDO管理 收藏.docxRAC下的REDO和...
这个是做实验时,简单基本的Undo、Redo的操作、在一个winForm中实现,并且可以设置Undo的最大次数。包中除了项目外,还附有报告.
实现redo,undo操作,来源于网络分享下。
Delphi 中实现Redo Undo的一个简单实例,包含源码
oracle_redo_undo
第9章第9章 redo与undo_a.pdf redo与undo_a.pdf第9章 redo与undo_a.pdf
Multiple Level Undo/Redo多级Undo/Redo功能的实现(7KB)
本工程用vs2008打开,但需要qt库的支持,需要先安装qt-in-vs2008,才可通过编译。或者直接将里面的代码拷贝出来,然后在自己的环境中编译也行。代码中应用了QUndoCommand来实现撤销与反撤销操作。
针对一个window窗体实现了undo/redo功能,包括textBox,checkBox, listBox, comboBox, radioButton以及按钮焦点变化的实现。可能有些小bug思路仅供参考。完整的工程文件,VS打开即可运行,欢迎评论~ 详细说明参见...
redo undo framework source code redo undo framework source code
cpp文件 undo redo 原型设计 部分代码 class Command { public: virtual BOOL UnDo() = 0; virtual BOOL ReDo() = 0; };
Oracle_Undo与Redo的通俗
3000帧动画图解MySQL为什么需要binlog、redo log和undo log.doc
文章目录一、MySQL日志文件类型二、几种日志的对比2-1、用途 redo log undo log binlog2-2、存储内容、格式 redo log undo log binlog2-3、日志生成 redo log undo log binlog2-4、删除策略 redo log ...
Arcgis Engine Undo 和 Redo 功能实现
Undo/Redo framework for editing controls in a Windows application 在Windows应用程序中编辑控件的撤销/重做框架。
Oracle redo undo的说明解释
实现多步Undo和Redo的方法,对于mfc绘图程序来说,这个很必要,而且很实用!
实现undo redo功能,多步,绘图。