EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。
EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用。
IMP只適用于EXP導出的文件,不適用于EXPDP導出文件;IMPDP只適用于EXPDP導出的文件,而不適用于EXP導出文件。
expdp或impdp命令時,可暫不指出用戶名/密碼@實例名 as 身份,然后根據提示再輸入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
exp/imp
在cmd的dos命令提示符下執行,而不是在里面,但是格式一定要類似于:
Dos窗口連接
# 進入sqlplus提示符
sqlplus /nolog
-- 通過賬號登錄
connect scott/123456
-- 管理員
conn / as sysdba
-- 遠程連接
sqlplus usr/pwd@//host:port/sid
system/h1w2D3B4@//10.71.105.216:1526/i2kdb
-- 查看本用戶所有表,視圖等
select * from user_tab_comments;
imp/exp 用戶名/密碼@或 full=y file=C:\導出文件名稱.dmp =y
imp 命令是在dos提示符下執行的,直接cmd后執行而不是在sql下執行的
exp(數據導出)
在賬號下直接使用,無須進入模式
-- 將數據庫中system用戶與sys用戶的表導出
exp wlj/wlj@orcl file=d:exportoracle.dmp owner=(system,sys)
-- 將數據庫中的表inner_notify、notify_staff_relat導出
exp wlj/wlj@orcl file= d:exportoracle.dmp tables=(inner_notify,notify_staff_relat)
-- 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
exp wlj/wlj@orcl file=d:exportoracle.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的導出oracle用戶默認表空間,對于壓縮,既用把dmp文件可以很好的壓縮。
也可以在上面命令后面 加上 =y 來實現。
Linux下該命令中的小括號比較敏感,需要加上雙引號
執行命令后如果報錯誤或寫錯誤,那就是賬號對文件夾沒有操作權限,切換到具有的權限文件夾,導出到該文件夾下即可
imp(數據導入)
1 將d:.dmp 中的數據導入 TEST數據庫中。
imp wlj/wlj@orcl file=d:.dmp full=y
imp wlj/wlj@orcl full=y file=d:.dmp =y
如果出現問題,可能是因為有的表已經存在,然后它就報錯,對該表就不進行導入。
在后面加上 =y 就可以了。
2 將d:.dmp中的表 導入
imp wlj/wlj@orcl file=d:.dmp =()
注意:基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然后導入。
注意:1、操作者要有足夠的權限,權限不夠它會提示。
2、數據庫是可以連上的。可以用 orcl 來獲得數據庫orcl能否連上。
具體參考://p/.html
expdp/impdp expdp(數據導出)
1、創建邏輯目錄,該命令不會在操作系統創建真正的目錄,最好以等管理員身份創建。
本次操作為SQL
create directory dpdata1 as '/home/oracle/temp/dump';
注意:當前為邏輯目錄oracle用戶默認表空間,所以需要自己在系統上新建一個對應的文件目錄(用戶可讀寫的文件)
mkdir -p /home/oracle/temp/dump
2、查看管理員目錄
select * from dba_directories;
同時查看操作系統中該目錄是否存在,并不關心該目錄是否存在,如果不存在,則在導出是會報錯
3、給用戶賦予在指定目錄的讀寫權限
最好以身份進行賦予
-- 給 market用戶賦予dpdata1 邏輯目錄的讀寫權限
grant read,write on directory dpdata1 to market;
4、導出數據
1)按用戶導出
expdp market/xxw12345w@orcl schemas=market dumpfile=expdpmarket.dmp DIRECTORY=dpdata1;
2)并行進程
expdp market/xswewf1234@orcl dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 parallel=40 job_name=market;
3) 按表名導出
expdp market/xswewf1234@orcl tables=emp,dept dumpfile=expdpmarket.dmp DIRECTORY=dpdata1;
4)按查詢條件導出
expdp market/xswewf1234@orcl dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 tables=emp query='where deptno=12';
5)按照表空間導出
expdp system/manager dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 tablespaces=user,temp;
6)導出整個數據庫
expdp system/manager dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 full=y;
impdp(數據導入)
1)按用戶導入
impdp market/xxw12345w@orcl schemas=market dumpfile=expdpmarket.dmp DIRECTORY=dpdata1;
2)改變表的owner
impdp system/manager dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 tables=scott.dept REMAP_SCHEMA=scott:system;
3)導入表空間
impdp system/manager dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 tablespaces=users;
4)導入數據庫
impdp system/manager dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 full=y;
5)追加數據
impdp system/manager dumpfile=expdpmarket.dmp DIRECTORY=dpdata1 schemas=market TABLE_EXISTS_ACTION;
數據泵impdp參數:
1.
該選項用于將源數據文件名轉變為目標數據文件名,在不同平臺之間搬移表空間時需要該選項.
=:
2.
該選項用于將源方案的所有對象裝載到目標方案中.
=:
3.
將源表空間的所有對象導入到目標表空間中
=::
4.
該選項指定建立表空間時是否覆蓋已存在的數據文件.默認為N
={Y | N}
5.S
指定導入是是否跳過不可使用的索引,默認為N
6, 參數允許創建DDL 腳本文件
impdp scott/tiger = =a1.dmp =c.sql
默認放在下,因此不要指定絕對路徑
7.N
指定是否導入流元數據( ),默認值為Y.
8.
該選項用于指定當表已經存在時導入作業要執行的操作,默認為SKIP
={SKIP | | | }
當設置該選項為SKIP時,導入作業會跳過已存在表處理下一個對象;
當設置為時,會追加數據;
當設置為時,導入作業會截斷表,然后為其追加新數據;
當設置為時,導入作業會刪除已存在表,重建表并追加數據;
注意,選項不適用與簇表和選項
注意:默認對空表不進行導出