|
今天凌晨在客戶現(xiàn)場進行一個Oracle11g的數(shù)據(jù)庫遷移,習慣性的用了exp/imp,然后在新的數(shù)據(jù)庫發(fā)現(xiàn),空表根本沒有exp出來,然后查資料,發(fā)現(xiàn)了如下信息:
【 ORACLE 11G在用EXPORT導出時,空表不能導出。 11G中有個新特性,當表無數(shù)據(jù)時,不分配segment,以節(jié)省空間 解決方法: 1、insert一行,再rollback就產(chǎn)生segment了。 該方法是在在空表中插入數(shù)據(jù),再刪除,則產(chǎn)生segment。導出時則可導出空表。 2、設置deferred_segment_creation 參數(shù) 該參數(shù)值默認是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment。 需注意的是:該值設置后對以前已經(jīng)存在的空表不產(chǎn)生作用,仍不能導出,只能對后面新增的表產(chǎn)生作用。如需導出之前的空表,只能用第一種方法】 覺得不是解決方法,然后就用了expdp和impdp create directory expdp_dir as '/data/app1/dp'; grant read,write on directory expdp_dir to DRGN_OWNER; expdp DRGN_OWNER/DRGN_OWNER DIRECTORY=expdp_dir DUMPFILE=DRGN_OWNER.dmp SCHEMAS=DRGN_OWNER logfile=DRGN_OWNERexpdp.log create directory impdp_dir as '/data/app1/dp'; grant read,write on directory impdp_dir to DRGN_OWNER; impdp DRGN_OWNER/DRGN_OWNER DIRECTORY=impdp_dir DUMPFILE=DRGN_OWNER.dmp logfile=DRGN_OWNER.dmpimpdp.log 空表果然已經(jīng)導入了 對于DBA新建數(shù)據(jù)庫,我個人建議,建立了空的數(shù)據(jù)庫后,馬上執(zhí)行 alter system set deferred_segment_creation=flase sscope=spfile; shutdowm immediate startup 【總結】 1、自己沒有好好學習11g的新特性,導致了這個問題花費了2個小時的 2、建議客戶使用穩(wěn)定的10.2.0.4,客戶拒絕,現(xiàn)在11g已經(jīng)是主流了,并不是每一個客戶都很保守使用穩(wěn)定版本,而非最新版本 3、某美 和 某ELL 的項目以后少接觸,4年前IBM P570雙機Oracle10g的實施問題就折騰的無語。 4、再次論證了很多甲方和廠商基本都是:事前豬一樣,事后諸葛亮。和目前國內流行的磚家叫獸有異曲同工之妙。 5、做技術果然是一條不歸之路 |
|
|