回滚段记载

回滚段管理:

回滚段的头部包含了使用该回滚段的事务的信息,一个事务只能只用一个回滚段,而一个回滚段可以存放多个事务的回滚段信息。

事务级的读一致性:

Set transaction read only

set transaction isolation level serializable;(对数据库的并发性和性能带来影响)

上述都可以设置事务期间的数据不会因为别的事务提交带来的影响。靠回滚段来实现的。

回滚段种类:System表空间的系统回滚段和非系统回滚段。

System系统回滚段用于存放系统表空间中对象的数据前映像。

非系统回滚段:又分为公有回滚段和私有回滚段,私有回滚段应在参数文件的rollback segments参数中列出,以便启动时自动使其online;私有回滚段一般在OPSoracle并行服务器)出现,启动时自动在线。

Defered回滚段:defere回滚段在表空间离线时系统自动创建,上线时系统自动删除,用于存放表空间离线时产生的回滚信息。

分配回滚段:事务开始,oracle将拥有事务最少的回滚段分配给该事务。

事务可以指定申请回滚段

Set transaction use rollback segment rollback_segment_name

事务以顺序循环的方式使用回滚段的extents,几个事务可以写在回滚段的一个区,事务从一个区写到另一个区时,称为翻转WRAP,但是回滚段的块只能存储一个事务的信息。

回滚段的扩展(EXTEND

当下一个区正在使用时,事务将为回滚段分配一个新的区,这种分配称为回滚段的扩展。回滚段将一直扩展到该回滚段区的个数到达回滚段的参数MAXEXTENTS的值时为止。

回滚段的回收和optimal参数:

Optimal参数指明回滚段空间收缩到的位置,指明回滚段的optimal参数可以减少回滚段空间的浪费。

手工创建回滚段:

Create public|rollback segment rbs01

Tablespace users

Storage(initial 100K next 100K minextents 2 maxextents 100 optimal 100K)

(回滚段可以在创建时指明privatepublic,创建后就不能修改回滚段的类型

其中optimal必须大于等于初始段的初始大小,minextents必须大于等于2pctincrease必须等于0

建议:initial=next,设置optimal参数来节约空间的使用,maxextentsunlimited

使回滚段在线
当回滚段创建后,回滚段是离线的,不能被数据库使用,为了使回滚段被事务利用,必须将回滚段在线。可以用以下命令使回滚段在线:

alter rollback segment rollback_segment_name online
使回滚段在数据库启动时自动在线,可以在初始化动态参数指定

Alter system set rollback_segments=’tbs01’ scope=spfile

由于是静态参数,需要指定scope=spfile重启数据库才能生效。

使用alter修改回顾段storage参数
alter rollback segment rollback_segment(maxextents 500)
Alter无法修改initial参数)

回收回滚段的空间

如果指定了optimal参数oracle将自动回收回滚段,optimal参数设置一般和initial一致

手动回收回滚段:
alter rollback segment rollback_segment_name shrink to integer
如果不指明TO integer的数值,ORACLE将试图回收到OPTIMAL的位置。
回滚段离线:
alter rollback segment tbs01 offline


删除回滚段当回滚段不再需要或要重建以改变INITIAL时,可以将其删除。要删除回滚段,
DROP ROLLBACK SEGMENT rollback_segment;

跟回滚段相关的视图:V$ROLLNAME,V$ROLLSTAT dba_rollback_segs

v$rollname中的usnv$rollstat关联
SELECT n.name,s.extents,s.rssize,s.optsize,s.hwmsize,s.xacts,s.status
FROM v$rollname n,v$rollstat s
WHERE n.usn=s.usn;

回滚段的数量规划
对于OLTP系统,存在大量的小事务处理,一般建议:
数量多的小回滚段;每四个事务一个回滚段;每个回滚段不要超过十个事务。
对于批处理,一般建议:
少的大回滚段;每个事务一个回滚段。

回滚段的问题及解决方法
问题一:事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数MAXEXTENTS的值(ORA-01628)。
向回滚段表空间添加文件或使已有的文件变大(增加MAXEXTENTS的值。)
问题二:读一致性错误(ORA-01555 SNAPSHOT TOO OLD
(增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值。)

后续再来看看快照过旧具体解决方法。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25362835/viewspace-1055370/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25362835/viewspace-1055370/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值