四时宝库

程序员的知识宝库

oracle性能调优-expdp导出加速(oracle expdp导出)

近期很多同学咨询我,我们每天需要通过expdp逻辑备份一些核心表。expdp备份的速度很慢,从数据库层面有没有一些优化的方法。下面我来仔细梳理一下如何加快expdp的导出速度。

1、expdp导出过程中使用的是数据库SGA的streams pool。因此要加快expdp的导出速度,在数据库层面首先要关闭streams pool的自动内存管理。 streams_pool_size默认值只有256M。内存资源充足,并且备份频繁的生产库,推荐设置成5G。一般设置成1-2G也可以。设置方法如下:

alter system set streams_pool_size=2G scope=both sid='*';

该参数可以动态调整立即生效。


2、导出加并行

导出的时候可以设置expdp并行度parallel=4,需要同时配合设置dumpfile=expdp_%U.dmp设置文件导出文件的序列。

dumpfile=expdp_%U.dmp ---%U默认从 01 生成到 99 ,

compression=all

parallel=4

3、导出的时候排除统计信息和索引。

exclude=statistics,indexes

4、导出避免CLOB字段。

如果导出的对象里面包含有CLOB字段,则CLOB字段的导出会非常慢,同时CLOB字段导出的是没法压缩的,非常占用空间。


综上所述,给大家一个完整expdp导出配置文件案例案例:

3.1 创建directory和赋予权限:

create directory dmpdir as '/home/oracle/dump';

grant read,write on directory dmpdir to scott;

3.2 到/home/oracle/dump目录编辑expdp的parfile

vi expdp.par

userid='scott/tigger' ---配置导出目标用户和密码

dumpfile=expdp_%U.dmp ---配置导出的文件

compression=all ---启用压缩

parallel=4 ---开启4个并行

cluster=N ---RAC环境只在当前节点导出

directory=dmpdir ---配置数据库的directory

exclude=statistics,indexes ---导出排除统计信息和索引

logfile=expdp.log ---导出过程的日志记录

3.3 执行导出

nohup expdp parfile=expdp.par &

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接