Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1)

Posted zylong-sys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1)相关的知识,希望对你有一定的参考价值。

Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1)

APPLIES TO:

Oracle Database - Enterprise Edition - Version 9.2.0.1 to 11.2.0.4 [Release 9.2 to 11.2]
Information in this document applies to any platform.

PURPOSE

Purpose of this document is to have a checklist for troubleshooting ORA-01555/ORA-01628/ORA-30036 during export and import. 

本文档旨在提供一个清单,用于在导出和导入期间对ORA-01555/ORA-01628/ORA-30036进行故障排除

This note will also discuss some known issues on this subject.

本说明还将讨论有关此主题的一些已知问题

TROUBLESHOOTING STEPS

Before diagnosing undo errors reported during export and import, it is important first to check UNDO tablespace utilization and tuned undo retention as follow :

在诊断导出和导入期间报告的 undo 错误之前,重要的是首先要检查UNDO表空间利用率和 tuned undo retention,如下所示

SQL> SELECT DISTINCT STATUS,TABLESPACE_NAME, SUM(BYTES), COUNT(*) FROM DBA_UNDO_EXTENTS GROUP BY STATUS, TABLESPACE_NAME;

SQL> select max(maxquerylen),max(tuned_undoretention) from v$undostat;

SQL> select max(maxquerylen),max(tuned_undoretention) from DBA_HIST_UNDOSTAT;

SQL> select sum(bytes) from dba_free_space where tablespace_name=‘&UNDOTBS‘;

Before proceed, Invistiagte/Resolve any excessive allocation of ACTIVE/UNEXPIRED extents and high calculation of tuned_undoretention.

在继续之前,请检查/解决 ACTIVE/UNEXPIRED extents的任何过度分配以及 tuned_undoretention 的大量计算

1) ORA-01555 during export  导出期间为ORA-01555

check alert log and export log to determine 1555 error message. We have two different types of 1555 error :

检查 alert log 和 export log 以确定1555错误消息。我们有两种不同类型的1555错误

a. ORA-1555 accessing UNDO data at LOB segment :  ORA-1555在LOB段访问UNDO数据

ORA-01555: snapshot too old: rollback segment number  with name "" too small

notice that segment name is null "".

or/and

ORA-22924: snapshot too old

b. ORA-1555 accessing UNDO data at UNDO tablespace :  ORA-1555在UNDO表空间访问UNDO数据

ORA-01555: snapshot too old: rollback segment number 107 with name "_SYSSMU107_1253191395$" too small

notice that segment name is existing "_SYSSMU107_1253191395$" which mean undo data inside UNDO tablespace.

请注意,段名称是现有的 "_SYSSMU107_1253191395$" ,这表示 undo数据 在UNDO表空间中。

a. ORA-1555 accessing UNDO data at LOB segment :

ORA-01555 for LOB segment is caused by one of the following reasons :

LOB段的ORA-01555是由于以下原因之一引起的

1. LOB segment corruption :  LOB段损坏

To check the LOB table corruption, review the following documents : 要检查LOB表损坏,请查看以下文档

Export Receives The Errors ORA-1555 ORA-22924 ORA-1578 ORA-22922 (Doc ID 787004.1)
Export Fails With ORA-2354 ORA-1555 ORA-22924 and How To Confirm LOB Segment Corruption Using Export Utility? (Doc ID 833635.1)
ORA-01555 And Other Errors while Exporting Table With LOBs, How To Detect Lob Corruption. (Doc ID 452341.1)

2. If no LOB corruption found, so Issues with Retention/Pctversion values :  如果未发现LOB损坏,则 Retention/Pctversion 值的问题

You may need to increase Retention/Pctversion. Check following document carefully :  您可能需要增加 Retention/Pctversion。仔细检查以下文件

LOBs and ORA-01555 troubleshooting (Doc ID 846079.1)

b. ORA-1555 accessing UNDO data at UNDO tablespace : 

This is handled as a normal 1555 error. You may need to increase undo retention before run export and revert it back after export finish successfully :

这被视为正常的1555错误。您可能需要在运行导出之前增加undo retention,并在导出成功完成后将其还原

alter system set undo_retention=<NEW_VALUE>;

>> run export till finish successfully.   --运行导出,直到成功完成

alter system set undo_retention=<OLD_VALUE>;

Note: It is valid that ORA-1555 reported accessing UNDO data at UNDO tablespace when exporting a table with LOB column. In this case you need to identify which undo segment name is mentioned at 1555 error message as explained above and diagnose accordingly.

