`
iihero
  • 浏览: 258108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Oracle数据库中的undo回滚段

阅读更多

Oracle数据库当中,关于日志与回滚那一部分,与别的数据库确实有很大的不同。为了避免在写日志的同时后台进程对日志文件的读操作,Oracle使用了单独的回滚段来记录“旧”的数据。这样可以达到并行读写的目的,整体I/O效率提高了不少,但也引入了一些问题。
最经典的莫过于ORA-01555:snapshot too old错误了。
1.什么操作产生最多的撤消?

Insert产生最小的撤消,但是应该产生相当多的redo数据。因为undo回滚面只需要记录要“删除”那些新行的id。
Update一般是第二位(通常情况下),所要做的是记录修改过的字段值,常见的情况是update整行数据的一小部分。
Delete才会产生最多的撤消,一个事务有可能就是delete一张超大的表,结果导致回滚段不够用,出现上述错误。

2.set transaction语句调用回滚段

Set transaction语句用于“选择”事务要使用的回滚段。这主要是为了对某些较大的操作能够确保有大的回滚段。对于某些特定的事务,可能有必要这么做。
若有必要的话,可以进行一个最优的设置,让回滚段扩展到一定大小后缩小为原来大小,因为不必拥有一个特别的“大回滚段”。

分享到:
评论

相关推荐

    oracle数据库回滚段专题解析

    如果事务最终需要回滚(通过`ROLLBACK`命令),则Oracle数据库会利用回滚段中的数据前影像将已修改的数据恢复到原始状态。此外,在事务处理过程中如果遇到实例失败(例如服务器故障),回滚段中记录的信息会被保存在...

    深入解析oracle的回滚段

    Oracle数据库中的回滚段(Rollback Segments)是存储事务历史的重要组件,它们记录了数据修改前的状态,以确保数据的完整性和一致性。在深入理解回滚段之前,我们需要先明确其基本概念和作用。 回滚段的主要功能...

    对Oracle数据库回滚日志的清理

    在Oracle数据库管理中,回滚日志(Rollback Segment)是用于存储事务处理过程中更改前的数据副本的关键组件,以便在需要时可以恢复到事务开始前的状态。然而,随着时间的推移,这些日志文件可能会积累大量的数据,...

    oracle 回滚段灾难恢复

    在Oracle数据库管理中,回滚段(Rollback Segment)是一个重要的组成部分,主要用于存储事务处理的回滚信息。当系统遇到回滚段灾难,如回滚段损坏或异常,导致数据库无法正常启动时,进行有效的灾难恢复是至关重要的...

    oracle 回滚段探究

    在Oracle数据库中,回滚段扮演着至关重要的角色,尤其是在确保事务处理的完整性和提供一致性视图方面。本文旨在深入探讨Oracle回滚段的相关知识,包括其作用、原理、分配与管理、诊断以及常见问题等内容。 #### 二...

    地震前兆Oracle数据库UNDO表空间持续增长修复.pdf

    UNDO表空间在Oracle数据库中主要用于回滚事务,确保数据一致性。当其异常增长,可能是由于未完成的事务、索引错误或系统进程异常等原因。 首先,当遇到此类问题,首要任务是查看alert日志,以定位故障类型。在本例...

    Oracle数据库参数设置

    Oracle 数据库参数主要包括磁盘 I/O、回滚段、redo 日志、SGA 参数等。 磁盘 I/O 是 Oracle 数据库的性能瓶颈之一。为了优化磁盘 I/O,可以采取以下策略: 1. 使用分布 I/O 减少磁盘竞争,避免多个进程同时读写同...

    回滚段管理

    在早期版本的Oracle中,回滚段的概念被广泛使用,但在现代Oracle数据库中,这一概念已被撤销段(undo segment)所取代。然而,为了讨论的连贯性,我们仍会提及“回滚段”。System回滚段通常位于SYSTEM表空间内,主要...

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

    理解回滚段的概念、用法、规划以及可能出现的问题的解决方法对于有效地管理和优化Oracle数据库至关重要。 首先,回滚段的基本概念是它是一个存储空间,用来保存事务操作导致的数据变化的旧值。这些旧值被称为前影像...

    oracle undo

    UNDO 段是 Oracle 数据库中的一种特殊类型的段,用于存储事务的回滚信息。 undo 段的介绍 undo 段是 Oracle 数据库中的一种特殊类型的段,用于存储事务的回滚信息。undo 段和表段、索引段类似,但是 undo 段是由 ...

    手工创建oracle数据库

    ### 手工创建Oracle数据库详解 #### 知识点一:手工创建Oracle...因此,对于IT专业人士而言,掌握手工创建Oracle数据库的技能,不仅能够提升自身的技术实力,也是企业级数据库管理和运维工作中不可或缺的能力之一。

    oracle数据库设计规范

    - Oracle 9i中使用Undo表空间替代回滚段表空间。 - Undo表空间大小可根据以下公式计算:`Undospace=`(此处文本缺失,需要具体计算公式或指导原则)。 #### 三、数据库逻辑设计原则 这部分虽然在给定内容中没有...

    Oracle 9i数据库中自动Undo表空间管理.pdf

    回退段是Oracle数据库中一个关键的组成部分,它存储了事务对数据进行修改前的原始值,这些信息用于实现事务回滚和保持数据的一致性。在Oracle 9i之前,回退段需要手动配置和管理,这是一个既复杂又容易出错的任务。 ...

    Oracle中重做undo表空间

    在Oracle数据库系统中,"重做undo表空间"是一个至关重要的概念,它是数据库事务处理的基础。Undo表空间是用来存储事务撤销操作时所需信息的地方,这些信息被称为重做日志(Redo Log)。当一个事务对数据进行修改时,...

    基于回滚段的oracle错误恢复技术研究.pdf

    【基于回滚段的闪回技术】回滚段是Oracle数据库撤销系统的重要组成部分,它存储了数据修改前的状态,用于回滚未提交的事务和错误恢复。当初始化参数`undo_management`设置为`auto`时,Oracle会自动管理回滚段,所有...

    Oracle数据库的体系结构.pdf

    后台进程是Oracle数据库实例中的重要组成部分,它们负责执行各种维护任务。主要的后台进程包括: - 数据库写入器(Database Writer,DBWn):负责将脏缓冲区的数据写入数据文件。 - 日志写入器(Log Writer,LGWR)...

    ORACLE redo undo.docx

    在自动管理模式下,Oracle 数据库会自动创建和管理 undo 表空间和回滚段。用户可以通过设置参数 undo_management 来控制 undo 管理机制。 IMU(In Memory Undo) IMU 是一种基于内存的 undo 机制,通过在 shared ...

    行业-45 如果事务执行到一半要回滚怎么办?再探undo log回滚日志原理!l.rar

    除了回滚事务之外,undo log还用于多版本并发控制(MVCC,Multi-Version Concurrency Control),这是许多数据库系统(如Oracle、PostgreSQL和InnoDB)采用的并发控制策略。MVCC允许多个事务同时访问同一数据,而...

Global site tag (gtag.js) - Google Analytics