知识大全 Oracle8i中回滚段使用和ORA-1555

Posted 区间

篇首语:一万年来谁著史,三千里外欲封侯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle8i中回滚段使用和ORA-1555相关的知识,希望对你有一定的参考价值。

Oracle8i中回滚段使用和ORA-1555  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  回滚段中保存的回滚数据有 个作用 一致读和回滚 回滚段是由连续block组成的区间extent组成 回滚段有顺序的循环的使用这些区间 当当前区间写满的时候 oracle移向下一个区间 如一个回滚段有 个区间A B C D;当区间C被写满的时候 oracle将写区间D 而当D写满的时候 oracle将尝试重新写区间A 这样循环的有顺序的使用区间

  事务必须将回滚信息写到回滚段中 事务的当前新产生的回滚信息写在该回滚段的位置叫做回滚段的head 而在该回滚段上最早发生的尚未提交的事务最早产生的回滚信息所在位置叫做回滚段的tail 当前区间写满的时候 oracle移动head到下一个区间

   i时每个事务只能使用一个回滚段 Oracle会根据回滚段workload 平均将事务分配给各个回滚段 在回滚段使用上的一些规则

   一个事务只能使用一个回滚段

   多个事务可以共用一个区间 但Active的事务不能共用一个block

   回滚段的current extent写满的时候 回滚段的Head不能够移动到回滚段tail所在的区间

   区间总是被有顺序的循环的时候 当head移动的时候 不会跳跃区间 只能移动到下一个区间

   如果head不能够使用下一个区间(如tail在下一个区间) 将会分配一个新的区间extent 并将新区间extent插入到这个循环使用的extent圈中 这叫做回滚段的扩展

  ORA snapshot too old主要是在一致读和延迟块清除delay block cleanout的时候产生

  [参考]一致读的步骤

   Read the Data Block

   Read the Row Header

   Check the Lock Byte to determine whether theres an ITL entry

   Read the ITL entry to determine the Transaction ID (Xid)

   Read the Transaction Table using the Transaction ID If the transaction has been mitted and has a System Commit Number less than the querys System Change Number update the status of the block (block cleanout) and start over at step

  第 步细分

   IF 在Transaction Table 中根据Transaction ID 找到transaction

   IF transaction 已经mit

   IF query scn>mit scn

   则接受该块 进行clean out 返回

   ELSEIF query scn

   则进行一致性读 从第 步向后执行

   ELSEIF transaction 没有mit

   也进行一致性读 从第 步向后执行

   ELSEIF 在Transaction Table 中没有找到transaction(undo header中的transaction slot被覆蓋了 也说明事务已经提交 因为只有提交后所在的transaction slot才能被覆蓋 这样query scn则去比较control scn 在该回滚段上control scn以前的transaction都已经被提交 也就是事务表中所能找到的最小的mit scn了)

   IF query scn

   则无法知道query scn和mit scn得大小关系 出现ORA 错误

   IF query scn>control scn

   则query scn肯定>mit scn

   则接受该块 进行clean out 并将block 中ITL标记上 U 表示 upper bound mit 并返回

   Read the last undo block (Uba)

   Compare the block transaction ID with the transaction table transaction ID If the Transaction ID in the undo block doesnt equal the Transaction ID from the Transaction Table then issue ORA Snapshot Too Old 表示回滚段中回滚信息被覆蓋 无法为一致读提供必需的before image

   If the Transaction IDs are identical make a copy of the data block in memory Starting with the head undo entry apply the changes to the copied data block

   If the tail undo entry (the actual first undo entry in the chain or the last in the chain going backwards!) indicates another data block address read the indicated undo block into memory and repeat steps and until the undo entries dont contain a value for the data block address

   When theres no previous data block address the transaction has been pletely undone

   If the undo entry contains:

  a a pointer to a previous transaction undo block address read the Transaction ID in the previous transaction undo block header and read the appropriate Transaction Table entry Return to step

  b an ITL record restore the ITL record to the data block Return to step

  出现 的时候 首先判断是哪个原因导致 可以设置event 如果因为transaction slot被覆蓋导致 则增加回滚段数目 如果因为回滚信息被覆蓋 则增加回滚大大小 错误比较复杂 通常需要考虑很多问题

  event = trace name processstate forever level

cha138/Article/program/Oracle/201311/17091

相关参考

知识大全 Oracle回滚段管理

Oracle回滚段管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  回滚段管理一直是ORACL

知识大全 Oracle回滚段学习

Oracle回滚段学习  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文详细介绍了Oracle

知识大全 Oracle回滚段空间回收步骤

Oracle回滚段空间回收步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  是谁偷偷的用了那么

知识大全 查看哪些session正在使用哪些回滚段

  系统环境操作系统Windows  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    测试方法打开多个SQL*Plus窗口一些做一些需要回滚的操作如insertde

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

Oracle回滚段的概念,用法和规划及问题的解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 oracle的事务与锁与回滚段block的一点研究

  SQL> createtableaasselectrownuma fromtwhererownum<;     表已创建     SQL

知识大全 充分利用自动撤销管理的优点

  在Oraclei中Oracle对回滚段进行了重新命名现在将其作为撤销日志在传统的操作上回滚段保存交换的撤销信息直到系统发送一个响应或者回滚语句    人工撤销管理在Oraclei仍然被使用但绝大多

知识大全 存储参数storage子句含义及设置技巧

  系统环境  操作系统Windows  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    解释        可用于表空间回滚段表索引分区快照快照日志    参数名

知识大全 数据库管理员日常工作中必备的sql列表[3]

  查看用户的回滚段的信息  selectsusernamernnamefromv$sessionsv$transactiontv$rollstatrv$rollnamern  wheressaddr

知识大全 Oracle8i 概述

Oracle8i概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!       ■Internet