从之前对ORA-01555错误的成因分析可以知道,这个ORA-01555错误,正是由于表上存在未清除的事务,同时导出时间过长,UNDO段头的事务表被全部重用,ORACLE在查询到有未清除事务的块时不能确定事务提交时间是否早于导出(查询)开始时间,这时候就报ORA-01555错误。 要解决这个错误,除了提高性能,那么从另一个角度来思考这个问题...
增加Undo空间:ORA-01555错误的一个常见原因是Undo段不足。可以通过增加Undo表空间的大小来解决这个问题。在Oracle中,可以使用ALTER TABLESPACE命令来增加Undo表空间的大小。 优化查询:减少查询的运行时间也是解决ORA-01555错误的有效方法。优化查询可以降低对Undo段的需求,从而减少出现ORA-01555错误的可能性。优化查询的方法...
资深Oracle DBA,个人网站www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. ORA-01555(快照过旧)问题让很多人感到十分头痛。最近我们的生产系统上也报出了ORA-01555错误。就结合这次案例将ORA-1555问题作个案例分析,并浅析产生原因和各种解决办法。 如果要了解1555错误产生的原因,就需要知道...
1、UNDO段对于系统所运行的工作负荷太小; 2、在循环过程中有事务提交是造成ORA-01555错误的最常见的原因; 3、block cleanout; 解决ORA-01555错误的解决方案有下面几种: 1、适当的设置UNDO_RETENTION参数值(大于事务执行可能需要的最长时间);如果UNDO_RETENTION参数值变大,那么同时也需要根据果UNDO_RETENTION参数值大...
ORA-01555快照过旧报错 一、现象 将数据迁移到新库时,执行较大的存过,会报这个错误。 二、原因 产生该报错的原因: (1)sql执行比较久,需要优化sql (2)回滚段过小 (3)undo保存时间过短 三、具体检查及恢复 1、查看sql的执行计划,看看是否可以优化。因为我这边出现这个现象是数据库迁移后发生的,老库可以执行...
解决ora01555错误的方法主要有以下几种: 增加回退段的大小:通过调整回退段的大小,确保事务能够读取到所需的数据版本。 优化事务大小:尽量避免长时间运行的事务,将大事务拆分为多个小事务。 使用适当的隔离级别:根据应用需求选择合适的隔离级别,以减少对旧版本数据的依赖。 增加回退保留时间:通过调整数据库参数,增加回退...
还有一种触发ora-01555的情况可以自行搜索“延迟块清除”,因为比较少见,所以不做讨论。 解决办法: 1.最直接的方法,检查可用的undo段够不够用,是自动管理还是手动管理,是否支持扩展,增加数据文件max_size需要dba协助操作。 2.增大undo_retention值,alter system set UNDO_...
ORA-01555 快照过旧,是数据库中很常见的一个错误,比如当我们的事务需要使用undo来构建CR块的时候,而此时对应的undo 已经不存在了, 这个时候就会报ORA-01555的错误。 ORA-01555错误在Oracle 8i及之前的版本最多。从9i开始的undo自动管理,至现在的10g、11g中的undo auto tuning,使得ORA-01555的错误越来越少。但是...
出现ORA-01555错误,通常有2种情况: (1)SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks),这种情况最多。
Expdp时报ORA-01555 使用expdp进行OGG初始化时,遇到一张表报ORA-01555,简单记录处理过程。 1、查看了这张表的相关信息。这张表10个字段,其中就有3个LOB字段(1个CLOB和2个BLOB);数据量大概900GB左右。 2、重新expdp导出这张表,主要的导出参数(parallel=1,因为只导出一张表,开并行导出没有意义;去掉compression=...