通过 Oracle impdp 命令将表还原到指定的表空间下

在生产环境中,发现 Oracle 11g 数据库用户 DB_PZGL 所有的表都在表空间 USERS 里面。想将该用户的表转移到自己创建的表空间 SSPT 里面。以下是操作步骤:

1、以DBA身份登陆数据库,创建表空间 SSPT。

CREATE TABLESPACE SSPT
DATAFILE 'D:\ProgramFiles\Oracle\oradata\orcl\SSPT01.DBF'
SIZE 1024M                                                 --初始尺寸,单位是MB
AUTOEXTEND ON NEXT 1024M                                        --自动扩展尺寸
MAXSIZE 10240M;                      --最大尺寸,如果超过最大尺寸,可以增加数据文件

通过增加数据文件的方式扩展表空间。

ALTER TABLESPACE SSPT
ADD DATAFILE 'D:\ProgramFiles\Oracle\oradata\orcl\SSPT02.DBF'
SIZE 1024M
AUTOEXTEND ON NEXT 1024M
MAXSIZE 10240M;

2、通过数据泵 expdp 将用户 DB_PZGL 从数据库导出,因没有指定directory,则使用默认的directory。

expdp system/123456@orcl dumpfile=EXPDP_PZGL.DMP logfile=EXPDP_PZGL.LOG SCHEMAS=DB_PZGL

3、导出完成后,将数据库中的用户 DB_PZGL 彻底删除。

DROP USER DB_PZGL CASCADE;

4、将备份文件重新导入到数据中(因没有指定directory,则使用默认的directory)

impdp system/123456@orcl dumpfile=EXPDP_PZGL.DMP logfile=IMPDP_PZGL.LOG remap_schema=DB_PZGL:DB_PZGL remap_tablespace=USERS:SSPT 

5、完成。从Oracle文档中可知,该方法是唯一可以改变表空间的方法。

参考资料:

1、https://www.cnblogs.com/wangsaiming/p/4947151.html

2、Oracle 11g 自带的帮助命令:impdp -help

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值