回滚段:存放修改之前的值(包括位置).头部包含正在使用回滚段事务的信息.一个事务只能用一个回滚段,一个回滚段可以存放多个事务.
事务回滚:使用事务,修改前的值(前影像)存放在回滚段.当rollback,利用前影像恢复到原值.
事务恢复:事务处理例程失败,回滚段信息保存在重做日志,oracle下次打开数据库利用回滚恢复未提交数据.
读一致性.1)自己读,其他会话修改 . 2)自己改,其他会话读. oracle执行select,若有改变,利用前影像构造读一致性视图.(利用系统改变号scn,前于当前scn的未提交数据不被该语句处理).
锁:
oracle提供sql语句的读一致.
set transaction read only;--
set transaction serializable;--
系统回滚段:只用于存储系统表空间的前影像;
非系统回滚段:至少一个,存放非系统表空间前影像,包括
private:应在参数文件的 rollback segments列出,以在例程启动时使其自动online;
ROLLBACK_SEGMENT=(rbs01,rbs02)
public:一般在ops(oracle并行服务器出现),在例程启动时使其自动online;
defered回滚段:表空间offline时自动创建
回滚段分配:分配最少事务的回滚段
SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment;--指定
事务以顺序,循环方式使用回滚段的区(extends);
同一个区可有多个事务,一个块只能有一个事务;
事务开始使用一个区,称翻转(wrap)
当一个区空闲或非活动(unactive),可再使用
当下一区active,事务为回滚段分配一个新区(扩展)
OPTIMAL参数指明回滚段空闲时收缩到的位置
回滚段应创建在一个特定的回滚段表空间内
CREATE ROLLBACK SEGMENT rbs01
TABLESPACE rbs
STORAGE ( INITIAL 100K NEXT 100K MINEXTENTS 10
MAXEXTENTS 500 OPTIMAL 1000K);
ALTER ROLLBACK SEGMENT rollback_segment ONLINE;--刚创建时offline
ALTER ROLLBACK SEGMENT rbs01 STORAGE (optimal 1000);--修改
ALTER ROLLBACK SEGMENT rollback_segment SHRINK [TO integer [K|M]];--手动回收
DBA_ROLLBACK_SEGS -------
--数据字典
--统计信息
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;
--活动项
SELECT s.username,t.xidusn,t.ubafil,t.ubablk,t.used_ublk
FROM v$session s,v$transaction t
WHERE s.saddr=t.ses_addr;
--数量规划
1.OLPT系统,大量小事务 ,一个回滚段4个事务,不超过10个
2.批处理. 少的大事务,一个回滚段一个事务
--重建回滚段,比较弱的方式
ALTER ROLLBACK SEGMENT R01 OFFLINE;
DROP ROLLBACK SEGMENT R01; --删除segment
alter tablespace rbs offline;
drop tablespace rbs;
Create TABLESPACE "RBS" DATAFILE --重建表空间
'/dev/rdrd/rbs01.ora' SIZE 500M,
'/dev/rdrd/rbs02.ora' SIZE 500M;
CREATE ROLLBACK SEGMENT "R01" TABLESPACE "RBS" --重建segment 每个250M,即是表空间/4
STORAGE ( INITIAL 200M NEXT 2M OPTIMAL 250M MINEXTENTS 2 MAXEXTENTS 25); --INITIAL+NEXT*MAXEXTENTS
分享到:
相关推荐
Oracle 回滚段使用率过高之解决方法 Oracle 回滚段是一种重要的数据库机制,它用于存放数据修改之前的值,以便在事务回滚或恢复时使用。然而,回滚段使用率过高可能会导致数据库性能下降和空间不足的问题。本文将...
Oracle数据库中的回滚段(Rollback Segments)是存储事务历史的重要组件,它们记录了数据修改前的状态,以确保数据的完整性和一致性。在深入理解回滚段之前,我们需要先明确其基本概念和作用。 回滚段的主要功能...
### Oracle数据库回滚段专题解析 #### 回滚段概述 在Oracle数据库中,回滚段(Rollback Segment)是一种非常重要的数据结构,主要用于存储数据修改前的状态信息,即所谓的“前影像”。这一机制对于确保数据库的...
回滚段是Oracle数据库中非常重要的组成部分,它们主要用于存储事务回滚信息,即记录数据库中的所有更改,以便在事务回滚或系统恢复时使用。在上述情况中,数据库管理员发现了一个名为"undotbs1"的回滚表空间的数据...
### ORACLE回滚段的概念、用法和规划及问题解决 #### 一、回滚段的概念 在Oracle数据库中,**回滚段(Rollback Segment)**是一种特殊类型的段,用于存储事务处理过程中更改的数据的旧值。这些数据在事务处理期间...
Oracle数据库回滚段的故障分析与性能优化 回滚段是 Oracle 数据库的重要组成部分,数据库的性能与回滚段息息相关。本文将针对数据库回滚段常见的故障进行系统的分析,结合实例提出相应的解决方案,并对数据库回滚段...
### Oracle回滚段探究 #### 一、引言 在Oracle数据库中,回滚段扮演着至关重要的角色,尤其是在确保事务处理的完整性和提供一致性视图方面。本文旨在深入探讨Oracle回滚段的相关知识,包括其作用、原理、分配与...
【回滚段】是Oracle数据库管理系统中的一个重要组成部分,主要用于存储数据修改前的状态,确保事务的回滚、恢复和读一致性。在Oracle 8i及更早版本中,回滚段的管理尤其关键。 **一、回滚段的作用** 1. **事务回滚...
在Oracle数据库管理中,回滚段(Rollback Segment)是一个重要的组成部分,主要用于存储事务处理的回滚信息。当系统遇到回滚段灾难,如回滚段损坏或异常,导致数据库无法正常启动时,进行有效的灾难恢复是至关重要的...
Oracle回滚段是数据库管理系统中的核心组件,主要负责存储数据修改前的状态,以支持事务的回滚、恢复和读一致性。回滚段是Oracle数据库管理的重要部分,对于DBA来说,理解和有效地管理回滚段至关重要。 回滚段的...
回滚段管理是Oracle数据库管理的关键组成部分,主要负责处理事务的回滚、恢复以及提供读一致性,确保数据库的完整性和一致性。以下是对回滚段及其管理的深入解析: ### 回滚段工作原理 #### System回滚段与用户...
Oracle回滚段管理知识 Oracle 回滚段管理是数据库管理系统中的一项重要功能,它用于管理事务的回退和恢复。下面是 Oracle 回滚段管理的知识点总结: 一、回滚段简介 回滚段是 Oracle 数据库中的一种特殊类型的表...
Oracle数据库的回滚段是其核心组成部分之一,主要用于维护数据一致性与进行数据库恢复。回滚段,正如其名,是用来存放事务处理过程中增、删、改数据的历史信息,确保在事务回滚或数据库恢复时能正确操作。在Oracle 8...
### MySQL InnoDB 日志 回滚段 & 崩溃恢复实现详解 #### 知识准备 - **ACID** - 在数据库管理系统中,事务具有四个关键属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性...
Oracle数据库的回滚段是其核心存储结构之一,主要用于维护数据的一致性和可恢复性。在Oracle数据库系统中,回滚段(Rollback Segment)扮演着至关重要的角色,它们存储了事务处理(Transaction)的回滚信息,确保了...
### Oracle的回滚段存储内容分析 #### 一、事务处理与数据缓冲区的作用 在Oracle数据库中,当一个事务开始执行数据修改语言(DML)操作时,例如`UPDATE`、`INSERT`或`DELETE`,Oracle首先将涉及到的数据块加载到...
Oracle 回滚段 Oracle 回滚段是 Oracle 数据库中的一种重要组件,它用于保存数据库修改前的数据,以便在需要时可以通过 ROLLBACK 命令恢复到修改前的数据。回滚段的设置对数据库的性能产生直接影响,特别是在更新...