expdp文件split再cat后impdp

1 篇文章 0 订阅
1 篇文章 0 订阅

       今天在Maclean的oracle群里看到有个家伙说,expdp 的文件split 再cat 之后 导不进数据库,下面是我的实验结果

注:数据库的用户名是demo_ls 只有一张表  总的大小不超过1M

$sqlplus / as sysdba

建目录,为数据泵导出

SQL>create directory dmpdir as '/oracle/dmp';

SQL> grant read on directory dmpdir to demo_ls;

数据泵导出

$expdp demo_ls DUMPFILE=expdpdemo.dmp directory=dmpdir schemas=demo_ls;

分割

$split -b 330k expdpdemo.dmp expdpdemo_

此时可以看到在/oracle/dmp目录有多个文件如expdpdemo_a*

合并

$cat expdpdemo_* > expdpdemo_new.dmp

再导入数据库

$./impdp crmii/abs directory=dmpdir dumpfile=expdpdemo_new.dmp table_exists_action=replace 

- - relpace 表示当表存在时,先drop,再create。

    还有三个选项,分别是 skip(default),append   追加数据   truncate  先清空表,再插入数据


导入时有一个错误,是用户名demo_ls已存在,先删除用户 drop user demo_ls cascade 再impdp 完全没问题。


另外再试expdp/impdp之前也试了exp/imp,分割再分离,也没有问题。


由于数据量较小,测试可能不充分,但我想在大数据量下,这么分割再合并是没有问题


再试了一次,把一个10G左右的库expdp(不到10分钟),分割,再合并,发现与原文件的大小一样,

$diff -c crmii.dmp crmii_new.dmp

两则没有不同之处,所以分割再合并之后,可以正常导入


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值