1. 程式人生 > 實用技巧 >PLSQL匯入dmp檔案完整步驟(附圖)

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檔案有兩種方式:

1)使用plsql匯入;2)用命令列匯入。

*應儘量避免使用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"

注意:匯出時的賬號是什麼,導進去的賬號是什麼。注意設定,最好一致!