Oracle数据泵expdp/impdp笔记

作者:fbysss
msn:jameslastchina@hotmail.com 
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处
关键字:oracle 数据泵

expdp/impdp数据泵 是oracle10G的命令
必须在服务器上执行,su - oracle
想导出sss_c_开头的表,写下如下语句

expdp username/password dumpfile=aaa.dmp directory=/tmp INCLUDE=table:”like sss_c_%”

实际上,这句话错了好多个地方,看上去对的,实则漏洞百出:
首先会报错:

ORA-39006: internal error
ORA-39213: Metadata processing is not available

原来需要用dba身份进入,执行exec dbms_metadata_util.load_stylesheets
然后,directory不能直接使用外部目录,而是要用oracle自己建立的目录
create directory dumpdir as '/home/oracle/dump_dir';
grant read, write on directory dumpdir to username;

expdp username/password dmpfile=aaa.dmp directory=dmpdir INCLUDE=table:”like ‘sss_c_%’”
还是有问题:
ORA-39071: Value for EXCLUDE is badly formed
原因主要是转义字符问题,
单引号双引号都需要转义
expdp username/password dmpfile=aaa.dmp directory=dmpdir INCLUDE=table:/”like ‘sss_c_%/’/”
一看,ok了,生成文件了
但是,并没有完全按照预想得like的筛选范围导出表来。,一个sss_cal表也出来了。为啥呢?
原因是下划线也是特殊字符,是一个通配符。
解决办法:
expdp username/password dmpfile=aaa.dmp directory=dmpdir INCLUDE=table:/”like /‘sss/_c/_%/’ escape /‘//' "

impdp也要创建目录,赋予权限。并且执行exec dbms_metadata_util.load_stylesheets
impdp user/password dmpfile=aaa.dmp directory=dmpdir
ORA-31633: unable to create master table "USERNAME.SYS_IMPORT_FULL_05
需要使用dba
grant IMP_FULL_DATABASE to username;
impdp的时候,我故意删掉一个表,出现of type TABLE not found in schema
原因是expdp的时候,加了content=data_only 如果是all就可以了

如何使用管理员导出普通用户的表?

当然,用system和sys账号也是可以的,但需要加一个schemas参数,指定表对应用户

expdp system/systempassword dmpfile=aaa.dmp directory=dmpdir schemas=username INCLUDE=table:/”like /‘sss/_c/_%/’ escape /‘//' "

sys有点特殊,必须加as sysdba,格式如下:

expdp ‘userid="sys/syspassword as sysdba"’ dmpfile=aaa.dmp directory=dmpdir schemas=username INCLUDE=table:/”like /‘sss/_c/_%/’ escape /‘//' "

乱码解决:

impdp/expdp有时候出现错误信息是乱码,解决办法是:
NLS_LANG=”Simplified Chinese_china”.ZHS16GBK
export NLS_LANG

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值