Oracle 10g 增强的导入导出工具 expdp/impdp[Linux]


步骤:
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 bkjia;
3. 导出
--从数据库 orcl 导出 bkjia 用户下的表结构及数据,但不包括表 JK_COMPANY_VIDICON_INFO.
expdp bkjia/bkjia@orcl directory=dump_dir dumpfile=test4.dmp nologfile=y exclude=table:\"in \(\'JK_COMPANY_VIDICON_INFO\'\)\"
注意: 如果expdp的参数是直接写在命令行中,则如本例中 exclude 的值需要添加转义符 '\'. 如果放在
*.par 参数文件中,则无需加转义符,添加反而会报错误。表名要大写。
--导出指定表 jk_company_vidicon_info:
expdp bkjia/bkjia@orcl directory=dump_dir dumpfile=test5.dmp nologfile=y tables=jk_company_vidicon_info
4. 导入
--将原方案 bkjia 中的对象依旧导入 bkjia 这个方案下,并非 idcfree 这个方案,存在表冲突时使用替换操作
impdp idcfree/idcfree@orcl directory=dump_dir dumpfile=test4.dmp nologfile=y schemas=bkjia table_exists_action=replace
--将原方案 bkjia 中的对象导入新方案 idcfree 中
impdp idcfree/idcfree@orcl directory=dump_dir dumpfile=test4.dmp nologfile=y remap_schema=bkjia:idcfree

5. 使用参数文件 *.par 举例
# vi exp_table.par
DIRECTORY=dump_dir
DUMPFILE=expdp_bkjia.dmp
LOGFILE=expdp_bkjia.log
CONTENT=METADATA_ONLY

# expdp bkjia/bkjia@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

相关内容