计算机专业教材-第7章回滚段管理.pdf
文本预览下载声明
下载
第7章 回滚段管理
回滚段收集开始事务处理之前存在的数据的“前”映像。其他用户可以查询数据变化之
前的情况。
无论数据库的其他部分工作如何出色,回滚段都需要一些特殊关注。由于回滚段控制着
数据库处理事务的能力,所以直接决定着数据库的成功与否。
这一章描述D B A需要为回滚段执行的主要管理任务。这些主要任务是:
• 回滚段的基本功能。
• 回滚段使用可用空间的独特方式。
• 监控回滚段的使用。
• 正确选择数据库回滚段的大小和数量。
7.1 回滚段概述
S Q L的r o l l b a c k命令使用户能撤消对数据库所做的事务。这种功能对任何 u p d a t e 、i n s e r t或
者d e l e t e事务都有效;但对数据库对象的变动则无能为力 (如alter table命令) 。当选择其他用户
正在改变的数据时,O r a c l e使用回滚段来展示变动前的数据。
7.1.1 数据库对回滚段的使用
回滚段包含数据库中发生的每一次事务处理,使数据库在多次变动中仍能保持读取的一
致性。可用回滚段的数量和大小由 D B A在数据库创建时设定。
由于回滚段在数据库中创建,所以也必须在一个表空间中创建它们。第一个回滚段被称为
S Y S T E M,它存储在S Y S T E M表空间中。接下来的回滚段通常也在另外至少一个表空间中创建。
由于回滚段在表空间中创建,所以它们的最大尺寸也就要受数据文件空间容量的限制。因此,
恰当地设置回滚段的大小是一项非常重要的工作。图 7 - 1描述回滚段在表空间中的存储情况。
数据字典表和索引
SYSTEM表空间 SYSTEM回滚段 第二回滚段
自由空间
产品回滚段#1
产品回滚段#2
RBS表空间 产品回滚段#3
产品回滚段#4
自由空间
图7-1 表空间中回滚段的存储情况
第7章 回滚段管理 167
下载
回滚段条目(rollback segment entry) 是“前”映像数据块的集合,含有被一个事务修改的
数据行。每个回滚段条目必须完整地包含在回滚段内。一个回滚段可以支持多个回滚段条目。
这就使得可用回滚段的数目直接关系到数据库的性能。图 7 - 2说明了回滚段与回滚段条目之间
的关系。
数据库以循环方式将事务分配给回滚段。这种分配方式使得每一个回滚段中被分配的事
务数目比较平均。尽管可以给一个事务指定回滚段 ( 见本章后面的 7 . 1 . 3节“为事务指定回滚
段”) ,但大多数事务使用缺省方式。因为使用循环分配方法,所以拥有不同大小的回滚段没
有任何益处。
可以创建指定为私有 ( p r i v a t e )或公用( p u b l i c ) 的回滚段。这些指定表示该回滚段是对一个
实例可用还是对访问那个数据库的多个实例可用。当一个实例打开一个数据库时,就显式获
得私有回滚段 (见本章7 . 1 . 2节“激活回滚段” ) 。如果另一个实例访问同一数据库,这个实例
就不能使用已由第一个实例获得的同一个私有回滚段,而只能使用它自己的私有回滚段或是
从公用回滚段的共享池中获得。
RBC表空间
产品回滚段#1 事务1的条目 事务5的条目
产品回滚段#2 事务2 的条目 自由空间
产品回滚段#3 事务3的条目
显示全部