Oracle impdb和expdb命令使用详解

1、创建目录

    查询目录:
    SELECT * FROM dba_directories;
    创建目录:
    create directory dump_dir as 'D:\backup';       

2、给命名空间授权

    GRANT READ,WRITE ON DIRECTORY DUMP_DIR to geobase;

3、impdb和expdb命令语法

#2、expdp导出

2.1、按用户导出
expdp system/system@orcl directory=bakdir dumpfile=psp_base_db_20150818.dmp schemas=psp_base_db logfile=psp_base_db.log

2.2、按表名导出
expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;

2.3、按查询条件导出
expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

2.4、按表空间导出
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;

2.5、导出整个数据库
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;

#3、impdp导入
3.1、 按用户导入

impdp 用户名/密码 DIRECTORY=数据库目录 DUMPFILE=dmp文件 SCHEMAS=表空间;

3.2、改变表的表空间

impdp 用户名/密码 DIRECTORY=数据库目录 DUMPFILE=dmp文件 REMAP_TABLESPACE=导出库表空间:当前表空间;

3.3、改变导出导入的用户名

impdp 用户名/密码 DIRECTORY=数据库目录 DUMPFILE=dmp文件  REMAP_SCHEMAS=导出库用户名:当前用户名;

3.4、导入整个数据库

impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;

3.5、追加数据

impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system 
table_exists_action=replace

常见问题处理办法

错误号错误描述解决办法
ora-39171作业出现可恢复的等待处理办法见下面说明
出现上面的问题,有两个原因: 
1、表空间大小不够,或者设置了自动扩充,但是自动扩充的大小不够大。 
2、表空间足够大,但是表空间的block不够,因为oracle 的dba(data block address)是32 bits的,其中block id占了22bits,file id占了10bits,所以datafile能达到的最大size就是2^22*db_block_size也就是4194304*db_block_size,4k的blocksize那么它的datafile max size就是16G,8k的blocksize那么它的datafile max size就是32G。
针对第一个问题,解决方法: 
ALTER DATABASE  DATAFILE 'D:/database/XXX.DBF' AUTOEXTEND    ON NEXT 20G MAXSIZE UNLIMITED; 
针对第二个问题,解决方法: 
alter tablespace tablespaceName add datafile 'D:/database/XXX01.DBF' size 30G; 
对表空间大小进行修改 ALTER DATABASE DATAFILE '数据文件' AUTOEXTEND   ON NEXT xxG MAXSIZE UNLIMITED;

参考文章:
ORACLE expdp/impdp详解(原创)
oracle impdp 变动用户、表空间(ORA-00959:表空间不存在)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值