ORACLE回滚段管理(上)

2016-02-19 18:46 2 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是ORACLE回滚段管理(上),一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

  回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念,用法和规划及问题的解决。

  回滚段概述

  回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在使用的该回滚段事务的信息。一个事务只能使用一个回滚段来存放它的回滚信息,而一个回滚段可以存放多个事务的回滚信息。

  回滚段的作用

  事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。

  事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在重做日志文件中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。

  读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。而且,当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)。当ORACLE执行SELECT语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN)来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时,若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。

  事务级的读一致性

  ORACLE一般提供SQL语句级(SQL STATEMENT LEVEL)的读一致性,可以用以下语句来实现事务级的读一致性。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  SET TRANSACTION READ ONLY;

  或:

  SET TANNSACTION SERIALIZABLE;

  以上两个语句都将在事务开始后提供读一致性。需要注意的是,使用第二个语句对数据库的并发性和性能将带来影响。

  回滚段的种类

  系统回滚段:当数据库创建后,将自动创建一个系统回滚段,该回滚段只用于存放系统表空间中对象的前影像。

  非系统回滚段:拥有多个表空间的数据库至少应该有一个非系统回滚段,用于存放非系统表空间中对象的数据前影像。非系统回滚段又分为私有回滚段和公有回滚段,私有回滚段应在参数文件的ROLLBACK SEGMENTS参数中列出,以便例程启动时自动使其在线(ONLINE)。公有回滚段一般在OPS(ORACLE并行服务器)中出现,将在例程启动时自动在线。

  DEFERED回滚段:该回滚段在表空间离线(OFFLINE)时由系统自动创建,当表空间再次在线(ONLINE)时由系统自动删除,用于存放表空间离线时产生的回滚信息。

  回滚段的使用

  分配回滚段:当事务开始时,ORACLE将为该事务分配回滚段,并将拥有最少事务的回滚段分配给该事务。事务可以用以下语句申请指定的回滚段:

  SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  事务将以顺序,循环的方式使用回滚段的区(EXTENTS),当当前区用满后移到下一个区。几个事务可以写在回滚段的同一个区,但每个回滚段的块只能包含一个事务的信息。

  例如(两个事务使用同一个回滚段,该回滚段有四个区):

  1、事务在进行中,它们正在使用回滚段的第三个区;

  2、当两个事务产生更多的回滚信息,它们将继续使用第三个区;

  3、当第三个区满后,事务将写到第四个区,当事务开始写到一个新的区时,称为翻转(WRAP);

  4、当第四个区用满时,如果第一个区是空闲或非活动(使用该区的所有事务完成而没有活动的事务)的,事务将接着使用第一个区。

  回滚段的扩张(EXTEND)

  当当前回滚段区的所有块用完而事务还需要更多的回滚空间时,回滚段的指针将移到下一个区。当最后一个区用完,指针将移到第一个区的前面。回滚段指针移到下一个区的前提是下一个区没有活动的事务,同时指针不能跨区。当下一个区正在使用时,事务将为回滚段分配一个新的区,这种分配称为回滚段的扩展。回滚段将一直扩展到该回滚段区的个数到达回滚段的参数MAXEXTENTS的值时为止。

  回滚段的回收和OPTIMAL参数

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

来源:http://www.tulaoshi.com/n/20160219/1618917.html

延伸阅读
标签: 电脑入门
Win10预览版10041相比之前泄露的10036版本来说,变化不大。但初步上手体验中,发现其稳定性似乎有一定的提升,但具体如何仍然有待于进一步深度体验后才能得知。已经安装泄露版Win10预览版10036的用户,将无法更新至10041版本。 目前微软方面尚未放出Win10预览版10041的ISO镜像下载,用户可以直接通过修改为快速更新频率后,然后检查更新并...
1.1. 何为闪回恢复区 Oracle 10g 有一项新功能称为:自动的基于磁盘的备份与恢复( Automatic Disk-Based Backup and Recovery )。实现该功能的基础为本文要讲述的闪回恢复区( Flash Recovery Area )。闪回恢复区是 Oracle 10g 中的新事物。简单的说,闪回恢复区是一块用以存储恢复相关的文件的存储空间。 允许用户集中存储所有...
3.3.1 用户 1. 用户密码 用户默认的密码为manager。 2. 用户权限 用户具有SYSDBA权限,即数据库管理员权限,包括。 打开数据库服务器 关闭数据库服务器 备份数据库 恢复数据库 日志归档 会话限制 管理功能 创建数据库 3.3.2 用户 1. 用户密码 用户默认的密码为change_on_install。...
3.1.1 直接管理模式 直接管理模式的原理如图3.1所示,共有3层结构。 1. 管理客户机 在管理客户机上安装,通过调用其他的集成管理工具,利用SQL *NET协议建立与数据库服务器的连接。 2. 连接网络 常用TCP/IP协议构建连接网络。 3. 数据库服务器组 分布式的数据库服务器组,服务器运行SQL *NET协议响应...
Oracle 9i预定义的角色 表8.2 Oracle 9i预定义的角色 角色名称说明CONNECT数据库连接角色,用于连接数据库,具有创建簇、数据库链接、序列、同义词、表和视图,以及修改会话的权利DBA数据库管理员角色,具有所有使用ADMIN选项创建的系统权限,可以将系统权限授予其他用户或角色DELETE_CATALOG_ROLE删除目录角色,可以删除或重建数据字...

经验教程

519

收藏

6
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部