ORA-31693, ORA-02354 and ORA-01555 with Export Datapump (Doc ID 1580798.1)

今天开发邮件回来说备份报错:

ORA-31693: Table data object "YCDATA"."T_MESSAGESYNC_HIS" failed to load/unload and is being skipped due to error:

ORA-02354: error in exporting/importing data

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

调整了undo_retantion的值为3600,原来的是900

In this Document

Symptoms
  Cause
  Solution
  References

APPLIES TO:

Oracle Database - Enterprise Edition - Version 10.2.0.1 and later

Information in this document applies to any platform.

SYMPTOMS

Using Database Data Pump (expdp), one table fails to export with the following errors:

ORA-31693: Table data object "APPLSYS"."FND_LOBS" failed to load/unload and is being skipped due to error:

ORA-02354: error in exporting/importing data

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

ORA-22924: snapshot too old

Followed the steps in Note:452341.1 and/or Note:787004.1,
and found that there is no LOB corruption.

CAUSE

The old versions (consistent read) of the LOB can be specified by either the PCTVERSION or the RETENTION parameters.

For SecureFiles, only the RETENTION parameter can be specified.

for BasicFiles LOBs you can specify either PCTVERSION or RETENTION , but not both.

- PCTVERSION : This parameter specifies the percentage of all used BasicFiles LOB data space that can be occupied by old versions of BasicFiles LOB data pages. Under 11g compatibility, this parameter is silently ignored when SecureFiles LOBs are created.

PCTVERSION is the default in manual undo mode and the default value is 10, meaning that older versions of the LOB data are not overwritten until they consume 10% of the overall LOB storage space.

You can specify the PCTVERSION parameter whether the database is running in manual or automatic undo mode.

- RETENTION is the default in automatic undo mode.

You can specify the RETENTION parameter only if the database is running in automatic undo mode. Oracle Database uses the value of the UNDO_RETENTION initialization parameter to determine the amount of committed undo data to retain in the database. In automatic
undo mode, RETENTION is the default value unless you specify PCTVERSION. You cannot specify both PCTVERSION and RETENTION.

You can specify the optional settings after RETENTION only if you are using SecureFiles.

You can see more details about the RETENTION parameter for SecureFiles and BasicFiles LOBs in the following link :

http://docs.oracle.com/cd/E11882_01/appdev.112/e18294/adlob_tables.htm#ADLOB45282

RETENTION Parameter for SecureFiles LOBs

http://docs.oracle.com/cd/E11882_01/appdev.112/e18294/adlob_tables.htm#ADLOB45281

RETENTION Parameter for BasicFiles LOBs

To Determine whether LOB segment is using RETENTION or PCTVERSION , use the following statement :

SQL> select COLUMN_NAME,SECUREFILE,PCTVERSION,RETENTION from dba_lobs where OWNER=upper(‘&OWNER‘) and TABLE_NAME=upper(‘&TABLE_NAME‘) ;

COLUMN_NAME                    SEC PCTVERSION  RETENTION

------------------------------ --- ---------- ----------

FILE_DATA                NO                    900

Note : If You‘ve a value for both PCTVERSION and RETENTION columns , this is incorrect output and to really know which option the LOB is using Please Check Note 422826.1 : How To Identify LOB Segment Use PCTVERSION Or RETENTION From Data Dictionary

The LOB Retention is not defined properly , This is confirmed by queries:

SQL> show parameter undo;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

undo_management                      string      AUTO

undo_retention                       integer     900

undo_tablespace                      string      UNDOTBS1

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

MAX(MAXQUERYLEN)

----------------

16331

We see the retention comes back showing 900 seconds (15 minutes) which is the same as the current UNDO_RETENTION, but the maxquery length is 16331 seconds.

When the LOB was created, the actual setting for RETENTION was defined by the current setting for UNDO_RETENTION.

This time is not long enough.

SOLUTION

1. Modify the current UNDO_RETENTION for the database:

SQL>ALTER SYSTEM SET UNDO_RETENTION = 16500 scope=both sid=‘*‘;

2. Modify the LOB retention to become greater than the undersized retention parameter following the steps from Note:563470.1

SQL> alter table APPLSYS.FND_LOBS modify lob(FILE_DATA) (pctversion 5);

Table altered.

SQL> alter table APPLSYS.FND_LOBS modify lob(FILE_DATA) (retention);

Table altered.

3. Query the lob retention again to verify that the change has taken hold:

