標籤:style color os 使用 ar strong for 檔案 資料
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/[email protected] directory=dumpdir dumpfile=匯出檔案名稱
匯入到usertest中:
impdp usertest/[email protected] directory=dumpdir dumpfile=匯出檔案名稱.dmp
匯入匯出使用者名稱最好相同,使用者名稱不同時,還需要做個映射
remap_schema=test:usertest
注意在使用本機資料庫時,要啟動以下oracle服務:
OracleOraDb11g_home1TNSListener
OracleServiceORCL
如果只是串連遠程伺服器上的資料庫,僅使用PL/SQL工具,那麼可以把服務全停,這樣能省點記憶體。
oracle資料庫匯入匯出方法