資料泵匯入分割槽表統計資訊報錯(五)

yangtingkun發表於2009-08-14

今天在進行資料泵匯入操作時,發現一個bug

這篇文章描述導致問題的原因。

資料泵匯入分割槽表統計資訊報錯(一):http://yangtingkun.itpub.net/post/468/456176

資料泵匯入分割槽表統計資訊報錯(二):http://yangtingkun.itpub.net/post/468/456378

資料泵匯入分割槽表統計資訊報錯(三):http://yangtingkun.itpub.net/post/468/489067

資料泵匯入分割槽表統計資訊報錯(四):http://yangtingkun.itpub.net/post/468/489253

 

 

現在已經找到了問題的原因,並且也找到了解決問題的方法,但是導致問題的原因還不清楚。

也就是說,要找到為什麼這幾個分割槽表的統計資訊被鎖住。

OracleDBMS_STATS包提供了LOCK_TABLE_STATS過程,但是當前的問題顯然不是手工呼叫這個過程造成的。

所有了一下metalink,發現Oracle在文件Doc ID:  433240.1中描述了統計資訊被鎖定的可能性:

手工執行DBMS_STATS包的LOCK_TABLE_STATS過程;

使用impimpdp,匯入表的時候不載入資料,會鎖住表的統計資訊;

在升級過程中,佇列表的統計資訊可能被鎖定。

前面已經排除了手工執行LOCK_TABLE_STATS的可能性,而出現問題的表又不是佇列表,顯然第二種情況導致問題的可能性最大。

由於遷移確實是用IMPIMPDP實現的,但是由於距離遷移的時間太長,導致一些具體的操作已經記不清了。而且由於伺服器空間的問題,一些遷移時的log指令碼已經被清除掉了。因此找到當時具體的操作很困難了。

如果根據當時的遷移步驟,是不存在只匯入結構而沒有匯入資料的情況的。

根據記憶描述一下遷移的步驟:

9i的源資料庫用exp匯出了資料;

由於要轉換表空間,以及去掉物化檢視日誌等資訊,避免匯入過程對產品環境導致的危害,設立了一個10g的中間資料庫;

在中間資料庫上手工建立了分割槽表,然後用imp指定ignore=y匯入所有的表;

在中間資料庫進行資料的清理工作;

在中間資料庫執行expdp匯出;

在目標資料庫上執行impdp匯入。

如果說發生過imp操作,可能在中間資料庫上執行過。不過檢查統計資訊的生成時間,實在物件的建立之後,而且間隔幾個小時之久:

SQL> conn zhejiang
輸入口令:
已連線。
SQL> set pages 100 lines 120
SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

會話已更改。

SQL> select object_name, created
  2  from user_objects a, user_part_tables b
  3  where a.object_name = b.table_name
  4  and a.object_type = 'TABLE';

OBJECT_NAME                    CREATED
------------------------------ -------------------
CON_LOG_LIST_ITEM              2007-05-03 10:17:40
ORD_ORDER                      2007-05-03 10:18:06
ORD_ORDER_ITEM                 2007-05-03 10:18:15
ORD_PURCHASE_ITEM              2007-05-03 10:18:26
ORD_LOG_HIT_COMM               2007-05-03 11:12:34
EMED_WEB_LOG                   2008-06-24 17:06:59

已選擇6行。

SQL> select a.table_name, last_analyzed
  2  from user_tables a, user_part_tables b
  3  where a.table_name = b.table_name;

TABLE_NAME                     LAST_ANALYZED
------------------------------ -------------------
CON_LOG_LIST_ITEM              2007-05-03 15:33:19
ORD_ORDER                      2007-05-03 15:23:42
ORD_ORDER_ITEM                 2007-05-03 15:30:25
ORD_PURCHASE_ITEM              2007-05-03 15:33:17
ORD_LOG_HIT_COMM               2007-05-03 15:33:45
EMED_WEB_LOG                   2009-08-09 01:07:31

