PLSQL匯入dmp檔案完整步驟(附圖)
匯入dmp檔案分為三大步:建立表空間、建立使用者、匯入dmp檔案
一、建立表空間:
點選new,新建一個sql window
語句為:
createtablespace"表空間名"datafile'D:\app\*****\oradata\orcl\表空間名.dbf'size50M defaultstorage(initial500K Next500K minextents1maxextentsunlimitedpctincrease0);
如:
create tablespace CDP datafile 'D:\app\LBD\virtual\oradata\orcl\CDP.dbf' size 2000M;
其中,CDP代表表空間名字,datafile後面的目錄地址代表orcl的安裝目錄,為方便檢視我這裡將表空間的檔名設定為表空間的名字。
執行之後我們就能看到自己的表空間啦
這一步的常見報錯有:
ora-01119錯誤原因:該錯誤的主要問題是在於建立表空間的檔案目錄地址沒有指定正確。
ORACLE-01537錯誤原因:表空間'TT'或者檔名'TT.dbf'已經被使用。
二、建立使用者
使用資料庫 dba 使用者建立使用者並賦予相應的匯入匯出等許可權。
1.選擇new--user
2.點選General標籤。選擇第一步建立的表空間,並填寫使用者名稱密碼
3.點選Role Privileges標籤。Role選擇connect,勾選“Default”。
4.點選System Privileges標籤。選擇“create any table”、“create any type”、“create any sequence”,右側不勾選。
5.點選Quotas標籤。tablespace中選擇“users”表空間,勾選“Unlimited”(無限許可權)。
6.點選APPLY。退出plsql重新登陸。到這裡,我們就可以使用剛剛建立的使用者以普通使用者(Normal)的身份登入了
三、匯入dmp檔案
匯入dmp檔案有兩種方式:
*應儘量避免使用plsql進行匯入,因為會出現很多會產生各種靈異問題。比如:1)匯入的時候一閃而過,顯示匯入成功,但資料庫裡找不到任何資料。2)選擇From User、To User時顯示“Not logged on”問題。
1,plsql匯入簡介(避免使用):
第一步:使用建立的使用者登入
第三步:選擇tools(工具)選單下的import tables..(匯入表);
第四步:在oracle import選項卡介面勾選相應的選項;
第五步:選擇buffer size(緩衝池大小);
第六步:填寫from user匯出dmp檔案的使用者;
第七步:填寫to user匯入dmp檔案的使用者,即當前登入的使用者;
第八步:import executable選擇預設;
第九步:選擇dmp檔案;
第十步:import(匯入)。
2,Windows自帶的命令列匯入:
匯入前注意:
1、匯入前同樣需要建立表空間。
2、設定表空間的自動增長(否則匯入資料大於表空間的儲存量會匯入失敗)。
設定表空間:
ALTER DATABASE DATAFILE ' F:\app\root\oradata\orcl\HF_PMC_NEW.dbf ' AUTOEXTEND ON;//開啟自動增長
ALTER DATABASE DATAFILE ' F:\app\root\oradata\orcl\HF_PMC_NEW.dbf ' AUTOEXTEND ON NEXT 200M ;//每次自動增長200m
ALTER DATABASE DATAFILE ' F:\app\root\oradata\orcl\HF_PMC_NEW.dbf ' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;//每次自動增長200m,資料表最大不超過1G
給使用者賦予dba許可權:
1,plsql上用有dba許可權的賬號登入;
2,執行GRANTDBATO MYCDP;
匯入dmp命令列:
*注意要用windows自帶的命令列匯入(win+r)
例1:
imp system/[email protected]:1521/orclfile=C:\pmc20190722.dmp log=D:\test.log fromuser=root touser=system constraints=N ignore=y
例2:
imp MYCDP/[email protected] file=D:\umecmycim20200425.dmpfull=y;
這一步的常見報錯有:
IMP-00013: 只有 DBA 才能匯入由其他 DBA 匯出的檔案。 原因:沒有給建立的使用者賦許可權 ,要用超級管理員賬號登陸,執行GRANTDBATO MYCDP;賦予dba許可權之後才可以匯入。
IMP-00002: 無法開啟 C:\****.dmp進行讀取 。 原因:檢查sql語句最後是不是少了分號“;”,或者沒有加:full=y,這些都會引起無法讀取。
IMP-00034:警告:在匯出檔案中未找到FromUser"root"
注意:匯出時的賬號是什麼,導進去的賬號是什麼。注意設定,最好一致!