Linux环境下使用expdp和impdp实现oracle数据库不同用户间某些表的导入导出

洼地云 tuoyidashi.png

这里记录了本人一次在Linux环境下使用expdp和impdp实现oracle数据库不同用户间某些表的导入导出经历。

环境信息

  • 系统:CentOS 7.5
  • ORACLE 11g

这里主要情形:

  • 用户不同;
  • 表空间不同;
  • 设置进程数调整导出、导入作业数;

操作前提

  • 使用用户oracle登录Linux服务器;
  • 配置好oracle的ORACLE_HOME环境变量;
  • 创建好数据库oracle目录;

相关参数

  • directory:oracle目录,进行导入、导出指定该目录,导出的文件、待导出文件放在该参数对应的实际物理目录下;
  • dumpfile:数据文件名;
  • parallel:作业数;
  • table_exists_action: 导入时,如果对应表已经存在应进行的操作,比如replace为删除后新建表并插入数据;
  • data_options:数据选项,比如权限约束等;
  • logfile:日志文件;
  • remap_schema:模式映射,原数据库和目标数据库的模式映射,用户不同时需要此选项;
  • REMAP_TABLESPACE:表空间映射,原数据库和目标数据库不同时需要此选项;

进行导出、导入

导出示例:

expdp ww_iarp/ww_iarp@ora11g directory=temp_dir dumpfile=waiwang_init_%U.dmp tables=JW_GTDJ_DXXX_ZS_INIT,JW_GTDJ_JBXX_ZS_INIT,JW_GTDJ_JYZXX_ZS_INIT,JW_GTDJ_ZXXX_ZS_INIT,JW_E_LI_ILLDISHONESTY_INIT,JW_NB_GT_JBXX_MAIN_INIT,JW_NB_GT_ZCZK_MAIN_INIT,JW_NB_HZS_JBXX_MAIN_INIT,JW_NB_HZS_ZCZK_MAIN_INIT,JW_NB_QY_JBXX_MAIN_INIT,JW_NB_QY_ZCZK_MAIN_INIT,JW_QYDJ_BGSX_LS_INIT,JW_QYDJ_CWFZR_ZS_INIT,JW_QYDJ_CZXX_ZS_INIT,JW_QYDJ_DXXX_ZS_INIT,JW_QYDJ_FZJG_ZS_INIT,JW_QYDJ_JBXX_ZS_INIT,JW_QYDJ_LLR_ZS_INIT,JW_QYDJ_RYXX_ZS_INIT,JW_QYDJ_ZXXX_ZS_INIT parallel=4 logfile=waiwang_export.log ;

导入示例:

impdp sdjw_ww_query/sdjw_ww_query@ora11g directory=temp_dir dumpfile=waiwang_init_%U.dmp parallel=8 table_exists_action=REPLACE data_options=skip_constraint_errors logfile=neiwang_import.log remap_schema=ww_iarp:sdjw_ww_query REMAP_TABLESPACE=JW_TABLESPACE:JW_TABLESPACE;

错误处理

  1. 数据库表文件过大导致ORA-29913ORA-31693错误
赞(2)
未经允许禁止转载:优米格 » Linux环境下使用expdp和impdp实现oracle数据库不同用户间某些表的导入导出

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系

登录

找回密码

注册