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

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[Oracle] 存在lob字段的表expdp导出时ORA-31693、ORA-02354、ORA-01555

[复制链接]
跳转到指定楼层
楼主
发表于 2026-1-22 18:09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ORA-31693: 表数据对象 "ULTRA"."DAY_META_TASK_RESULT_B" 无法加载/卸载并且被跳过, 错误如下:
ORA-02354: 导出/导入数据时出错
ORA-01555: 快照过旧: 回退段号 24 (名称为 "_SYSSMU24$") 过小

首先想到的是查看及调整undo_retention参数
SQL> show parameter undo_r
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_retention                    integer     3600
SQL> select tablespace_name,sum(bytes)/1024/1024/1024 gb from dba_data_files where tablespace_name like '%UNDO%' group by tablespace_name;
TABLESPACE_NAME                GB
--------------------           ----------
UNDOTBS1                       106.992172
   然后查看了undo表空间的使用率,其使用率只有1%,因此考虑调整undo_retention参数到5400,调整后问题依旧,后来又调整到7200,问题依然存在,但是undo表空间的使用率最高到30%。现在,可以判断不是单纯的undo表空间参数undo_retention的问题了,需要具体问题具体分析一下。查看问题表的结构发现,该表有2个大字段:
SQL> desc "ULTRA"."DAY_META_TASK_RESULT_B"
名称                         是否为空?        类型
--------------------------- --------        ----------------------------
META_TASK_RESULT_ID         NOT NULL        VARCHAR2(50)
SCHEDULER_ID                                VARCHAR2(50)
META_TASK_ID                                VARCHAR2(50)
TIME                                        NUMBER(20)
ALARM                                       NUMBER(5)
META_TASK_STATE                             NUMBER(5)
INSTANCE                                    VARCHAR2(200)
UNIT                                        VARCHAR2(10)
VALUE_CHECK                                 VARCHAR2(5)
SHELL_RESULT                                CLOB
ADVICE                                      VARCHAR2(4000)
OPINION                                     VARCHAR2(100)
ALARM_INFO                                  VARCHAR2(200)
VALUE                                       CLOB
VTABLE                                      VARCHAR2(30)
REFLAG                                      VARCHAR2(50)

oracle的lob大字段有自己的retention参数,如果只调整undo_retention,而没有同步到lob大字段,该参数还是默认的900s,确认查询结果如下:
SQL>select table_name,column_name,pctversion,retention from dba_lobs where table_name='DAY_META_TASK_RESULT_B'
TABLE_NAME                     COLUMN_NAME                    PCTVERSION  RETENTION
----------------------------  ------------------------------  ----------  ----------
DAY_META_TASK_RESULT_B         SHELL_RESULT                                900
DAY_META_TASK_RESULT_B         VALUE                                       900

明确了问题原因,接下来就是修改表含有 lob大字段的retention设置
SQL>ALTER TABLE DAY_META_TASK_RESULT_B MODIFY LOB(SHELL_RESULT)(retention);
table altered.
SQL>ALTER TABLE DAY_META_TASK_RESULT_B MODIFY LOB(VALUE)(retention);
table altered.
SQL>select table_name,column_name,pctversion,retention from dba_lobs where table_name='DAY_META_TASK_RESULT_B'
TABLE_NAME                      COLUMN_NAME                    PCTVERSION  RETENTION
----------------------------   ------------------------------  ----------    ----------
DAY_META_TASK_RESULT_B         SHELL_RESULT                                  7200
DAY_META_TASK_RESULT_B         VALUE                                         7200

再次导出:
作业 "SYSTEM"."SYS_EXPORT_SCHEMA_02" 已于 18:12:35 成功完成

至此,故障处理完毕!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-17 18:28 , Processed in 0.224183 second(s), 20 queries .

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

© 2001-2020

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