0. 準備:
sys/passwd: system/oracle123
schema/passwd: cloud/cloud123
1. 創建導出導入目錄directory(使用)
create or replace directory dpump_dir as 'd:\dpump_dir';
grant read, write on directory dpump_dir to cloud;
2. 導出模式
full 全庫導入導出,使用system用戶或具有dba權限的用戶進行導出命令
schema 按用戶導出導入
table 按表導出導入
tablespace 按表空間導出導入
注:在導出或導入時,四種模式只能選擇其一,任何兩者或者兩者以上不可同時使用
3. 導出語法
expdp system/oracle123 directory=dpump_dir dumpfile=expdp.dmp logfile=expdp.log
| full=y 全庫導出
| schema=cloud 導出用戶cloud
| tables=table_name1,table_name2,...,tables_namen 導出表1,表2,...,表n
| tablespace=cloud,user 導出表空間cloud,user
| exclude=table,view,function,procedure,queue,sequence,materialized views,trigger
| include=table,view,function,procedure,queue,sequence,materialized views,trigger
| content=all | data_only | metadata_only
| filesize= integer B | KB | MB | GB | TB
| flashback_scn=scn_value
| include=TABLE:"IN ('EMPLOYEES', 'DEPARTMENTS')"
| include=INDEX:"LIKE 'EMP%'"
| query=(cloud.user:"WHERE last_name IN(SELECT last_name FROM cloud.user@dblink1)")
注:除了四種導出導出模式不能兩者或兩者以上組合使用外,其他方式可以根據需求自由組合使用
4. 使用參數文件
由於業務需求參數可能過去冗長(如根據需要導出cloud用戶下查出的幾十個表),因此使用參數文件可以更好的編輯導入導出命令
命令:expdp cloud/cloud123 parfile=cloud.par
參數文件cloud.par:
directory=dpump_dir
dumpfile=cloud.dmp
logfile=cloud.log
tables=table_name1,table_name2,...,tables_namen
注:參數文件其實就是將除了導出導入expdp|impdp和導出導入用戶密碼(即:expdp|impdp username/passwd)之外的命令放到參數文件中
5. 導出示例
(1)全庫導出:
expdp system/oracle123 directory=dpump_dir dumpfile=full.dmp logfile=full.log full=y full默認爲y
(2)導出cloud用戶:
expdp system/oracle123 directory=dpump_dir dumpfile=cloud.dmp logfile=cloud.log schema=cloud
(3)僅導出cloud用戶下的指定表
expdp cloud/cloud directory=dpump_dir dumpfile=cloud_specify_table.dmp logfile=cloud_specify_table.log tables=table_name1,table_name2,...,tables_namen
(4)僅導出cloud用戶下的所有表(以及視圖,存儲過程)
expdp cloud/cloud directory=dpump_dir dumpfile=cloud_table.dmp logfile=cloud_table.log include=table(,view,procedure)
(5)導出cloud用戶下除了表之外的所有對象
expdp cloud/cloud directory=dpump_dir dumpfile=cloud_except_table.dmp logfile=cloud_except_table.log exclude=table
(6)導出cloud用戶指定表以及其他說對象內容
expdp cloud/cloud directory=dpump_dir dumpfile=cloud_specify_table.dmp logfile=cloud_specify_table.log include=table:"in ('table_name1', 'table_name2')"
(7)導出cloud用戶下的所有對象,但不導出數據
expdp cloud/cloud directory=dpump_dir dumpfile=cloud_except_data.dmp logfile=cloud_except_data.log content=metadata_only
6. 導入示例
導出和導入是對應的,只需將expdp換成impdp即可