Oracle数据库导出、导入dmp文件

17 篇文章 1 订阅

目标

实现Oracle数据库备份,导出、导入dmp文件。这里Oracle数据库源和目标库都是相同的版本。

exp/imp方式

这种方式可以在客户端或服务端机器上执行,受网速影响,速度相对较慢。

  • 导出
    export NLS_LANG=’AMERICAN_AMERICA.AL32UTF8’ #当存在exp-00091报错时,需要此命令设定本地字符集与数据库字符集一致。
    exp olduser/password@10.0.1.1/orcl owner=olduser rows=y indexes=n compress=y file=exp.dmp log=exp.log

  • 导入
    imp newuser/password@10.0.1.2/orcl file=exp.dmp log=imp.log fromuser=olduser touser=newuser ignore=y

以上,为“指定用户”模式,exp/imp还支持全库模式(full=y)、指定表模式(tables=(table1, table2),可通过query=\” where filed1 like ‘00%’\”指定表中的记录范围)。
当导出时,compress=y对dmp文件进行压缩,以减小文件大小;若采用全库模式,则不需要指定owner、tables等参数,且必须为dba权限才行。
当导入时,若目标库已经存在表,则可能会报错,导致导入中断,此时可通过ignore=y来忽略错误信息,并继续。

expdp/impdp数据泵方式

这种方式是完全在服务端进行的操作,因为无网络开销,所以运行速度是最快的。导出完毕后,将dmp文件从服务端下载下来即可。

  • 导出
    expdp olduser/password@10.0.1.1/orcl directory=DATA_PUMP_DIR dumpfile=expdb.dmp logfile=expdb.log SCHEMAS=olduser
    其中,directory=DATA_PUMP_DIR,表示导出到10.0.1.1/orcl数据库的DATA_PUMP_DIR目录下;SCHEMAS=olduser,指定了导出的是olduser用户下的数据对象。

  • 导入
    impdp newuser/password@10.0.1.2/orcl directory=DATA_PUMP_DIR dumpfile=expdb.dmp EXCLUDE=USER
    其中,directory=DATA_PUMP_DIR,表示从10.0.1.2/orcl 数据库的DATA_PUMP_DIR 目录下,读取文件名为expdb.dmp的dmp文件。
    在导入前,需要将expdb.dmp文件从10.0.1.1复制到 10.0.1.2的指定目录下。

DATA_PUMP_DIR目录,是通过如下ddl语句创建的:

create or replace directory DATA_PUMP_DIR  as '/home/oracle/dpdump/';

相关内容

  • 关于scp命令
    若希望在服务器之间复制文件,可通过scp命令
    例如:
scp -P22 oracle@10.0.1.1:/oracle/admin/olduser/dpdump/expdb.dmp  /home/oracle/dbbackup/
  • 关于exp-00091错误
    出现EXP-00091之后,我们采用的解决方案如下:
    首先,查看数据库中的NLS_CHARACTERSET的值;
    然后,根据第一步查出来的NLS_CHARACTERSET(即ZHS16GBK)来设定
    windows环境:cmd > set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    linux环境:Shell > export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
--通过如下SQL可查询数据库字符集:
select userenv('language') from dual;
--如:SIMPLIFIED CHINESE_CHINA.AL32UTF8

select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
PARAMETER          VALUE 
-----------------  ----------
NLS_CHARACTERSET   ZHS16GBK 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pierre_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值