oracle數據庫導入導出方法


Oracle Database 10g以后引入了最新的數據泵(Data Dump)技術,使DBA或開發人員可以將數據庫元數據(對象定義)和數據快速移動到另一個oracle數據庫中。
 
數據泵導出導入(EXPDP和IMPDP)的作用
 
 1、實現邏輯備份和邏輯恢復。
 
 2、在數據庫用戶之間移動對象。
 
 3、在數據庫之間移動對象
 
 4、實現表空間搬移。

 

數據泵導出導入與傳統導出導入的區別:
 
在10g之前,傳統的導出和導入分別使用EXP工具和IMP工具,從10g開始,不僅保留了原有的EXP和IMP工具,還提供了數據泵導出導入工具EXPDP和IMPDP.使用EXPDP和IMPDP時應該注意的事項;
 
EXP和IMP是客戶段工具程序,它們既可以在客戶端使用,也可以在服務器段使用。
 
EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用
 
IMP只適用於EXP導出文件,不適用於EXPDP導出文件;IMPDP只適用於EXPDP導出文件,而不適用於EXP導出文件。
 
 
今天我在導入同事給我的數據文件時,總是報IMP-00038錯誤,提示,無法轉換為環境字符集句柄,造成這種錯誤的原因一般是數據庫版本不匹配,但是我們使用的都是oracle11g,就排除了這種可能。最后發現原因是他是使用數據泵導出的數據文件,而我使用傳統imp命令導入是不可以的,后續改為使用impdp數據泵導入成功。
 
下面是我使用數據泵導入數據文件的完整過程:
 
1、使用system用戶登錄數據庫,創建新用戶usertest(新建用戶時用戶名最好和數據文件導出時的用戶名相同),表空間可以使用系統默認的也可以自己新建一個表空間。sql代碼如下:
 
新建用戶使用oracle默認表空間:
create user usertest identified by usertest; 
 
新建表空間:
create tablespace user_all 
datafile 'D:/dev/oracle/tablespace/user_all.dbf'
size 300M   
autoextend on   
next 50M   
maxsize unlimited 
 
新建用戶(設置默認表空間):
create user usertest identified by usertest default tablespace user_all;
 
2、對新建的用戶賦權限,dba、connect、resource。sql代碼如下:

grant connect, resource,dba to usertest;
 
3、為數據庫導入導出,新建目錄文件 如dumpdir
 
create directory 目錄名稱 as '數據庫服務器上的一個目錄',如:
create directory dumpdir as 'd:\服務器目錄名';
將導入或導出的文件放在這個目錄下
 
4、為此用戶的導入導出目錄賦讀寫權限
grant read,write on directory dumpdir to usertest;

 
5、導出及導入
以SID=orcl,導出dmp的賬號為usertest,導入dmp的賬號為usertest為例。

 
若將數據從sfz中導出:
expdp usertest/usertest@orcl directory=dumpdir  dumpfile=導出文件名

 
導入到usertest中:
impdp usertest/usertest@orcl directory=dumpdir  dumpfile=導出文件名.dmp
 
導入導出用戶名最好相同,用戶名不同時,還需要做個映射
 
remap_schema=test:usertest 

 
注意在使用本地數據庫時,要啟動以下oracle服務:
 
OracleOraDb11g_home1TNSListener
OracleServiceORCL

 
如果只是連接遠程服務器上的數據庫,僅使用PL/SQL工具,那么可以把服務全停,這樣能省點內存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM