【Oracle】利用管道导入用户数据

在生产环境中,Oracle 数据库每天凌晨 3:00 进行全库数据备份,由于数据巨大,因此备份出来的数据都直接进行压缩保存,并按 db<MMDD>.dmp.gz 规则进行命名。
因测试要求,需将 db1113.dmp.gz 备份文件中的 cw 用户数据导入到测试服务器上,由于测试服务器中磁盘空间不足,无法正常将 db1113.dmp.gz 文件进行解压,因此使用 mknod -p 创建管道的方式进行用户数据导入。

$ df -g | grep Oracle
/dev/oralv        90.00     41.08   55%    17421     1% /Oracle

$ ls -l db1113.dmp.gz
-rw-r--r--    1 root     system   2804225957 Nov 13 12:58 db1113.dmp.gz


1. 删除 cwtest 用户及数据
$ sqlplus '/as sysdba'
SQL> DROP USER cwtest CASCADE;

2. 创建 cwtest 用户并授权
SQL> CREATE USER cwtest IDENTIFIED BY cw8899 DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
SQL> GRANT connect,dba to cwtest;
SQL> exit

3. 通过 mknod -p 创建管道 /Oracle/imppipe
$ mknod /Oracle/imppipe p

4. 导入 cw 用户数据到 cwtest 用户
$ imp cwtest/cw8899 file=/Oracle/imppipe fromuser=cw touser=cwtest & gunzip < db1113.dmp.gz > /Oracle/imppipe

5. 删除管道
$ rm -fr /Oracle/imppipe

 

PS: 利用管道也可以在导出数据时直接进行压缩,参考指令如下:
$ mknod /Oracle/exppipe p
$ exp system/manager full=y inctype=complete file=/Oracle/exppipe & gzip -9 < /Oracle/exppipe > /Oracle/db1113.dmp.gz
$ rm -fr /Oracle/exppipe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值