在信息系统中,数据库的备份是必不可少的一个步骤。
在Oracle数据中,数据的备份和还原在10g版本之前,一直使用的是IMPORT/EXPORT 的导入导出方式。最大的缺点就是速度慢、效率低。当这种方式用于企业级的项目中的时候,缺点就暴露出来了。
对于大数据的企业项目,数据的备份和还原因为采用IMPORT/EXPORT的方式而降低效率。
在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:
1、EXP和IMP是客户端工具程序,它们既可以在可以客户端使用,也可以在服务端使用。
2、EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。
3、IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件。
数据泵导出包括导出表,导出方案,导出表空间,导出数据库4种方式.
随着Oracle10g版本的更新,引入了一个新的机制:Data Pump,数据泵。是IMPDP/EXPDP的简称。
单从名称上看这种技术可描述为IMP/DMP的扩展,泵是将全部用户表占用数据库数据文件空间按照从大到小的排序展示出来,方便用户筛选出不需要进行备份的表。
在数据过G以及数据量较大的表有很好的作用,基于以上两点,数据泵工具势在必行,下面我们来看一组数据备份对比列表:
数据泵的使用意义重大,下面我们来看一组数据备份对比列表
使用方式 |
文件大小 |
导出时间 |
EXPORT |
639MB |
2分56秒 |
EXPDP |
639MB |
2分11秒 |
使用方式 |
文件大小 |
导出时间 |
EXPORT |
12.6g |
1小时9分 |
EXPDP |
12.6g |
2分56秒 |
相比较而言EXPDP方式在性能上有所提升,但是幅度没有那么大,毕竟数据备份文件只有639MB,数据量达到一定的规模之后,EXPDP在效率上的表现较EXP才会更有优势。下面使用一个企业级别的数据库作为一个参考。文件在数量级上面有所提升。
下面我们来看一下数据泵方式导入的速率如何
使用方式 |
文件大小 |
导入时间 |
IMPORT |
639M |
26分17秒 |
IMPDP |
639M |
6分29秒 |
相比较而言EXPORT方式在性能上有所提升,再来看一下数据量相对大一些的数据库导入的对比。
使用方式 |
文件大小 |
导入时间 |
IMPORT |
12.6g |
2小时04分 |
IMPDP |
12.6g |
18分35秒 |
从以上的对比中,明显看出,数据泵导入导出方式在效率上明显高出传统的数据导入导出方式。
1、创建表空间
Create tablespace 表空间名 Datafile 'D:\dump\XXX.dbf' size 1000M Autoextend on next 100M (Maxsize 5000M)
2、创建工作目录
Create directory 库名 as 'D:\dump';
3、创建用户角色并赋权限
Create 用户名 identified by '密码'; Grant read,write on directory Test_dir to 用户名
4、导库
Impdp 用户名/密码@库名 directory=XXX.dmp logfile=XXX.log
上述介绍了数据泵的工作原理及针对动车系统备份的性能对比,但数据泵的使用不如既有备份灵活,主要受限于以下几个因素:
1、ORACLE版本限制:数据泵是在10G版本中第一次推出的,故要使用数据泵方式备份,导入导出端的数据库版本需要都升级至10G.
2、备份兼容限制:EXPDP/IMPDP不能与既有的EXP/IMP备份文件互通,导入导出各成体系;
3、服务器端限制:数据泵使用ORACLE DIRECTORY路径,它会将导出的文件放在本地服务器上,如不指定目录,则默认存放在$Oracle_home/db_name/dpdump路径下面。
原文:http://blog.csdn.net/zc474235918/article/details/45273479