可以忽略錯(cuò)誤重新導(dǎo)入,但是如果沖突丟了數(shù)據(jù)再補(bǔ)就麻煩了。最好drop掉所有表,視圖,序列,重新導(dǎo)入。
創(chuàng)新互聯(lián)建站擁有十多年成都網(wǎng)站建設(shè)工作經(jīng)驗(yàn),為各大企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),對(duì)于網(wǎng)頁設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、重慶APP開發(fā)、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、國際域名空間等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營銷、管理等網(wǎng)站化運(yùn)作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項(xiàng)目的能力。
1、類似于這樣的大表一般是需要?jiǎng)?chuàng)建分區(qū)的,表需要分區(qū),索引也需要分區(qū),這里只提到分區(qū)就是子表,一個(gè)子表ORACLE內(nèi)部就是一個(gè)段的概念,我的博客內(nèi)部正好剛寫了一篇關(guān)于分區(qū)的介紹,你也可以參考其他的資料幫你提供參考,這個(gè)需要對(duì)分區(qū)專門研究,然后根據(jù)實(shí)際情況去做分區(qū)(因?yàn)閺念}目上也不是太明確你的要求),不然有些時(shí)候往往適得其反。
2、ORACLE快照就不是解決這個(gè)問題的了,他主要是對(duì)回滾段的一些處理記錄,當(dāng)你刪除增加數(shù)據(jù),即使提交了,也可以通過快照找到近期的數(shù)據(jù),但是如果回滾段較小,被沖掉了,那就沒辦法了,就像做一個(gè)大型統(tǒng)計(jì)需要很長時(shí)間,中途若對(duì)統(tǒng)計(jì)的表進(jìn)行增刪改查操作即使COMMIT也不會(huì)在統(tǒng)計(jì)中運(yùn)算,因?yàn)镺RACLE會(huì)自己創(chuàng)建在執(zhí)行SQL前給與一個(gè)時(shí)間戳TIMESTAMP和對(duì)應(yīng)SCN號(hào)碼,這個(gè)是絕對(duì)唯一的,如果出現(xiàn)臟塊,就會(huì)到回滾段去找數(shù)據(jù),若回滾段被沖掉,這個(gè)統(tǒng)計(jì)會(huì)報(bào)錯(cuò)。
3、在這樣大數(shù)據(jù)量的轉(zhuǎn)存過程中,建議使用分批轉(zhuǎn)存(不要一次轉(zhuǎn)存過來),并自己去編寫日志,轉(zhuǎn)存過程中,將目標(biāo)表使用Hint中的/*+append*/進(jìn)去并后帶NOLOGGING,如:INSERT /*+append*/ INTO table_name NOLOGGING SELECT .. FROM ...;這樣會(huì)以最小的日志編寫方式進(jìn)行高水位線插入,另外如果是同步數(shù)據(jù)可以使用到MERGE,自定義分表快速一次性插入使用INSERT ALL。
4、如果是一個(gè)表內(nèi)部就有這么多數(shù)據(jù),目標(biāo)表需要進(jìn)行分區(qū),而且根據(jù)實(shí)際情況可以的話建議是二級(jí)分區(qū),分區(qū)一定要找好下手點(diǎn),不能亂分,不然往往分后的性能不如不分的情況,至于如何分區(qū),這些都要依據(jù)實(shí)際情況而定,沒有完全的定論,不過只要分區(qū),最基本的就是你的分區(qū)字段是99%的情況都要用以查詢條件,并可以迅速定位分區(qū)的字段,一個(gè)分區(qū)內(nèi)部的數(shù)據(jù)不要太多,各個(gè)分區(qū)的數(shù)據(jù)較為均勻分布。
5、分區(qū)基礎(chǔ)上創(chuàng)建分區(qū)索引,有全局索引和本地索引,據(jù)實(shí)際情況可以參考使用,保證通過分區(qū)索引快速定位數(shù)據(jù)范圍和查找數(shù)據(jù)(針對(duì)提取少量數(shù)據(jù),而不是全盤掃描)。
6、至于如何將高版本的數(shù)據(jù)同步到低版本,尤其跨越兩個(gè)大版本,本來ORACLE 10后有一個(gè)數(shù)據(jù)泵,但是ORACLE 9I用不了,但是用SQL無益是最慢的,DMP就算是小版本的區(qū)別也可能會(huì)有點(diǎn)問題,SQL*LOADER是人工去完成導(dǎo)入導(dǎo)出工作,外部表是文件結(jié)構(gòu)也需要先導(dǎo)出去而且對(duì)于大數(shù)據(jù)量的性能不容樂觀,就我個(gè)人來說在可能的情況下用DB-LINK鏈接過去,可進(jìn)行雙數(shù)據(jù)庫操作,不過DB-LINK轉(zhuǎn)存過程注意分布式事務(wù)的一致性問題。
既然都已經(jīng)成功導(dǎo)入了,也沒有錯(cuò)誤提示,那就應(yīng)該成功了。
可以到數(shù)據(jù)庫里查一下看看數(shù)據(jù)是否都已經(jīng)導(dǎo)入
如果你懷疑導(dǎo)入有問題,在寫導(dǎo)入腳本時(shí),加參數(shù) log=imp.log
最好將你導(dǎo)入的腳本貼出來
把你的語句貼出來看看。
impdp中directory要寫在前面,如果寫在最后就會(huì)報(bào)39087的錯(cuò)誤,還有就是你創(chuàng)建的目錄是不是你這個(gè)數(shù)據(jù)庫的?
再有就是你執(zhí)行IMPDP這個(gè)語句的時(shí)候,末尾不要有‘;’
1、導(dǎo)出導(dǎo)入表和數(shù)據(jù),最快的還是在plsql工具里選擇導(dǎo)出導(dǎo)入然后就可以了,第一步選擇導(dǎo)入。
2、第二步選擇你要導(dǎo)出的表。
3、然后選擇SQL插入,選擇如圖所示,where字句可以添加限制條件的導(dǎo)出表數(shù)據(jù)。
4、然后數(shù)據(jù)和表結(jié)構(gòu)都導(dǎo)出到對(duì)應(yīng)的文件了 。