Oracle数据库的逻辑备份工具-exp、imp工具

Oracle中逻辑导出exp/导入Imp导入/导出是ORACLE幸存的最古老的两个命令行工具,通常认为exp\imp时一个很好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取等需求是使用起来简单、方便。但是不建议大数据量数据库使用exp\imp工具。

一、工具使用:

1.数据库导出:
在介绍工具使用之前,先说个注意事项,在Oracle11g之后新创建的表在没有插入数据时,是不会分配segment的,也就是说不会分配空间,而使用expdp导出时,这类空表就不会被导出,导致数据库结构不完整(此情况不包含原先有数据后来被清空的表)。因此为了不会遗漏数据,在导出时先对空表进行一次处理(手动分配空间):
1.通过user_tables查询那些表时没有数据的(注意:为了提高准确性,可以先对用户下的所有表进行一次表分析analysis table),然后通过下面语句直接生成手动分配segment的语句:

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; 

PS:当然以上语句会把原先有数据后被清空的表也查询出来,但为了一个一个排除麻烦,就直接再从新分配一次segment。
一般情况下不会导出全库,只是导出指定用户的数据。
(1)数据库服务器本地执行导出操作,oracle系统用户对dmp文件存放目录有读写权限:

[root@local ~]# su - oracle
[oracle@local ~]$ exp username/userpasswod file=/data/exp_dmp/full_username.dmp log=/data/exp_exp/full_username.log

file:存放导出的dmp文件的位置,与数据泵(expdp)不同,exp导出dmp文件需要指定全路径与dmp文件名。
log:与file类似,需要绝对路径。

(2)远程使用tns或者IP、端口号、实例名的一般链接方式远程链接数据库,导出文件会生成到本地,不会放到数据库服务上,但是要求本地PC或者远程的服务器有Oracle客户端,可以使用Oracle相关命令。

exp username/userpassword@192.168.1.10:1521/ORCL file=D:\exp_dmp\full_username.dmp log=D:\exp_dmp\full_username.log

注意:
1.导出时建议不要导出统计信息,在导入成功后手动手机统计信息。exp工具导出时指定不导出统计信息示例:

[oracle@local ~]$ exp username/userpasswod file=/data/exp_dmp/full_username.dmp log=/data/exp_exp/full_username.log statistics=none

2.导出时只导出库结构:

[oracle@local ~]$ exp username/userpasswod file=/data/exp_dmp/full_username.dmp log=/data/exp_exp/full_username.log statistics=none  rows=n

2.数据库导入:

数据库导入时可以有两种方式:
一是dmp在数据库服务器本地磁盘,本地导入:

imp username/userpassword file=/data/full_username.dmp log=/data/full_username.log full=y

二是dmp文件在本地,没有在数据库服务器磁盘上,远程导入:

imp username/userpassword@192.168.1.10:1521/ORCL file=D:\exp_dmp\full_username.dmp log=D:\exp_dmp\full_username.log full=y

注意:导入时需要加参数 full=y!

二、特殊要求的数据导出、导入:

1.导出用户与导入用户不同(导出用户为zhang,导入用户时sun):

imp username/userpassword file=/data/full_username.dmp log=/data/full_username.log full=y fromuser=zhang touser=sun

2.导出时指定每个dmp文件大小:

imp username/userpassword file=/data/full_username.dmp log=/data/full_username.log filesize=2G full=y 

3.导出时只导出表结构(元数据)或者表数据:

# 表结构(元数据)
imp username/userpassword file=/data/full_username_metadata.dmp log=/data/full_username_metadata.log rows=n

# 表数据
imp username/userpassword file=/data/full_username_metadata.dmp log=/data/full_username_metadata.log rows=y

其他可以参考exp与imp命令帮助文档进行操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Major_ZYH

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

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

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

打赏作者

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

抵扣说明:

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

余额充值