oracle資料泵匯入分區表統計資訊報錯(五)導致問題的原因

來源:互聯網
上載者:User

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

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

Oracle的DBMS_STATS包提供了LOCK_TABLE_STATS過程,但是當前的問題顯然不是手工調用這個過程造成的。

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

手工執行DBMS_STATS包的LOCK_TABLE_STATS過程;

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

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

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

由於遷移確實是用IMP和IMPDP實現的,但是由於距離遷移的時間太長,導致一些具體的操作已經記不清了。而且由於伺服器空間的問題,一些遷移時的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行。

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

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

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

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

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

本文URL地址:http://www.bianceng.cn/database/Oracle/201410/45383.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.