步骤:
1. 创建目录,导入导出前都必须先创建 directory
# sqlplus / as sysdba
> create directory dump_dir as '/home/Oracle/dump';
注意: dump_dir 指向实际的物理路径 /home/oracle/dump, /home/oracle/dump 目录必须存在。
2. 授权给相应用户读写目录权限
> grant read,write on directory dump_dir to linuxidc;
3. 导出
--从数据库 orcl 导出 linuxidc 用户下的表结构及数据,但不包括表 JK_COMPANY_VIDICON_INFO.
expdp linuxidc/linuxidc@orcl directory=dump_dir dumpfile=test4.dmp nologfile=y exclude=table:"in ('JK_COMPANY_VIDICON_INFO')"
注意: 如果expdp的参数是直接写在命令行中,则如本例中 exclude 的值需要添加转义符 ''. 如果放在
*.par 参数文件中,则无需加转义符,添加反而会报错误。表名要大写。
--导出指定表 jk_company_vidicon_info:
expdp linuxidc/linuxidc@orcl directory=dump_dir dumpfile=test5.dmp nologfile=y tables=jk_company_vidicon_info
4. 导入
--将原方案 linuxidc 中的对象依旧导入 linuxidc 这个方案下,并非 idcfree 这个方案,存在表冲突时使用替换操作
impdp idcfree/idcfree@orcl directory=dump_dir dumpfile=test4.dmp nologfile=y schemas=linuxidc table_exists_action=replace
--将原方案 linuxidc 中的对象导入新方案 idcfree 中
impdp idcfree/idcfree@orcl directory=dump_dir dumpfile=test4.dmp nologfile=y remap_schema=linuxidc:idcfree
5. 使用参数文件 *.par 举例
# vi exp_table.par
DIRECTORY=dump_dir
DUMPFILE=expdp_linuxidc.dmp
LOGFILE=expdp_linuxidc.log
CONTENT=METADATA_ONLY
# expdp linuxidc/linuxidc@orcl parfile=exp_table.par
------------------------
# vi exp_evwp.par
directory=dump_dir
dumpfile=test3.dmp
nologfile=y
exclude=table:"in ('JK_COMPANY_VIDICON_INFO')"
# expdp evwp/evwp@orcl parfile=exp_evwp.par