ORACLE expdp備份與ORA-31693、ORA-02354、ORA-01555

煙花丶易冷發表於2018-01-05
    近期,某綜合網管系統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 成功完成

至此,故障處理完畢!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29618264/viewspace-2149733/,如需轉載,請註明出處,否則將追究法律責任。

相關文章