第二十四讲--Undo段及区的状态和使用
2016-03-22 12:26
211 查看
Undo的作用:oracle开始一个事务的时候使用undo表空间。
假如执行一个delete语句,oracle会把删除前的数据放到undo表空间的undo段里面。一个事务修改的block越多则占用的undo段越多。
Undo的两大作用:
1.Oracle的事务有时需要回滚,回滚的作用就是把事务修改前的数据拷贝回来,所以需要修改前的数据,修改前的数据就放在undo表空间里面;
2.B会话要读数据的时候发现数据被A会话修改了,但是A会话的事务没有提交,B会话就会在buffer cache里申请一个buffer,然后把要读的数据从undo段写到buffer里,然后读buffer,这个buffer就叫做cr块。B会话通过构造cr块达到一致性读取数据的目的。保证读取的永远是已提交的数据,不会读出未提交的数据。
3.实例崩溃恢复。实例崩溃以后的恢复分为两步:1.前滚,把崩溃前的脏buffer尽量多的构造出来。2.回滚,前滚出来的脏buffer可能是未提交的事务造成的,这些脏buffer就要回滚,回滚就要用到undo表空间。
Undo段中区的状态:
1. free;
2. expired,inactive区过了undo_retention参数设定的时间就会变成expired状态;
3. inactive,区中的事务已经提交。为了保证某功能的实现,oracle希望已提交的事务所对应的undo表空间里undo段的区尽量的在保持一段时间,也就是oracle希望inactive这个区的在保持一段时间,undo_retention,900秒;
4. active,表示区中的事务还没有提交,active区不能被覆盖;
对oracle实例恢复的理解:
假如执行一个delete语句,oracle会把删除前的数据放到undo表空间的undo段里面。一个事务修改的block越多则占用的undo段越多。
Undo的两大作用:
1.Oracle的事务有时需要回滚,回滚的作用就是把事务修改前的数据拷贝回来,所以需要修改前的数据,修改前的数据就放在undo表空间里面;
2.B会话要读数据的时候发现数据被A会话修改了,但是A会话的事务没有提交,B会话就会在buffer cache里申请一个buffer,然后把要读的数据从undo段写到buffer里,然后读buffer,这个buffer就叫做cr块。B会话通过构造cr块达到一致性读取数据的目的。保证读取的永远是已提交的数据,不会读出未提交的数据。
3.实例崩溃恢复。实例崩溃以后的恢复分为两步:1.前滚,把崩溃前的脏buffer尽量多的构造出来。2.回滚,前滚出来的脏buffer可能是未提交的事务造成的,这些脏buffer就要回滚,回滚就要用到undo表空间。
Undo段中区的状态:
1. free;
2. expired,inactive区过了undo_retention参数设定的时间就会变成expired状态;
3. inactive,区中的事务已经提交。为了保证某功能的实现,oracle希望已提交的事务所对应的undo表空间里undo段的区尽量的在保持一段时间,也就是oracle希望inactive这个区的在保持一段时间,undo_retention,900秒;
SQL> show parameter undo; NAME TYPE VALUE -------------------------------------------------------------------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace
4. active,表示区中的事务还没有提交,active区不能被覆盖;
对oracle实例恢复的理解:
相关文章推荐
- Laravel进行数据库迁移(migration)
- mysql索引
- [ActionScript 3.0] flash如何访问父级或者舞台上的变量、函数等的方法
- Unity Shaders and Effects Cookbook (2-1) 修改 UV 坐标实现纹理贴图的滚动 模拟水流效果
- 问题求解与程序设计作业1
- MongoDB 3.0新增特性一览
- Python 数据结构与算法——图(Graph)
- response的contentType 几种类型
- Excel2007及以上添加选择对象
- web网页优化 tomcat gzip设置以及验证
- Linux 一次杀死多进程
- buptoj 945:Emiya 树形dp
- 问题求解与程序设计作业2
- 安装KB3135173后出现,Win10系统爆发式推送重置默认应用失败通知的问题
- 多个线程ThreadLocal中存的是什么
- Python中的循环,列表推导式
- WebView 返回键 onReceivedTitle 不触发 问题解决
- Nth Highest Salary
- No adapter for handler
- Android之CookieStore的持久化