【Oracle】使用expdp/impdp导入导出用户数据库数据

业务场景:从Windows上的Oracle数据库将某个用户下的所有数据迁移到Linux上的Oracle数据库下的另一个用户中。其中两个数据库版本是一致的,均为11.2.0.1。可以看成是两个Oracle数据库下用户数据的导入导出。

数据导入导出的流程就是使用expdp导出数据,然后使用impdp导入数据。(使用expdp/impdp需要Oracle版本不低于10g)

expdp导出某个用户下的所用数据

  1. 在windows系统上创建一个文件夹,用于存放导出的数据。本文创建的文件夹位置为:D:\oracle1\expdata
  2. 打开命令行,进入sqlplus:sqlplus / as sysdba
  3. 在Oracle中创建一个逻辑目录与刚刚的文件夹对应:create or replace directory expdir as 'D:\oracle1\expdata';
  4. 查看逻辑目录是否创建成功:select * from dba_directories;
  5. 给需要导出的用户授权目录:grant read,write on directory expdir to 用户名;
  6. 退出sqlplus,在命令行界面执行导出命令:expdp 用户名/密码 directory=expdir dumpfile=expdata.dmp
  7. 生成的数据文件就在D:\oracle1\expdata下

impdp导入用户数据

  1. 在linux系统上创建一个文件夹,用于存放导出的数据。本文创建的文件夹位置为:/media/e8488e1b-e8f6-4ae8-8b12-b0b398689393/oracle/expdata
  2. 将生成的数据文件从windows系统中迁移到linux系统中的expdata中
  3. 进入sqlplus:sqlplus / as sysdba
  4. 在Oracle中创建一个逻辑目录与刚刚的文件夹对应:create or replace directory expdir as '/media/e8488e1b-e8f6-4ae8-8b12-b0b398689393/oracle/expdata';
  5. 查看逻辑目录是否创建成功:select * from dba_directories;
  6. 给需要导入数据的用户赋予权限:grant read,write on directory expdir to jeecgtestuser;
  7. 退出sqlplus,在命令行界面执行命令:impdp 新用户名/新用户密码@orcl remap_schema=用户名:新用户名 directory=expdir dumpfile=expdata.dmp logfile=impdp.log; (这里的用户名是导出数据的用户,新用户是需要导入数据的用户)

tips:如果是导入的同一个用户,命令为:impdp 用户名/用户密码@orcl schemas=用户名 directory=expdir dumpfile=expdata.dmp logfile=impdp.log;

遇到的错误

SP2-0734: 未知的命令开头"exp ." - 忽略了剩余的行
• 不是在sqlplus里面执行,而是在命令行窗口执行
EXP-00104: 不支持数据类型为 BINARY_DOUBLE 的列(使用exp导出时报错)
• 只能通过expdp来导入导出
ORA-39002: invalid operation ORA-39070: Unable to open the log file. ORA-29283
• 参考:https://blog.csdn.net/m0_37814112/article/details/78119212

UDE-12541: 操作产生了 ORACLE 错误 12541
• 直接将impdp 用户名/密码@ip地址/orcl

对于不同的导出要求(比如按表名导出,按表空间导出等),可参考: https://www.cnblogs.com/farmer-y/p/5888432.html

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值