`

ORACLE回滚段管理(上)

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

回滚段概述

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

回滚段的作用

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

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

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

事务级的读一致性

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

SET TRANSACTION READ ONLY;

或:

SET TANNSACTION SERIALIZABLE;

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

回滚段的种类

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

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

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

回滚段的使用

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

SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment

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


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

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

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

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

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

回滚段的扩张(EXTEND)

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

回滚段的回收和OPTIMAL参数

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

相关推荐

    ORACLE回滚段的概念、用法和规划及问题解决

    回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念

    Oracle回滚段管理知识.pptx

    Oracle回滚段管理知识.pptx

    Oracle回滚段的概念,用法和规划及问题的解决

    回滚段管理一直是ORACLE数据库管理的一个难题,本文通过实例介绍ORACLE回滚段的概念,用法和规划及问题的解决。 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的头部包含正在...

    回滚段管理

    oracle 回滚段管理

    回滚段参数修改

    oracle 回滚段参数的管理,特别是orale 8i版本前的应用。

    oracle各种文档

    JOB使用方法.doc ORACLE RMAN快速入门指南.doc ORACLE 常见问题.doc ORACLE 常用命令.doc ORACLE 开发管理经验.doc ORACLE 回滚段管理.doc ORACLE 碎片整理.doc Oracle WebServer中文手册 .chm v2.0.pdfPrentice...

    oracle数据库dba管理手册

    第7章 回滚段管理 166 7.1 回滚段概述 166 7.1.1 数据库对回滚段的使用 166 7.1.2 激活回滚段 168 7.1.3 为事务处理指定回滚段 169 7.2 回滚段的空间使用 169 7.3 监控回滚段使用 173 7.3.1 监控当前空间分配 173 ...

    Oracle高级详细资料

    主要是Oracle物理内存的分配、Oracle 数据库碎片整理、Oracle回滚段的管理、Oracle数据库 系统使用经验、Oracle数据库性能优化技术的资料 相当详细

    Oracle10g数据库维护手册

    常用文件、DBA最需要监控的项目、数据库和实例概述、创建数据库、如何进行表空间规划和管理、表空间的...回滚段的问题及解决方法、备份与恢复管理、RMAN的使用、ORACLE NET的配置、大型数据库管理常用技术、ORACLE FAQ

    Oracle数据库学习指南

    14. ORACLE回滚段管理(上) 15. ORACLE回滚段管理(下) 16. Oracle基于Client-Server的性能调整 17. Oracle数据库的安全策略 18. ORACLE数据库简介 19. Oracle数据库密码文件的使用和维护 20. Oracle数据库...

    相克军 ORACLE 讲座 深度剖析UNDO段 笔记.doc

    里面也有段区块,ORACLE自动建立生成、自动使用UNDO段。 作为高级别的DBA是需要知道ORACLE如何使用UNDO段的。 1 Undo表空间及管理方式 ORACLE开始一个事务的时候,会用到表空间。将修改前的数据保存在UNDO段里。 ...

    oracle基础教程

    第2章 管理ORACLE数据库 21 2.1 基本概念 21 2.1.1 数据字典 21 2.1.2 事务管理 23 2.1.3 数据库管理员(DBA) 24 2.1.4 ORACLE的四种状态 25 2.2 SQL*Plus方式的ORACLE数据库启动和关闭 26 2.2.1 启动数据库 26 2.2.2...

    oracle数据库的优化

    若任何一个的比率大于1%则建议再创一个回滚段: 8 避免动态分配空间 8 优化REDO日志 8 检测Redo日志缓冲区锁存: 8 减少Redo日志转储I/O争用: 8 优化系统全局区(SGA) 9 优化数据库缓冲区高速缓存: 错误!未定义...

    ORACLE数据库巡检模板

    1. 检查介绍 1.1 检查系统 1.2 检查范围 2. 硬件配置 2.1 主机配置 3. 系统配置 3.1 操作系统数据库相关要求补丁 3.2 硬盘可用空间 3.3 CPU 利用率 4. 数据库配置 ...4.13 回滚段管理 .....

    Oracle四大宝典之二:Oracle基本管理 中文版

    第八章 还原(回滚)数据管理 第九章 管理表 第十章 管理索引 第十一章 维护数据完整 第十二章 数据库安全管理 第十三章 管理用户 第十四章 管理角色 第十五章 管理权限 第十六章 审计 第十七章 ORACLE NET 体系架构...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:...

    Oracle 9i中自动撤销管理的优点分析

    自动撤销管理允许DBA指定撤销信息在提交之后需要保留的时间,以防止 在长时间的查询过程中出现“snapshot too old”的错误。...无需定义和管理回滚段,你就可以简单地指定一个撤销表空间而减轻Oracle9i的负担。

    ORACLe数据库管理员教程

    ORACLe数据库管理员教程Oracle数据库的具体方针,例如回滚段的管理及口令的建立。第 三部分描述 Oracle在网络环境中的使用方法。最后一部分介绍最常用的 SQL命令的语法

Global site tag (gtag.js) - Google Analytics