社区
基础和管理
帖子详情
undo表空间!
sunnyxjl
2009-02-07 08:25:54
undo表空间过小,会对数据库有何影响?
...全文
445
8
打赏
收藏
undo表空间!
undo表空间过小,会对数据库有何影响?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
timeriver_wang
2009-03-02
打赏
举报
回复
各位大虾 太牛逼了
困扰多时的问题 终于解决了!
rockywu
2009-02-08
打赏
举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]
纠正:
回滚段表空间小确实影响速度,但不是排序和统计,而是事务回滚\事务恢复\读一致性等
空间小的时候,对提交比较大的数据数据交换空间不够而会慢,具体参考下面;
回滚段概述
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
回滚段的作用…
[/Quote]
说得十分好.....
Andy__Huang
2009-02-07
打赏
举报
回复
纠正:
回滚段表空间小确实影响速度,但不是排序和统计,而是事务回滚\事务恢复\读一致性等
空间小的时候,对提交比较大的数据数据交换空间不够而会慢,具体参考下面;
回滚段概述
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。
回滚段的作用
事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。
事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。
读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。而且,当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)。当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。
xanaduwpz
2009-02-07
打赏
举报
回复
回滚段表空间
i. 回滚段在系统中的作用
当数据库进行更新插入删除等操作的时候,新的数据被更新到原来的数据文件,而旧的数据(Before Image)就被放到回滚段中,如果数据需要回滚,那么可以从回滚段将数据再复制到数据文件中。来完成数据的回滚。在系统恢复的时候, 回滚段可以用来回滚没有被commit 的数据,解决系统的一至性。
回滚段在什么情况下都是大量的写,一般是少量读,因此建议把回滚段单独出来放在一个单独的设备(如单独的磁盘或RAID),以减少磁盘的IO争用。
ii. 回滚段的工作方式
一个回滚表空间可以被划分成多个回滚段.
一个回滚段可以保存多个会话的数据.
回滚段是一个圆形的数据模型
假设回滚段由4 个区间组成,他们的使用顺序就是区间1à区间2à区间3à区间4à区间1。也就是说,区间是可以循环使用的,当区间4到区间1的时候,区间1里面的会话还没有结束, 区间4用完后就不能再用区间1,这时系统必须分配区间5,来继续为其他会话服务服务。
Andy__Huang
2009-02-07
打赏
举报
回复
当查询的数据比较大时有影响,undo表空间主要用于统计和排序
空间过小统计和排序会慢好多
又是违规昵称
2009-02-07
打赏
举报
回复
可能引起
ORA-01555 快照过旧
傻儿哥
2009-02-07
打赏
举报
回复
[Quote=引用 3 楼 hdhai9451 的回复:]
读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。而且,当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)。当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。
[/Quote]
顶下这段
47522341
2009-02-07
打赏
举报
回复
回滚段存储的是dml操作的前映象;
oracle执行dml操作的步骤是这样的:
1,从磁盘文件中将数据读入数据缓冲区;
2,当一个update或者delete执行的时候,将缓冲区中的数据块先写到回滚段中
3,然后将缓冲区中的数据块对应记录修改过来(此时数据变成dirty block)
4,如果这时执行rollback,系统后台进程将会使用回滚段中的数据块替换缓冲区中的数据块;
5,如果执行的是commit,则oracle会释放对回滚段的占用。
回滚段的管理方式是循环覆盖的。
一个表空间中可以有多个回滚段,一个回滚段中允许有多个区。
一个回滚段对应多个事务,每个事务只能使用一个回滚段。
假设回滚段1有四个区;
dml事务a占用了第一个区而一直没有commit;
事务b占用第四个区,如果b中数据较多,而回滚段又不允许扩展,则事务b需要一直等待a释放第一个区才可以。
在这里,如果一个update或者delete语句一直没有执行commit;
那么事务将会保持对回滚段的持续占用,这时新的update操作执行前,必须等待前面的dml操作释放需要的回滚空间(当然,如果回滚段允许扩展将不存在这个问题)。
赵强老师:Oracle数据库从10g到11g(13)
undo
数据与数据库审计
从零开始学习Oracle数据库,从10g讲到11g;让学员读整个Oracle数据库有个全面清除的认识和学习。
oracle
undo
表空间
的作用和机制,
undo
表空间
的相关操作,oracle11g新特性RMAN
UNDO
备份优化
文章目录1.
undo
表空间
概念和作用1.1 读一致性1.2 回滚事务1.3 实例恢复2.
undo
表空间
重要参数2.1
undo
_retention2.2 rentention garentee3.
undo
表空间
操作3.1 查看
UNDO
表空间
3.2 查看
UNDO
参数3.3 增加一个回滚
表空间
3.4 给回滚
表空间
undo
t2 增加一个数据文件3.5 查看数据文件以及其所属的
表空间
3.6 切换
UNDO
表空间
3.7 启用和取消rentention garentee:3.8 v$
undo
stat 视图,记录
释放oracle
undo
表空间
,
undo
表空间
释放
一.概述:使用IMPDP工具导入大表(166G)数据时,报
undo
表空间
不能扩展,导入工作失败.手工停止了impdp后,
undo
表空间
存在无法自动释放的故障.本文主要描述如何通过重建
undo
表空间
来手工释放
undo
表空间
.数据库环境的描述:OS: AIX 6.1+HACMP 5.3DB: ORACLE 10.2.0.5 RAC二.问题的描述impdp 导入数据时,报ora-30036错误$impd...
oracle 查看
undo
表空间
大小,如何对
undo
表空间
大小进行设置
1.对于
undo
表空间
大小的设置需要参考三组数据(UR)每秒钟的
undo
_retention(UPS)每秒钟生成的
undo
数据块的数量(DBS)
undo
表空间
的db_block_size大小2.
undo
表空间
需要分配空间大小,通过一下公式进行计算其中两个配置可以在数据库中直接查询或配置:
undo
_retention和db_block_size,这个公式的第三部分需要到正在运行的数据库中进行查询,每...
Oracle 原理:
UNDO
表空间
UNDO
表空间
又称为,回滚
表空间
,撤销
表空间
。
Undo
segment保存在
UNDO
表空间
,一个数据库可以有多个
UNDO
表空间
,但是在同一时刻中,只能使用同一个
UNDO
表空间
。 一、
UNDO
表空间
的作用和机制 对于DML语句,只要修改了数据块,Oracle就会把原来修改前的数据块保留下来,存储在
Undo
segment (回滚段),当执行rollback操作时,把原先的数据重新覆盖回来。回滚段存放在
UNDO
表空间
中。
UNDO
表空间
的管理分为手动管理和自动管理。在11g中默认是采用自动管理模式。 UN
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章