ORA-01555 快照过旧--详细解释
日期:2008年6月15日 作者: 查看:[大字体 中字体 小字体]-
概述
本文将讨论查询返回 ORA-01555”快照过旧”(回滚段太小).本文将进一步探讨防止此错误的措施,并最终提供一些简单的用于演示的PL/SQL脚本.
术语
读者需要熟悉标准Oracle术语,如”回滚段”与”SCN”.否则,应当首先阅读Oracle Server Concepts手册与相关文档.
进一步的,有助于理解ORA-01555的两个关键概念概述如下 :
1. 读一致性
文档可见Oracle Server Concepts,此处不深入讨论.但,为理解本文,如尚未理解,请阅读并理解.
Oracle Server支持多版本读一致性,它保证你看到一致的数据(无"脏"数据),这时不可估量的.
2. 延迟的块清出
用一个例子可以很好的说明:考虑一个更新100万行的表的事务.这显然需要访问大量的数据库块以修改数据.当用户提交事务时,Oracle并不重新访问这些块并进行永久性修改.这将留给下一个需要访问此更新涉及块的事务来"清洁"这些块(即,延迟的块清出).
Oracle修改任一数据库块(索引,表,簇)时,均在数据块头存放一个指针,指向保存有事务修改的回滚信息的回滚段.(这用于防止用户决定不提交更改,并希望"重做"已做的修改).
Upon commit, the database simply marks the relevant rollback segment header entry as committed. Now, when one of the changed blocks is revisited Oracle examines the header of the data block which indicates that it has been changed at some point. The database needs to confirm whether the change has been committed or whether it is currently uncommitted. To do this, Oracle determines the rollback segment used for the previous transaction (from the block's header) and then determines whether the rollback header indicates whether it has been committed or not.
If it is found that the block is committed then the header of the data block is updated so that subsequent Accesses to the block do not incur this processing.
This behaviour is illustrated in a very simplified way below. Here we walk through the stages involved in updating a data block.
STAGE 1 - No changes made
Description: This is the starting point. At the top of the data block we have an area used to link active transactions to a rollback segment (the 'tx' part), and the rollback segment header has a table that stores information upon all the latest transactions that have used that rollback segment. - [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页
-
- ORA-01555 快照过旧--详细解释 相关文章:
- ·ORA-01555 快照过旧--详细解释
- ·CPU主要参数名词解释
- ·正则表达式之全部符号解释
- ·Oracle主要的配置文件解释
- ·Runtime错误解释分析
- ·解释一个关于Hibernate lazy的问题
- ·Win2000命令全集及解释
- ·有关ORA600错误的参数的解释文档
- ·自己动手做一个SQL解释器
- ·黑客技术解释:计算机蜜罐技术
- ORA-01555 快照过旧--详细解释 相关软件
- ·经济解释
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:RMAN命令
精品推荐
热点TOP10
- ·Oracle触发器详细介绍
- ·详细介绍ORACLE sqlplus命令
- ·Oracle的SQL*PLUS命令的使用大全
- ·VMware下RedHat安装Oracle 9i RAC全攻略
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·(原创)ORA-01092: ORACLE 例程终止。强行断开连接
- ·9istatspack使用手册
- ·Oracle 游标使用大全
- ·Oracle的SQL语句执行效率问题查找与解决方法
- ·Oracle中分区表的使用
- ·oracle中pro*c的学习
- ·ORA-12154: TNS: 无法解析指定的连接标识符
- ·Oracle数据库检查死锁的sql
- ·ORACLE傻瓜手册长篇连载
- ·自己整理的OCI文档,抛砖引玉
- ·用正则表达式函数验证身份证号码合法性
- ·ORACLE UPDATE 语句语法与性能分析的一点看法
- ·解决ora-01861文字与格式字符串不匹配
- ·ora-04031错误解决方法及详细分析
- ·Pro*C的使用
特别推荐
- ·入侵Oracle数据库常用操作命令
- ·ORACLE UPDATE 语句语法与性能分析的一点看法
- ·Oracle SQL精妙SQL语句讲解
- ·Oracle环境下APACHE虚拟服务器如何设置
- ·常见Oracle HINT的用法
- ·ORA-00257: archiver error. Connect internal only, until freed.
- ·oracle的update问题
- ·小议索引的使用
- ·oracle产品服务和技术级别介绍,OrACLE服务
- ·Oracle 数据类型
- ·Oracle数据库检查死锁的sql
- ·怎样将冷备份移植到另一台Solaris机器上
- ·Oracle 动态SQL返回单条结果和结果集
- ·手动建立 Oracle9i 数据库
- ·Oracle内存结构(二)----Shared Pool的详细信息
- ·DELPHI 调用 Oracle 存储过程并返回数据集的例子.
- ·关于block中行数据的存储与空间重组三
- ·Sybase及SQL Anywhere SQL语句小结
- ·ORACLE备份&恢复案例--ORACLE BACKUP&RESTORE SCHEME
- ·Oracle ERP 11业务调研报告-AP应付帐
