IMP中commit=y的用法~~~

oracle_mao發表於2011-12-22
imp user1/user1 tables=t1 file=exp_1.dmp,exp_2.dmp,exp_3.dmp,exp_4.dmp,exp_5.dmp,exp_6.dmp,exp_7.dmp log=imp_t1.log ignore=y

. . importing table               "T1"
IMP-00058: ORACLE error 30036 encountered
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'
IMP-00028: partial import of previous table rolled back: 14351923 rows rolled back
IMP-00017: following statement failed with ORACLE error 2264:
About to enable constraints...
Import terminated successfully with warnings.
檢視undo表空間已經使用了32G,由於8k資料塊下一個dbf最大是32G,所以imp匯入時就報錯了,一查這個表,發現0條資料,原因是當imp時如果不加commit=y的話,那麼所有的資料都是要最後一起提交的,那麼就個就需要佔用相當大的undo表空間了,所以當我們加了commit=y之後,錯誤就沒在發生。但是由於頻繁的commit,所以匯入的效能是會受到影響的。
imp user1/user1 tables=t1 file=exp_1.dmp,exp_2.dmp,exp_3.dmp,exp_4.dmp,exp_5.dmp,exp_6.dmp,exp_7.dmp log=imp_t1.log ignore=y commit=y

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

相關文章