Oracle数据泵的应用
2019-12-22乌鲁木齐孙湘蓉
■ 乌鲁木齐 孙湘蓉
编者按:Oracle数据泵是Oracle提供的更新、更快、更灵活的数据导入、导出工具。本文通过对Oracle数据泵与原有IMP/EXP导入导出功能使用对比分析,着重讨论了基于Oracle数据泵的Oracle数据导入导出方法。
Oracle备份方式主要分为逻辑备份和物理备份。Oracle热备份与冷备份都属于物理备份。用数据泵导出数据备份方式则属于逻辑备份。Oracle数据库导入导出工具,可以使用exp/imp,但这是比较早期的工具。Oracle 10g开始后引入数据泵的方式。相对于传统的exp命令来说,执行效率更高。
数据泵使用
Oracle 10g开始引入数据泵,与传统exp/imp相比,数据泵可以作业分离,允许挂起和恢复导入导出任务,可以从失败点重新启动失败的作业,还可以控制导入导出的版本(version)。
在使用数据泵前,必须创建DIRECTORY并获得访问这么对象的权限,语句如下:
创建dump_scott目录
create directory dump_scott as'/home/oracle/dump/scott'
为dump_scott目录授权
Grant read,write on directory dump_scott toscott
1.expdp命令
(1)常用参数
content :导出数据还是只导出元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLY
directory:dumpfile和logfile的目录对象
dumpfile/logfile
exclude:不导出指定的对象(与这些对象有依赖的也不会导出)eg:exclude=table:"lik e'DBA_%'"
include:导出指定的对象,与exclude功能相反,用法相同
job_name:定 义导出作业的名称
attach:附加到已经在运行的现有作业,用于管理作业
full:默认值为n,full=y表示导出所有对象
nologfile:=y表示不写expdp的日志文件,默认值为n
tables/tablespaces:运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象
version:限制要导出的对象到指定版本的数据库
(2)举例
导出数据库所有对象
Expdp system/pwd@ip/ORACLE_SID dumpfile=dumpdir:db_%U.dmp logfile=dumpdir:db_exp_%U.log job_name=exp_db full=y
2.impdp命令
(1)常用参数
content :导入数据还是只导入元数据(表和索引创建语句等),选项有:ALL、DATA_ONLY、METADATA_ONLY
directory:dumpfile和logfile的目录对象
dumpfile/logfile
include:导入指定的对象,eg:exclude=table:"lik e'DBA_%'"
job_name:定义导入作业的名称
attach:附加到已经在运行的现有作业,用于管理作业
full:默认值为n,full=y表示导出所有对象
nologfile:=y表示不写expdp的日志文件,默认值为n
tables/tablespaces:运行导出指定表/表空间,包括与这个表/表空间有依赖关系的所有对象
table_exists_action:定义当表已经存在时执行的操作
(2)举例
导入数据库所有对象:
impdp system/pwd@ip/ORACLE_SID dumpfile=pumpdir:db_01.dmp logfile=pumpdir:db_imp_%U.log job_name=imp_db full=y
数据泵与传统导入导出方式对比分析
1.导入导出数据泵(expdp/impdp)是服务器端工具。所谓的服务器端工具,简单理解就是这样,你执行命令可以在服务器上,也可以在客户端做,但是命令其实是在Oracle数据库里建job,所以即使你的session断掉了,这个操作一样会继续,并最终完成。对于这个job,你还可以进入交互模式并加以控制。
导入导出工具(exp/imp)是客户端工具。所谓客户端工具,简单理解就是这样,你执行命令可以在服务器上,也可以在客户端做,不过实际上Oracle是通过这个建立起来的session来完成操作,一旦session终端,那么操作也会失败。
2.导入导出数据泵(expdp/impdp)是Oracle 10g的新特性,他的文件格式采用XML。他的操作速度要远远快于exp/imp。
3.导入导出数据泵的数据只能存储在本地服务器目录,Oracle需要你首先创建目录对象,并授予用户正确的读写权限。
4.导入导出数据泵导出文件取数据库字符集,而exp/imp工具生成文件取的字符集受客户端环境变量NLS_LANG影响。
Oracle数据泵在信息系统中的应用
笔者单位利用Oracle数据泵的特性成功解决了LIMS实验室信息管理系统因数据庞大造成数据备份还原经常失败的问题。LIMS系统从2007年运行至今,数据库中已存储大量的数据量。尤其是随着炼油厂色谱分析仪接入数量的增加,色谱仪自动分析结果传输数据量的增加,现有的Oracle(32位)数据库性能已不能满足现有业务应用需求,因此我们新搭建一套LIMS数据库系统,在操作系统Windows Server 2003(64位)上安装Oracle 10g(64位)。利 用Oracle 10g数据泵工具,成功建立了数据库的自动备份机制。将数据库备份时间缩短到20分钟,减小数据库压力,提高系统稳定性。