ORACLE 数据库回滚段.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLE 数据库系统安装完成后,由于版本的不同自动在RBS表空间上建立了相应数量的回滚段,比如在ORACLE8i Realse 8.1.7 版本上可以建立rb01 至rb24 共24个回滚段。但是这些回滚段的大小都很小,而且在缺省下,只有少数回滚段是有效的。所以无论在任何应用环境下都需要对所有的回滚段进行管理和调整。 §14.1 回滚段基本概念 回滚段(Rollback Segment)是ORACLE数据库系统的一个很重要的对象,它实际上是一个用来存放增、删、改数据的磁盘空间,说它是一个磁盘空间是因为它必须建立在一个表空间上,而表空间又与一个或多个数据文件对应。 §14.1.1 回滚段的作用 ORACLE 的回滚段( Rollback )存储着事务处理(Transaction)的回滚信息,在 ORACLE 中担负两个重要的任务: 1、 保证数据读的一致性(read consistency); 2、 进行数据恢复(Database Recovery)。 用于用户进行 insert , update , delete 时,保存信息的数据库对象,以便在需 对改动的数据进行取消时可以进行回滚。 §14.1.2 回暖滚段的基本概念 1、 回滚段“头” 指回滚段中当前写入记录的位置; 2、 回滚段“尾” 指最早使用回滚段且处于工作状态的 transaction 写入回滚信息的起始位置。 §14.1.3 回滚段使用原则 1、 一个transaction可能会使用当前处于online的任意一个回滚段。 2、 transaction总是从回滚段头开始记录,依次向前推进当前指针。 3、 一个transaction中的所有信息只能存于一个回滚段内。 4、 多个transaction可以将数据写入同一个回滚段内的同一个extent中。 5、 使用某个extent的所有transaction在提交或回滚后,它将分配一个新的extent,并将该extent插入到回滚段的extent环中。 6、 insert , update 及 delete 操作都产生回滚信息。 7、 在回滚段中存取数据需要短暂的排它锁。 §14.1.4 ORACLE安装后的回滚段 1、 缺省回滚段为system,它被建立在system表空间中。 2、 第二个回滚段为 R0(数据库生成过程) 1) 创建数据库时,系统在system表空间上建立一个system回滚段; 2) 在system表空间建立 R0回滚段(一个数据库若有多个表空间则必须建立 第二个回滚段); 3) 让新的回滚段 R0 有效,从而创建其它数据库; 4) 创建一个叫 rbs 的表空间(以便生成更多的回滚段); 5) 在 rbs 表空中创建附加的回滚段; 6) 使system表空间中的r0为active; 7) 使rbs表空间的所有回滚段为active; 8) 当数据库创建完成后,r0回滚段不需要(仍有效,但不激活in active); §14.1.5 回滚段的工作过程 根据ORACLE向回滚段的片写入数据所使用的方法,可将回滚段看作一个图环,工作过程如下: 1、 新 transaction 开始启动,ORACLE分配一个可用的回滚段; 2、 回滚数据,ORACLE将数据写入片中; 3、 写 某片时,通过wrapping(环绕)转到 该回滚段的下一片继续写;当写满回滚段的最后一片时,可以绕到头片继续写。但当某一个事务(transaction)的回滚数据大于回滚段所容纳的数量时, 即写回到 第一片还继续写时,此时为了满足回滚数据的要求,并防止此事务不重写自己的回滚数据,ORACLE根据next作扩充至到maxextents为止,当然超过maxextents 时仍未完成时,则出现 snapshot too old (没有新的分配了)。 在大型事务结束后,ORACLE 根据OPTIMAL参数对的扩展的回滚段空间进行“最佳大小”的收缩。回滚段的工作过程如图所示: 回滚段的工作过程图(rollback 图) §14.2 创建和使用回滚段 下面给出创建回滚段的命令语法和参数解释,此外简单介绍在应用中如何使用回滚段的例子。 §14.2.1 创建回滚段 ORACLE提供CREATE ROLLBACK SEGMENT命令实现回滚段的创建。它的语法如下: 1.CREATE ROLLBACK SEGMENT句法: create [public] rollback segment segment_name tablespace tablespace_name storage( initial xxM next xxM m

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档