oracle中undo和redo有什么区别

分类:编程技术 时间:2024-02-20 15:27 浏览:0 评论:0
0
本期小编就给大家讲一下Oracle中undo和redo的区别。文章内容丰富,从专业角度进行了分析和描述。希望您能通过阅读本文有所收获。


1. undo中数据的特点:
1.是数据修改前的备份,主要是保证用户读取的一致性(为了实现这个功能,与Redo类似,Oracle使用Undo来记录备份前的信息。与插入、更新、删除相关的信息记录在Undo表空间的回滚段,要记录信息量,insert至少只需要添加记录的rowid和update,然后记录修改的旧值即可,delete最多可以记录的整行数据删除的记录;如果一笔交易的修改尚未提交,另一笔交易查询的值将由Undo信息提供)
2.交易时生成修改数据
3.至少保存到事务结束
2.undo数据的作用:
1.回滚操作
2.实现读一致性和闪回查询
3.从失败的事务中恢复数据
4。异常关闭后实例恢复
3. undo回滚段的特点:
1.回滚段由实例自动创建以支持事务运行专用段也由区域和块组成。回滚顶部会根据实际需要自动增大或缩小。它是一个存储缓冲区,可以循环用于指定的事务
2。每个事务只会使用一个回滚段,一个回滚段可以同时服务多个事务
3.当事务开始时,将指定一个回滚段。事务过程中,当数据被修改时,原始数据会被复制到回滚段
4.在回滚段中,transaaction 将继续填充范围,直到事务结束或所有空间用完。如果当前的extent不够,事务A会请求扩展该段中的下一个extent。如果所有分配的盘区都被使用,则事务将覆盖原来的盘区,或者在回滚段允许的情况下扩展新的盘区来使用
5、回滚段存在于undo表空间中。数据库中可以存在多个undo表空间,但同时只能使用一个undo表空间
4、回滚段中的数据类型:
回滚段中的数据主要分为:有以下三种类型:
1.未提交的undo信息;未提交的回滚数据,与该数据关联的事务尚未提交,用于实现读一致性,因此此Data不能被其他事务的数据覆盖
2.已提交的undo信息;回滚已提交但未过期的数据。与数据关联的事务已经提交,但仍然受到undo re注意力参数保留时间的影响
3.过期的撤消信息;事务已提交,并且数据存储时间超过了undo保留参数指定的时间,属于过期数据
当回滚段满时,过期的undo信息会先被覆盖。当过期的数据空间用完后,Comlated undo信息区域将被覆盖。此时,undo保留参数指定的保留时间将被破坏。 Uncommissed undo信息的数据不允许被覆盖。如果 需要提交的数据在undo保持参数指定的时间内不会被覆盖。 RETENTION
可以在undo表空间上指定GUARANTEE。语法如下:
ALTER TABLESPACE UNDOTBS1 RETENTION GUARANTEE
5。撤消 之间的差异n 数据和重做数据:
1. undo记录数据修改前的操作,redo记录对磁盘数据进行的操作
2. undo用于数据回滚操作,实现读一致性。 redo用于前滚数据库操作
3.undo存储在回滚段中,redo存储在重做日志文件中
4.undo用于保证多用户并发读取的一致性系统。 redo用于防止数据丢失
6. undo相关参数
undo_management=auto自动undo表空间管理
undo_tablespace=undotbs1设置undo表空间的名称,可以存在多个undo表空间,但同时只能使用一个
undo_retention = 900(秒) 设置快照保存的最短时间。设置后,在这个时间段内仍有可能被覆盖
ALTER TABLESPACE UNDO_TS RETENTION GUARANTEE;强制 所有快照必须保存至 u 指定的时间ndo_retention

以上就是小编给大家分享的关于Oracle中undo和redo的区别。如果你正好有类似的疑惑,不妨参考上面的分析来了解一下。如果您想了解更多相关知识,请关注行业资讯频道。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > oracle中undo和redo有什么区别

用户评论