注意:在导出带有LOB列的表时,ORA-1555报告了在UNDO表空间上访问UNDO数据是有效的。在这种情况下,您需要如上所述确定在1555错误消息中提到哪个撤消段名称,并进行相应的诊断

2) ORA-01628/ORA-30036 during import  导入期间ORA-01628/ORA-30036

It is common to encounter 1628 or 30036 error during import. The key point here is the amount of UNDO generated by import utility.

导入期间通常会遇到1628或30036错误。关键是导入程序生成的UNDO数量

Generally, to resolve both errors, you need to minimize the undo space allocated during import as much as possible and allocate enough UNDO space.

通常,要解决这两个错误,您需要尽可能减少导入期间分配的undo空间,并分配足够的UNDO空间

For examples :

- excluding indexes and statistics from import then create/gather them manually after import finish

从导入中排除索引和统计信息,然后在导入完成后手动创建/收集它们

- use TABLE_EXISTS_ACTION=REPLACE instead of APPEND or TRUNCATE.

- 使用 TABLE_EXISTS_ACTION = REPLACE 代替 APPEND 或 TRUNCATE

- use CONTENT=ALL instead of DATA_ONLY

- 使用CONTENT = ALL 而不是 DATA_ONLY

- Make sure all available UNDO segments are ONLINE during the import by setting _rollback_segment_count=999999

- 通过设置 _rollback_segment_count = 999999,确保在导入过程中所有可用的UNDO段均处于在线状态

SQL> select status,count(*),tablespace_name from dba_rollback_segs group by status,tablespace_name;

Known issues :

Bug 17306264 - ORA-1628: MAX # EXTENTS (32765) REACHED FOR ROLLBACK SEGMENT - OFTEN ENCOUNTERE

Bug 17306264 or the Patch 17306264 for 11g readme contains pre-requisite step to set the below event
event="64000 trace name context forever, level 25"
We recommend to set the event 64000 to level 25, as mentioned in the readme of the patch.

How To Check the Usage of Active Undo Segments in AUM (Doc ID 1337335.1)

Data Pump (or other Oracle process) Reports ORA-01628: Max # Extents (32765) For Rollback Segment _SYSSMUx$ (Doc ID 1434643.1)

ORA-1628 Max # Extents Reached Using AUM On Locally Managed Tablespace (Doc ID 761176.1)

Ora-01628: Max # Extents (32765) Reached For Rollback Segment. (Doc ID 837853.1)

Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace (Doc ID 460481.1) 

Options to decrease use Of UNDO during import (Doc ID 952892.1) 

Error ORA-30036 DataPump Import (IMPDP) Exhausts Undo Tablespace (Doc ID 727894.1) 

Run Out Of Space On Undo Tablespace Using Import/Export DataPump (Doc ID 735366.1)

REFERENCES

NOTE:787004.1 - Export Receives The Errors ORA-1555 ORA-22924 ORA-1578 ORA-22922
NOTE:833635.1 - Export Fails With Errors ORA-2354 ORA-1555 ORA-22924 And How To Confirm LOB Segment Corruption Using Export Utility?
NOTE:452341.1 - ORA-01555 And Other Errors while Exporting Table With LOBs, How To Detect Lob Corruption.
NOTE:846079.1 - LOBs and ORA-01555 troubleshooting
NOTE:1337335.1 - How To Check the Usage of Active Undo Segments in AUM
NOTE:1434643.1 - Data Pump (or other Oracle process) Reports ORA-01628: Max # Extents (32765) For Rollback Segment _SYSSMUx$
NOTE:761176.1 - ORA-1628 Max # Extents Reached Using AUM On Locally Managed Tablespace
NOTE:837853.1 - Ora-01628: Max # Extents (32765) Reached For Rollback Segment.
NOTE:460481.1 - Troubleshooting ORA-30036 - Unable To Extend Undo Tablespace
NOTE:952892.1 - Options to decrease use Of UNDO during import
NOTE:727894.1 - Error ORA-30036 DataPump Import (IMPDP) Exhausts Undo Tablespace
NOTE:735366.1 - Run Out Of Space On UNDO Tablespace Using DataPump Import/Export

以上是关于Troubleshooting ORA-01555/ORA-01628/ORA-30036 During Export and Import (Doc ID 1579437.1)的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01555错误总结

[SQL]Oracle ORA-01555快照过旧的错误

oracle频繁的提交会不会容易导致ora-01555错误

ORA-31693, ORA-02354 and ORA-01555 with Export Datapump

ORA-01555: 快照太旧: 名为 "" 的回滚段号太小

ORA-01555 异常处理