SQL> select COLUMN_NAME,SECUREFILE,PCTVERSION,RETENTION from dba_lobs where OWNER=upper(‘&OWNER‘) and TABLE_NAME=upper(‘&TABLE_NAME‘) ;

COLUMN_NAME                    SEC PCTVERSION  RETENTION

------------------------------ --- ---------- ----------

FILE_DATA                NO                  16500

4. Perform the export again.

时间: 2024-08-29 16:59:59

ORA-31693, ORA-02354 and ORA-01555 with Export Datapump (Doc ID 1580798.1)的相关文章

ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册.与单实例相同,RAC非缺省端口的监听器也是通过设置参数local_listener来达到目的.除此之外,还可以对实例进行远程注册,以达到负载均衡的目的.这是通过一个参数remote_listener来实现. 有关Oracle 网络配置相关基础以及概念性的问题请参考:      配置ORACLE 客户端连接到数据库   配置非默认端口的动态服务注册   

在TNSNAMES.ORA文件中配置本机装的oracle

首先,感谢这两位网友:http://zhidao.baidu.com/link?url=eGYeoEa-EhQdVitSGqjE36uNfVmEsryXH1WUjPue6YvArDSx-Y1N9_rd9Hx6vh-NklyevkcCtAMh1X28fI1Hoq 引子: 我在Oracle SQL Developer工具中创建了一个名为"oa"的连接,然后登陆PLSQL Developer,从本地导入一张表"T_DEPT",打开Oracle SQL Developer,

ORACLE配置tnsnames.ora文件实例

ORACLE配置tnsnames.ora文件实例客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames.ora 是建立在客户机上的.如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器,那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义.但是,如果网络上有多台机器均安装了ORACLE数据库服务器,并且服务器之间有数据共享的要求,那么在每台服务器上都

tnsnames.ora配置小结

oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin文件夹下. 1.  sqlnet.ora-–作用类似于linux或者其它unix的nsswitch.conf文件.通过这个文件来决定怎么样找一个连接中出现的连接字符串. 比如我们client输入 sqlplus sys/[email protected] 假如我的sqlnet.ora是以下这个样子 SQLNET.AUTHENT

PLSQL Developer安装、tnsnames.ora配置 解答

前提是您已经安装好了PLSQL-Developer工具,安装PLSQL程序相信大家都会 正常的登录窗口: 当你的图为: 没有这个选项无法连接数据库.没有安装Oracle的话,这里就会少一个选项"连接为",如果您安装了Oracle客户端那就请忽略该经验,因为PLSQL工具会自动从系统注册表找有没有Oracle的配置信息,没有则显示如第一张图,有则显示第二张图(也可能个别机器即使安装了Oracle客户端还是没显示,这样需要手动去添加Oracle的参数配置文件), 那么怎样能不用安装Orac

oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性

学习:http://www.cnblogs.com/william-lee/archive/2010/10/20/1856261.html 之前因为安装的是windows server 2008 r2的系统,oracle是11g r2 64bit,因为像很多网友一样,无法使用pl/sql developer 8连接oracle,今天可算连上了,对listener.ora sqlnet.ora tnsnames.ora三个文件.TNSListener服务的认识也深了一层. 先说说我是怎么样连接上的

记录一则ORA

应用服务器:Windows Server 2008 R2 Enterprise故障现象:项目侧同事反映应用服务器上的程序连接数据库报错:ORA-12560: TNS: 协议适配器错误 1.故障重现 2.定位问题 3.解决问题 1.故障重现 在应用服务器上使用sqlplus和PL/SQL工具登录连接数据库服务器均报错: ORA-12154: TNS: 无法解析指定的连接标识符 2.定位问题 2.1 ping测试网络 ping 数据库IP地址 网络通畅 C:\Users\Administrator>

oracle tnsnames.ora 参数含义

今天在本地配置oracle客户端的时候,再一次需要链接局域网下的服务端机器,估又需要配置tnsnames.ora文件,做个记录,防止下次使用的时候,再一次搜索配置方法: 下面为配置过的个人tnsnames.ora文件内容: # tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\client_1\network\admin\tnsnames.ora # Generated by Oracle configuratio

Oracle的listener.ora、tnsnames.ora的配置

使用DBCA建库,Global Database Name为:prod.origtec.com      SID:prod An Oracle database is uniquely identified by a Global Database Name,typically of the form "name.domain" Global Database Name: A database is referenced by at least one Oracle instance

listener.ora/sqlnet.ora/tnsnames.ora配置文件详解

oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 英文说明: The sqlnet.ora is an optional file expressing more parameters about the connection (eg: the trace level for debugging, the types of authentication you wo