Oracle impdp的實(shí)際操作方案詳解
以下的文章主要介紹的Oracle impdp的具體操作方法,如果你是Oracle impdp實(shí)際應(yīng)用方面的新手,你就可以通過以下的文章對Oracle impdp是如何正確使用的方法有一個更好的了解,以下就是文章的詳細(xì)內(nèi)容的介紹。
立馬打開查詢窗口,查詢相關(guān)的表,結(jié)果返回:no rows selected.數(shù)據(jù)已經(jīng)全部清掉了。
一瞬間一下子就懵了:我Kao,搞什么鬼?怎么能把生產(chǎn)機(jī)的數(shù)據(jù)truncate掉?是不是腦子進(jìn)水了?馬上打電話給H,電話占線,Shit,再打,還是占線...... 急,先上洗手間,掏出手機(jī),繼續(xù)打,終于通了,第一句話:怎么在生產(chǎn)機(jī)上導(dǎo)數(shù)據(jù)?為什么動生產(chǎn)機(jī)的數(shù)據(jù)?
H給出的答復(fù)是由于剛才導(dǎo)網(wǎng)上查詢數(shù)據(jù)時誤操作把一張表的數(shù)據(jù)刪掉了,沒有把問題反饋上來,直接就想通過18:30左右的備份恢復(fù)該表,由于缺乏IMPDP的相關(guān)知識,以為導(dǎo)出文件有的表,在Oracle impdp的時候都必須制定,結(jié)果把其他十來各表都全部truncate。
出現(xiàn)問題沒有反饋,掩蓋問題試圖自己解決,由于缺乏相關(guān)的知識,結(jié)果誤操作導(dǎo)致更嚴(yán)重的后果。
由于有下班后的Expdp備份,本來是一張表的數(shù)據(jù),而且該表數(shù)據(jù)在下班后不會變化,簡單的通過Oracle impdp就可以恢復(fù),結(jié)果用truncate選項(xiàng)把其他表統(tǒng)統(tǒng)清除掉,當(dāng)時心里那個苦?。?/p>
事已至此,沒有辦法,馬上組織其他人手先通過備份恢復(fù)數(shù)據(jù)。
1.把大表和小表分開,大表先drop索引再導(dǎo)入,小表直接導(dǎo)入。
2.大表導(dǎo)入完畢后同步建立索引。
其他表都比較順利,最后有兩張表(大表A和中表B),死活導(dǎo)不進(jìn)去。當(dāng)時已經(jīng)是凌晨0點(diǎn)10分左右。出現(xiàn)的現(xiàn)象是:
大表A導(dǎo)入了1.5個小時,沒有任何反應(yīng),中表B導(dǎo)入時通過后臺查詢發(fā)現(xiàn)有其他進(jìn)程lock該表,進(jìn)程是ORACLE.EXE(DW01)。
再等了十分鐘,還是如此,覺得不能這樣坐以待斃,重啟數(shù)據(jù)庫,重寫執(zhí)行導(dǎo)入數(shù)據(jù),還是如此。
大表A的導(dǎo)入沒有任何異常情況,就是Hang著不動,這時候想到該表是復(fù)合分區(qū)表,如果改成普通表是否可以?通過rename原來的表,通過CTAS創(chuàng)建普通表,重新導(dǎo)入,It works!數(shù)據(jù)導(dǎo)入后,通過insert into as select導(dǎo)入到正式表,然后通過rename等操作把正式表恢復(fù)到正常的表名。
大表A導(dǎo)完后,發(fā)現(xiàn)中表B還是在等待ORACLE.EXEC(DW01),本想著通過alter system kill session把相關(guān)的session kill掉,半個小時過去,沒有kill掉,只是mark kill。這時候查詢session時發(fā)現(xiàn)相關(guān)schema是XDB,把XDB用戶account lock,再導(dǎo)入,還是如此。
這時候已經(jīng)凌晨一點(diǎn),就剩下這張表,頭都有點(diǎn)大了,再仔細(xì)分析session的信息,發(fā)現(xiàn)module是Data pump,不是Oracle的必須后臺進(jìn)程,同時想起幾年前在windows平臺可以用orakill殺掉windows線程,抱著試試的心態(tài),用 orakill殺掉了ORACLE.EXE(DW01)的線程,然后用Oracle impdp嘗試導(dǎo)入,God,It works!謝天謝地,總算,數(shù)據(jù)都恢復(fù)了,這時候是凌晨1:30.
索引都創(chuàng)建完畢后,再次一張一張表檢查一次,確保數(shù)據(jù)和索引都存在。
最后執(zhí)行dbms_stats.gather_table_stats過程對相關(guān)的表執(zhí)行一遍信息,并設(shè)定定時任務(wù)對數(shù)據(jù)庫進(jìn)行備份。
【編輯推薦】