重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 973|回复: 0
打印 上一主题 下一主题

[工具] 数据泵EXPDP导出数据报错:ORA-31693 ORA-29913 ORA-01555 ORA-22924

[复制链接]
跳转到指定楼层
楼主
发表于 2023-4-10 18:40:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在导数据时,报下面错误:
C:\Users\Administrator>expdp system/oracle full=y directory=emr_bak dumpfile=WeekBak11.DMP logfile=WeekBak11.log

Export: Release 11.2.0.4.0 - Production on 星期一 4月 10 16:14:46 2023

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYSTEM"."SYS_EXPORT_FULL_07":  system/******** full=y directory=emr_bak dumpfile=WeekBak11.DMP logfile=WeekBak11.l
og
正在使用 BLOCKS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 29.00 GB
处理对象类型 DATABASE_EXPORT/TABLESPACE
处理对象类型 DATABASE_EXPORT/PROFILE
处理对象类型 DATABASE_EXPORT/SYS_USER/USER
。。。 。。。

处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCOBJ
处理对象类型 DATABASE_EXPORT/SCHEMA/POST_SCHEMA/PROCACT_SCHEMA
处理对象类型 DATABASE_EXPORT/AUDIT   --此处等了3小时
ORA-31693: 表数据对象 "ZLDOC"."BZ_DOC_LOG" 无法加载/卸载并且被跳过, 错误如下:
ORA-29913: 执行 ODCIEXTTABLEPOPULATE 调出时出错
ORA-01555: 快照过旧: 回退段号  (名称为 "") 过小
ORA-22924: 快照太旧

怎么办呢
检查发现:一直在创建一个外部表ET$00D:

SQL> select event,sql_id,module from v$session where wait_class<>'Idle';

EVENT                          SQL_ID                     MODULE
------------------------------ -------------------------- --------------------
direct path read               6rg8ga126xt6s              Data Pump Worker

SQL> set long 2000000
SQL> select sql_fulltext from v$sql where sql_id='6rg8ga126xt6s'

SQL_FULLTEXT
--------------------------------------------------------------------------------
CREATE TABLE "ET$00DT_2_SC("EDITLOG"), "CONTENTTEXT"
    FROM RELATIONAL("ZLDOC"."BZ_DOC_LOG" NOT XMLTYPE) KU$

看来是在对ZLDOC"."BZ_DOC_LOG" 进行导出。

SQL> desc ZLDOC."BZ_DOC_LOG"
名称                                      是否为空? 类型
----------------------------------------- -------- ----------------------------
ID                                        NOT NULL RAW(16)
ACTLOG_ID                                          RAW(16)
ANTETYPE_ID                                        RAW(16)
TITLE                                              VARCHAR2(80)
CONTENT                                            XMLTYPE STORAGE BINARY
ANONYM_DATA                                        XMLTYPE STORAGE BINARY
STATUS                                             NUMBER(1)
CREAT_TIME                                         DATE
CREATOR                                            VARCHAR2(50)
EDIT_TIME                                          DATE
EDITOR                                             VARCHAR2(50)
LOCKED                                             VARCHAR2(2000)
EDITLOG                                            XMLTYPE STORAGE BINARY
AFTER_LOG_ID                                       RAW(16)
SECRET                                             NUMBER(1)
SEALED                                             NUMBER(1)
LOCKED_CP                                          VARCHAR2(2000)
LOCKED_IP                                          VARCHAR2(20)
LOCKED_AC                                          VARCHAR2(20)
LOCKED_SE                                          VARCHAR2(80)
CONTENTTEXT                                        CLOB


看来是在导大对象出错了。


SQL> show parameter undo_reten


NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
undo_retention                       integer
900

SQL>


SQL> select table_name,column_name,segment_name,pctversion,retention,SECUREFILE,retention_type
           from dba_lobs
         where table_name='BZ_DOC_LOG'
             and column_name='CONTENTTEXT';


TABLE_NAME           COLUMN_NAME          SEGMENT_NAME                        PCTVERSION  RETENTION SECURE RETENTION_TYPE
--------------------        --------------------        ------------------------------             ----------         ----------       ------     --------------

BZ_DOC_LOG           CONTENTTEXT          SYS_LOB0000089148C00024$$                         900              NO       YES

看来超时了。同时是BASIC LOB,不能用并行,比较慢。
先调整undo_retention
alter system set undo_retention=10800;
调整一下LOB再看看

ALTER TABLE zldoc.BZ_DOC_LOG MODIFY LOB(CONTENTTEXT)(retention);


SQL> select table_name,column_name,segment_name,pctversion,retention
           from dba_lobs
         where table_name='BZ_DOC_LOG'
             and column_name='CONTENTTEXT';


TABLE_NAME           COLUMN_NAME          SEGMENT_NAME                        PCTVERSION  RETENTION
--------------------        --------------------        ------------------------------             ----------         ----------      

BZ_DOC_LOG           CONTENTTEXT          SYS_LOB0000089148C00024$$                         10800         


再去试试。







分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-28 23:34 , Processed in 0.089767 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表