已選擇6行。

這說明在物件匯入後,成功的收集過一次統計資訊。

莫非是在系統遷移之後,執行過IMPIMPDP的匯入,這個問題的產生和遷移沒有關係。統計資訊的收集時間與遷移時間發生在同一天,且間隔比較接近,而且此後這些分割槽表就沒有再被分析過,要說這個問題和遷移沒有關係,顯然難以令人信服。更重要的是,除了遷移過程,平常基本上沒有可能對產品環境執行IMPIMPDP的操作。

由於系統上的日誌資訊已經都丟失了,只能依靠資料庫中儲存的資訊了。

檢查資料庫中物件的建立時間,看看能否發現一些什麼:

SQL> select object_name, object_type, created
  2  from user_objects
  3  where created < to_date('2007-5-4', 'yyyy-mm-dd')
  4  order by created;

OBJECT_NAME                    OBJECT_TYPE         CREATED
------------------------------ ------------------- -------------------
CON_LOG_LIST_ITEM              TABLE PARTITION     2007-05-03 10:17:40
CON_LOG_LIST_ITEM              TABLE PARTITION     2007-05-03 10:17:40
CON_LOG_LIST_ITEM              TABLE               2007-05-03 10:17:40
CON_LOG_LIST_ITEM              TABLE PARTITION     2007-05-03 10:17:40
CON_LOG_LIST_ITEM              TABLE PARTITION     2007-05-03 10:17:40
CON_LOG_LIST_ITEM              TABLE PARTITION     2007-05-03 10:17:40
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE               2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER                      TABLE PARTITION     2007-05-03 10:18:06
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE               2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_ORDER_ITEM                 TABLE PARTITION     2007-05-03 10:18:15
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE               2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:26
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:27
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:27
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:27
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:27
ORD_PURCHASE_ITEM              TABLE PARTITION     2007-05-03 10:18:27
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX               2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
TU_ORD_ORDER_PLAT_ID           INDEX PARTITION     2007-05-03 10:18:32
A_DATA                         SYNONYM             2007-05-03 10:25:44
BACKUP_SQL                     SYNONYM             2007-05-03 10:25:44
CAT_INVITE_COMM_DATA           SYNONYM             2007-05-03 10:25:44
T_LINK                         TYPE                2007-05-03 10:25:44
CAT_REGION_MERCHANDISE_DATA    SYNONYM             2007-05-03 10:25:44
TEMP_FIRST_PRODUCT             SYNONYM             2007-05-03 10:25:44
TEMP_SECOND_CATEGORY           SYNONYM             2007-05-03 10:25:44
CAT_INVITE_COMM_SEND_DATA      SYNONYM             2007-05-03 10:25:44
DATA01.US.ORACLE.COM           DATABASE LINK       2007-05-03 10:25:45
TRANSFER                       SEQUENCE            2007-05-03 10:25:45
HI_TEMPTOTAL_ID                SEQUENCE            2007-05-03 10:25:45
IMP_SYS_TMP                    SEQUENCE            2007-05-03 10:25:45
JOB_ID                         SEQUENCE            2007-05-03 10:25:45
.
.
.
TRANFER                        SEQUENCE            2007-05-03 10:25:45
GOV_SEQ                        SEQUENCE            2007-05-03 10:25:45
ASS_BBS_USERINFO               TABLE               2007-05-03 10:25:46
ASS_COMPLAIN_ORG_SCORE         TABLE               2007-05-03 10:25:46
ASS_COMPLAIN_RECORD            TABLE               2007-05-03 10:25:46
ASS_COMPLAIN_REPLY             TABLE               2007-05-03 10:25:46
ASS_BBS_CATALOG                TABLE               2007-05-03 10:25:46
ASS_NEWS                       TABLE               2007-05-03 10:25:46
ASS_NEWS_TYPE                  TABLE               2007-05-03 10:25:46
A                              TABLE               2007-05-03 10:25:46
ASS_BBS_ARTICLE                TABLE               2007-05-03 10:25:46
ASS_COMPLAIN_TYPE              TABLE               2007-05-03 10:25:46
.
.
.
ZZZ_YANGS_ORDER2               TABLE               2007-05-03 10:26:25
ZZZ_YANGS_ORDER3               TABLE               2007-05-03 10:26:25
ZZZ_YANGS_PRO                  TABLE               2007-05-03 10:26:25
ORD_PAYMENT_ORG                TABLE               2007-05-03 10:26:25
SYS_LOB0000061644C00004$$      LOB                 2007-05-03 10:26:25
SYS_LOB0000061644C00003$$      LOB                 2007-05-03 10:26:25
CON_LIST_ITEM_SHARE_TMP        TABLE               2007-05-03 10:26:25
JOB_MONTH_STATS                TABLE               2007-05-03 10:26:25
ZJ_PRODUCT                     TABLE               2007-05-03 10:26:25
PK_ORD_PAYMENT_ORG_MERCHID     INDEX               2007-05-03 10:39:11
TU_OD_PAYMENT_ORG_BID_ORG      INDEX               2007-05-03 10:39:11
PK_ASS_BBS_ARTICLE             INDEX               2007-05-03 10:39:11
PK_ASS_BBS_CATALOG             INDEX               2007-05-03 10:39:11
PK_ASS_BBS_USERINFO            INDEX               2007-05-03 10:39:11
PK_ASS_NEWS                    INDEX               2007-05-03 10:39:12
.
.
.
SYS_C0014351                   INDEX               2007-05-03 10:52:55
SYS_C0014352                   INDEX               2007-05-03 10:52:55
CHANGE_PRICE_1                 FUNCTION            2007-05-03 10:53:32
P_UPDATE_TEMP_PRICE            PACKAGE             2007-05-03 10:53:32
PA_UPDATE_ORD_HIT_COMM         PACKAGE             2007-05-03 10:53:32
PA_PLAN_REPORT                 PACKAGE             2007-05-03 10:53:32
CON_LIST_ITEM_SHIFT            PACKAGE             2007-05-03 10:53:32
F_LINK                         FUNCTION            2007-05-03 10:53:32
F_GET_EXP_TAB_NAME             FUNCTION            2007-05-03 10:53:32
CHANGE_PRICE_2                 FUNCTION            2007-05-03 10:53:32
DELPUR                         PROCEDURE           2007-05-03 10:53:34
GETFULLSQL                     PROCEDURE           2007-05-03 10:53:34
.
.
.
P_SCHEMA_STATS                 PROCEDURE           2007-05-03 10:53:35
PA_UPDATE_ORD_HIT_COMM         PACKAGE BODY        2007-05-03 10:53:40
P_UPDATE_TEMP_PRICE            PACKAGE BODY        2007-05-03 10:53:40
CON_LIST_ITEM_SHIFT            PACKAGE BODY        2007-05-03 10:53:40
PA_PLAN_REPORT                 PACKAGE BODY        2007-05-03 10:53:41
T_LINK                         TYPE BODY           2007-05-03 10:53:41
T_PURCHASE_PURCHASE_TYPE       INDEX               2007-05-03 10:53:44
TU_ORD_BUY_WAR_SYNC_STATE      INDEX               2007-05-03 10:53:44
T_ORDER_RECEIVE_PP             INDEX               2007-05-03 10:53:45
T_PURCHASE_APPROVE_USERID      INDEX               2007-05-03 10:53:45
T_PURCHASE_CREATE_USERID       INDEX               2007-05-03 10:53:45
T_ORDER_RECEIVE_PLAT_ID        INDEX               2007-05-03 10:53:45
TU_A_TEMP_CLIT_BUYER_FLAG      INDEX               2007-05-03 10:53:45
ORD_LOG_HIT_COMM               TABLE               2007-05-03 11:12:34
ORD_LOG_HIT_COMM               TABLE PARTITION     2007-05-03 11:12:34
ORD_LOG_HIT_COMM               TABLE PARTITION     2007-05-03 11:12:34
ORD_LOG_HIT_COMM               TABLE PARTITION     2007-05-03 11:12:34
ORD_LOG_HIT_COMM               TABLE PARTITION     2007-05-03 11:12:34
ORD_LOG_HIT_COMM               TABLE PARTITION     2007-05-03 11:12:34
CAT_ZONE_HOLIDAY               SYNONYM             2007-05-03 11:29:24
CAT_ZONE_DEALER                SYNONYM             2007-05-03 11:29:24
.
.
.
MBR_PRODUCT_GRANTOR            SYNONYM             2007-05-03 11:29:26
MBR_NOTICE                     SYNONYM             2007-05-03 11:29:26
USR_USER                       TABLE               2007-05-03 14:28:06
PK_USR_USER                    INDEX               2007-05-03 14:28:07
UN1_USR_USER                   INDEX               2007-05-03 14:28:07
TU_USR_USER                    INDEX               2007-05-03 14:28:07
TU_USR_USER_USERNAME           INDEX               2007-05-03 14:28:08
USR_ROLE                       TABLE               2007-05-03 14:28:09
PK_USR_ROLE                    INDEX               2007-05-03 14:28:09
USR_USER_ROLE                  TABLE               2007-05-03 14:28:10
PK_USR_US_PLAT_ROLE            INDEX               2007-05-03 14:28:11
TU_USR_USER_ROLE_ROLE_ID       INDEX               2007-05-03 14:28:11
TU_USR_USER_ROLE_USER_ID       INDEX               2007-05-03 14:28:11
PK_T_ORDER                     INDEX               2007-05-03 15:22:41
TU_ORD_ORDERITEM_SENDER_ORGID  INDEX               2007-05-03 15:22:55
TU_ORD_ORDER_BUYER             INDEX               2007-05-03 15:23:03
TU_ORD_ORDER_CODE              INDEX               2007-05-03 15:23:10
TU_ORD_ORDER_PURCHASE_ID       INDEX               2007-05-03 15:23:16
TU_ORD_ORDER_SALER_ORGID       INDEX               2007-05-03 15:23:23
IND_ORD_ORDER_CREATE_DATE      INDEX               2007-05-03 15:23:31
IND_ORD_ORDER_MODIFY_DATE      INDEX               2007-05-03 15:23:37
PK_T_ORDER_ITEM                INDEX               2007-05-03 15:23:43
TU_ORD_ORDER_ITEM_BID_ORG      INDEX               2007-05-03 15:24:32
TU_ORD_ORDER_ITEM_BUY          INDEX               2007-05-03 15:25:01
TU_ORD_ORDER_ITEM_ORDERID      INDEX               2007-05-03 15:25:24
TU_ORD_ORDER_ITEM_PLATID       INDEX               2007-05-03 15:25:45
TU_ORD_ORDER_ITEM_PUR_ITEM     INDEX               2007-05-03 15:26:06
TU_ORD_ORDER_ITEM_P_BUYER      INDEX               2007-05-03 15:26:26
TU_ORD_ORDER_ITEM_SALER        INDEX               2007-05-03 15:27:00
TU_ORD_ORDER_ITEM_SEND         INDEX               2007-05-03 15:27:23
TU_ORD_ORDER_ITEM_SOURCE       INDEX               2007-05-03 15:27:47
TU_ORD_ORD_ITEM_PRODUCT_ID     INDEX               2007-05-03 15:28:15
TU_ORD_ORD_IT_COMB_PLAT_ORDID  INDEX               2007-05-03 15:28:39
TU_ORD_ITEM_CREATE_DATE        INDEX               2007-05-03 15:29:10
TU_ORD_ITEM_CD_SD              INDEX               2007-05-03 15:29:30
TU_ORD_ITEM_HIT_COMM_ID        INDEX               2007-05-03 15:30:00
PK_T_PURCHASE_ITEM             INDEX               2007-05-03 15:30:27
TU_ORD_PURCHASE_ITEM_BUYER     INDEX               2007-05-03 15:31:04
TU_ORD_PURCHASE_ITEM_PROD_ID   INDEX               2007-05-03 15:31:25
TU_ORD_PUR_ITEM_HITCOMMID      INDEX               2007-05-03 15:31:47
TU_ORD_PUR_ITEM_PURCHASE_ID    INDEX               2007-05-03 15:32:12
TU_ORD_PUR_ITEM_SEND_ID        INDEX               2007-05-03 15:32:33
UN_PURCHASE_TEMP               INDEX               2007-05-03 15:32:57
TU_CON_LOG_LIST_ITEM_OPER_DATE INDEX               2007-05-03 15:33:18
TU_ORD_LOG_HIT_COMM_BUYER      INDEX               2007-05-03 15:33:20
T_MEDICAL                      VIEW                2007-05-03 15:55:59
S_USER                         VIEW                2007-05-03 15:55:59
.
.
.
V_PRODUCT                      VIEW                2007-05-03 15:56:00
JOB_PCONTRACT_SHOW             PROCEDURE           2007-05-03 16:09:38
MLOG$_CON_LIST                 TABLE               2007-05-03 17:20:45
.
.
.
RUPD$_ORD_ORDER_RETURN         TABLE               2007-05-03 17:20:47

