準備:sql
1)建立邏輯目錄,該命令不會在操做系統建立真正的目錄,最好以system等管理員建立。 數據庫
create directory dpdata as '/opt';
2)查看管理理員目錄(同時查看操做系統是否存在,由於Oracle並不關心該目錄是否存在,若是不存在,則出錯)
oracle
select * from dba_directories;
3)給scott用戶賦予在指定目錄的操做權限,最好以system等管理員賦予。spa
grant read,write on directory dpdata1 to scott;
導出:操作系統
1)按用戶導code
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
2)並行進程parallel對象
expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名導進程
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;
4)按查詢條件導get
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';
5)按表空間導it
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;
6)導整個數據庫
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;
導入:
第一步:
1)建立文件路徑
--導入時必須先建立文件夾路徑 create or replace directory bao as 'd:\oracle\test'; --給使用的用戶受權(讀寫權限) Grant read,write on directory bao to scott;
2)也能夠不用建立路徑,查詢dba的文件夾路徑,把dmp文件放入某個路徑
select * from dba_directories;
第二步:
1)導到指定用戶下
impdp scott/tiger DIRECTORY=bao DUMPFILE=expdp.dmp SCHEMAS=scott;
2)改變表的owner
impdp system/manager DIRECTORY=bao DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;
3)導入表空間
impdp system/manager DIRECTORY=bao DUMPFILE=tablespace.dmp TABLESPACES=example;
4)導入數據庫
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;
5)追加數據
impdp system/manager DIRECTORY=bao DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION
備註:參數說明
一、TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }
當設置該選項爲SKIP時,導入做業會跳過已存在表處理下一個對象;當設置爲APPEND時,會追加數據,爲TRUNCATE時,導入做業會截斷表,而後爲其追加新數據;當設置爲REPLACE時,導入做業會刪除已存在表,重建表病追加數據,注意,TRUNCATE選項不適用與簇表和NETWORK_LINK選項;
二、REMAP_SCHEMA
該選項用於將源方案的全部對象裝載到目標方案中:REMAP_SCHEMA=source_schema:target_schema
三、REMAP_TABLESPACE
將源表空間的全部對象導入到目標表空間中:REMAP_TABLESPACE=source_tablespace:target:tablespace
四、REMAP_DATAFILE
該選項用於將源數據文件名轉變爲目標數據文件名,在不一樣平臺之間搬移表空間時可能須要該選項.
REMAP_DATAFIEL=source_datafie:target_datafile