ORACLE expdp备份与ORA-31693、ORA-02354、ORA-01555
近期,某综合网管系统expdp备份出现异常,报错信息如下:
Export: Release 10.2.0.4.0 - 64bit Production on 星期二, 12 4月, 2016 11:30:00
Copyright (c) 2003, 2007, Oracle. All rights reserved.
;;;
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYSTEM"."SYS_EXPORT_SCHEMA_07": system/******** schemas=ultra directory=backup_expdp dumpfile=expnms_201604121.dmp,expnms_201604122.dmp,expnms_201604123.dmp,exp_nms201604124.dmp filesize=40g VERSION=10.2.0.2 exclude=statistics logfile=exp_20160412.log
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 197.1 GB
处理对象类型 SCHEMA_EXPORT/USER
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC
处理对象类型 SCHEMA_EXPORT/DB_LINK
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
处理对象类型 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
处理对象类型 SCHEMA_EXPORT/VIEW/VIEW
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/TRIGGER
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
处理对象类型 SCHEMA_EXPORT/JOB
处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCOBJ
ORA-31693: 表数据对象 "ULTRA"."DAY_META_TASK_RESULT_B" 无法加载/卸载并且被跳过, 错误如下:
ORA-02354: 导出/导入数据时出错
ORA-01555: 快照过旧: 回退段号 24 (名称为 "_SYSSMU24$") 过小
. . 导出了 "ULTRA"."ZXMG_UDPATE_BACKUP" 18.36 GB 536021168 行
接下来是问题的处理过程,看到Ora-01555,首先想到的是查看及调整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官网,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
调整完毕后,该平台的expdp恢复正常:
Export: Release 10.2.0.4.0 - 64bit Production on 星期四, 21 4月, 2016 11:30:00
Copyright (c) 2003, 2007, Oracle. All rights reserved.
;;;
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SYSTEM"."SYS_EXPORT_SCHEMA_02": system/******** schemas=ultra directory=backup_expdp dumpfile=expnms_201604211.dmp,expnms_201604212.dmp,expnms_201604213.dmp,exp_nms201604214.dmp filesize=40g VERSION=10.2.0.2 exclude=statistics logfile=exp_20160421.log
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 199.8 GB
处理对象类型 SCHEMA_EXPORT/USER
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC
处理对象类型 SCHEMA_EXPORT/DB_LINK
处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE
处理对象类型 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
处理对象类型 SCHEMA_EXPORT/VIEW/VIEW
处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/TRIGGER
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX
处理对象类型 SCHEMA_EXPORT/JOB
处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCOBJ
. . 导出了 "ULTRA"."DAY_META_TASK_RESULT_B" 39.40 GB 20009768 行
. . 导出了 "ULTRA"."ZXMG_UDPATE_BACKUP" 18.87 GB 550823549 行
.
.
.
. . 导出了 "ULTRA"."WLANUPDATESCHEDULE" 0 KB 0 行
. . 导出了 "ULTRA"."WORKFLOW_STAT" 0 KB 0 行
已成功加载/卸载了主表 "SYSTEM"."SYS_EXPORT_SCHEMA_02"
******************************************************************************
SYSTEM.SYS_EXPORT_SCHEMA_02 的转储文件集为:
/opt/backup/expnms_201604211.dmp
/opt/backup/expnms_201604212.dmp
/opt/backup/expnms_201604213.dmp
/opt/backup/exp_nms201604214.dmp
作业 "SYSTEM"."SYS_EXPORT_SCHEMA_02" 已于 18:12:35 成功完成
至此,故障处理完毕!