已選擇1514行。

下面根據物件的建立順序進行分析:首先建立的物件是手工建立的分割槽表。然後執行的資料泵匯入過程,先匯入了同義詞和序列,然後是表和索引,最後是過程、函式和包。最後匯入了幾個BITMAP索引,資料泵在10:53:45秒匯入結束。

SQL> select index_type from user_indexes
  2  where index_name = 'T_ORDER_RECEIVE_PLAT_ID';

INDEX_TYPE
---------------------------
BITMAP

最後補建了一個分割槽表。而此後的同義詞的建立是在資料泵匯入完成後,透過pl/sql程式碼實現的。

此後在14:28分的時候使用imp匯入了一些USR開頭的表和索引,不過這和當前的問題沒有關係。

關鍵的時刻到了,在15:22分到15:33分的時間段內,建立了這些出問題的分割槽表的索引。如果和這些分割槽表的統計資訊的最後收集時間進行比較,可以發現二者時間驚人的接近,這顯然不是巧合,多半是匯入索引資訊的時候,將統計資訊一起匯入。

到了這個時候,總算想起當時的操作了。由於其他的表都是透過exp匯出,並使用imp匯入,因此包含完整的索引定義。而這些表是手工建立,在建立表的時候沒有建立表的索引。因此發現了這一點後,利用expexpdp從源資料庫匯出了索引定義,並匯入到目標資料庫中。

正是由於這個操作,將分割槽表的統計資訊鎖定。這也解釋了為什麼只有分割槽表沒有收集新的統計資訊,而其他表沒有同樣的問題。

這個例子說明兩個問題:

對於遷移或升級這種大型變更,一定要留下儘量詳細的資料備查。包括遷移計劃、遷移步驟、匯出匯入工具的日誌資訊、升級後執行catupgrd.sql的輸出檔案等等。這些資訊對於日後出現問題後進行分析異常重要。

應該儘可能深入瞭解每個工具的特性,即使是這麼常用的expexpdp工具,都可能隱藏著這種隱蔽的操作。詳細的計劃和必要的上線測試可以避免絕大部分問題的發生,但是無法杜絕所有的問題,尤其是一些突發的時間。在這個時候所使用的工具是否能夠完成目標而沒有任何副作用,所選擇的方法是否足夠高效且沒有危害,這些就要靠平時的積累來完成了。

 

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

相關文章