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即可