`
wlbbswl
  • 浏览: 172207 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Oracle数据库 Exp/Imp工具性能调优【转】

 
阅读更多
Oracle Exp/Imp工具是一个操作简单、方便灵活的备份恢复和数据迁移工具,它可以实施全库级、用户级、表级的数据备份和恢复。对于数据量在G级或G级以内,强调高可用性,可以容忍少量数据丢失的数据库系统,Exp/Imp是普遍使用的逻辑备份方式。目前现网很多生产系统均使用Exp/Imp进行备份恢复。数据量达到G级以后,备份恢复的时间明显拉长了,有没有方法能够有效提高Exp/Imp的速度呢?答案是肯定的,某些方法还可以成倍的提高速度,本文就从Exp、Imp两个工具分别探讨优化备份恢复性能的方法。

AD:



一、Exp调优

1.使用DIRECT和RECORDLENGTH选项

DIRECT参数定义了导出是使用直接路径方式(DIRECT=Y),还是常规路径方式(DIRECT=N)。常规路径导出使用SQL SELECT语句从表中抽取数据,直接路径导出则是将数据直接从磁盘读到PGA再原样写入导出文件,从而避免了SQL命令处理层的数据转换过程,大大提高了导出效率。在数据量大的情况下,直接路径导出的效率优势更为明显,可比常规方法速度提高三倍之多。

和DIRECT=Y配合使用的是RECORDLENGTH参数,它定义了Export I/O缓冲的大小,作用类似于常规路径导出使用的BUFFER参数。建议设置RECORDLENGTH参数为最大I/O缓冲,即65535(64kb)。其用法如下:

exp userid=system/manager full=y direct=y recordlength=65535 file=exp_full.dmp log=exp_full.log

直接路径导出根据Oracle版本不同,有一些使用限制。比较重要的限制有,8i及以下版本不支持导出客户端和数据库的字符集转换,因此导出前必须保证NLS_LANG设置正确;8.1.5及以下版本不支持导出含LOBs对象的表;不能使用QUERY参数等。

2.使用管道技术

管道是从一个程序进程向另一个程序进程单向传送信息的技术。通常,管道把一个进程的输出传给另一进程作为输入。如果导出的数据量很大,可以利用管道直接生成最终的压缩文件,所耗费的时间和不压缩直接导出的时间相当。这样一来,不仅能够解决磁盘空间不足的问题,而且省去了单独压缩文件的时间;如果需要传输导出文件,还可以减少网络传输的时间。比如,一个10G的文件单独压缩可能需要半小时以上的时间。虽然管道技术不能够直接缩短Exp/Imp本身的时间,但节省出来的压缩时间非常可观。管道和Exp结合的具体使用方法如下:

导出数据示例:

% mknod /tmp/exp_pipe p # Make the pipe
% compress < /tmp/exp_pipe > export.dmp.Z & # Background compress
% exp file=/tmp/exp_pipe # Export to the pipe

二、Imp调优

Oracle Import进程需要花比Export进程数倍的时间将数据导入数据库。某些关键时刻,导入是为了应对数据库的紧急故障恢复。为了减少宕机时间,加快导入速度显得至关重要。没有特效办法加速一个大数据量的导入,但我们可以做一些适当的设定以减少整个导入时间。

1.使用管道技术

前面已经说明了Exp时如何使用管道,在导入时管道的作用是相同,不仅能够解决磁盘空间不足的问题,而且省去了单独解压缩文件的时间。在大数据量导入导出的时候,推荐一定要使用管道。

导入数据示例:

% mknod /tmp/imp_pipe p # Make the pipe
% uncompress < export.dmp.Z > /tmp/imp_pipe & # Background uncompress
% imp file=/tmp/imp_pipe # Import from the pipe

2.避免I/O竞争

Import是一个I/O密集的操作,避免I/O竞争可以加快导入速度。如果可能,不要在系统高峰的时间导入数据,不要在导入数据时运行job等可能竞争系统资源的操作。

3.增加排序区

Oracle Import进程先导入数据再创建索引,不论INDEXES值设为YES或者NO,主键的索引是一定会创建的。创建索引的时候需要用到排序区,在内存大小不足的时候,使用临时表空间进行磁盘排序,由于磁盘排序效率和内存排序效率相差好几个数量级。增加排序区可以大大提高创建索引的效率,从而加快导入速度。

8i及其以下版本:导入数据前增加数据库的sort_area_size大小,可设为正常值的5-10倍。但这个值设定会影响到所有会话,设的过高有可能导致内存不足出现paging, swapping现象。更为稳妥的方法是,对于大表和索引特别多的表,只导数据不导索引。导完数据后,创建一个会话,设定当前会话的sort_area_size一个足够大的值,再手工创建索引。

9i:在workarea_size_policy=AUTO的情况下,所有会话的UGA共用pga_aggregate_target定义的内存,不必单独设定sort_area_size。导入数据前增加pga_aggregate_target大小,如果机器内存够大,可从通常设定的500M提高到1-2G。pga_aggregate_target大小可以动态调整,导入完成后可在线调回原值。

4.调整BUFFER选项

Imp参数BUFFER定义了每一次读取导出文件的数据量,设的越大,就越减少Import进程读取数据的次数,从而提高导入效率。BUFFER的大小取决于系统应用、数据库规模,通常来说,设为百兆就足够了。其用法如下:

imp user2/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 commit=y feedback=10000 buffer=10240000

5.使用COMMIT=Y选项

COMMIT=Y表示每个数据缓冲满了之后提交一次,而不是导完一张表提交一次。这样会大大减少对系统回滚段等资源的消耗,对顺利完成导入是有益的。

6.使用INDEXES=N选项

前面谈到增加排序区时,说明Imp进程会先导入数据再创建索引。导入过程中建立用户定义的索引,特别是表上有多个索引或者数据表特别庞大时,需要耗费大量时间。某些情况下,需要以最快的时间导入数据,而索引允许后建,我们就可以使用INDEXES=N 只导入数据不创建索引,从而加快导入速度。

我们可以用INDEXFILE选项生成创建索引的DLL脚本,再手工创建索引。我们也可以用如下的方法导入两次,第一次导入数据,第二次导入索引。其用法如下:

imp user2/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 commit=y feedback=10000 buffer=10240000 ignore=y rows=y indexes=n
imp user2/pwd fromuser=user1 touser=user2 file=/tmp/imp_index_pipe1 commit=y feedback=10000 buffer=10240000 ignore=y rows=n indexes=y

7.增加LARGE_POOL_SIZE

如果在init.ora中配置了MTS_SERVICE,MTS_DISPATCHERS等参数,tnsnames.ora中又没有(SERVER=DEDICATED)的配置,那么数据库就使用了共享服务器模式。在MTS模式下,Exp/Imp操作会用到LARGE_POOL,建议调整LARGE_POOL_SIZE到150M。

检查数据库是否在MTS模式下:

SQL>select distinct server from v$session;

如果返回值出现none或shared,说明启用了MTS。

分享到:
评论

相关推荐

    exp/imp2导入导出

    随着 Oracle 数据库版本的发展,Oracle 推出了新的导入导出工具 `expdp` 和 `impdp` 来替代旧版的 `exp` 和 `imp`,这些新工具提供了更好的性能和更多的特性。 1. **expdp (Export Data Pump)** - **功能**:`...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    标题中提到的“ORACLE DBA工作笔记 运维数据迁移与性能调优”揭示了这本书籍主要围绕着Oracle数据库管理员(DBA)在日常工作中经常需要进行的两项关键任务:数据迁移和性能调优。作为一名Oracle DBA,不仅要负责...

    Oracle数据库学习指南

    34.提高ORACLE数据库系统import性能 35.外部联接的用法 36.性能调试的一般问题 37.优化 38.优化调整Oracle 8i数据库(从操作系统) 39.在Internet上运作公司是一项艰苦的任务--关键任务 40.在oracle中...

    imp调优技巧

    imp 调优技巧是 Oracle 数据库管理员和开发人员常用的技术,以提高导出和导入数据的效率。该技术主要涉及到 exp 和 imp 两个命令的优化。 一、Exp 调优 Exp 调优是指在使用 exp 命令导出数据时,如何提高导出速度...

    ORACLE 数据库优化指南

    《ORACLE 数据库优化指南》是一份详尽的文档,旨在帮助用户提升ORACLE数据库的运行效率和性能。本文将围绕课程大纲中的各个主题进行深入探讨。 首先,Oracle9i Performance Tuning的纵览介绍了数据库优化的基本概念...

    Oracle数据库操作实例讲解定义.pdf

    在本文中,我们将深入探讨Oracle数据库的操作实例,包括系统配置、性能调优以及备份与恢复策略。 首先,数据库系统配置是Oracle管理的关键环节。初始化参数配置决定了数据库的运行模式和性能。在ORACLE 9i和10g中,...

    Oracle数据库巧迁移.pdf

    - **迁移工具选择**:根据实际情况选择合适的迁移工具,如Data Pump或传统的exp/imp工具。 - **版本兼容性**:确保目标数据库版本兼容现有应用。 ### 数据库迁移的注意事项 - **避免数据丢失**:在迁移过程中采取...

    Oracle数据库迁移指南[归纳].pdf

    Oracle数据库迁移有很多种方式,其中最常用的是Exp/Imp工具。Exp用于导出数据库对象,而Imp用于导入到新环境中。这种方式简单易行,但可能导致长时间的停机,因为数据导出和导入都需要时间。此外,使用可传输表空间...

    Oracle客户端工具

    Oracle客户端工具是数据库管理员、开发人员以及日常用户与Oracle数据库服务器进行交互的重要组成部分。这些工具提供了多种功能,包括数据查询、数据库管理、应用程序开发以及性能优化等。在Oracle的生态系统中,有几...

    Oracle数据库的创建与恢复的步骤

    Oracle数据库是企业级广泛应用的关系型数据库管理系统,其稳定性和可靠性深受业界信赖。...此外,良好的数据库管理和维护习惯,如定期备份、监控和性能调优,也是确保Oracle数据库高效运行的关键。

    Oracle数据库1

    数据移动是Oracle数据库管理的重要方面,可以通过SQL*Loader、EXP/IMP、EXPDP/IMPDP工具进行数据导入导出。此外,外部表提供了一种从非Oracle格式数据源读取数据的方法。 备份和恢复策略是数据库管理的关键。Oracle...

    基于Oracle数据库升级方法的研究.pdf

    在Oracle数据库升级过程中,通常采用自带的工具EXP(数据导出)和IMP(数据导入)进行全库导入导出,确保数据完整升级。具体步骤包括: 1. **备份**:首先,进行全面的数据备份,这是任何数据库操作的基础,以防...

    oracle11gR2的数据导入到oracle10gR2

    首先,"exp"和"imp"是Oracle数据库提供的两个实用工具,用于数据的导出(export)和导入(import)。在Oracle 10g R2和11g R2版本中,这两个工具仍然是数据库管理员进行数据迁移的主要手段之一。 1. **exp工具**:...

    Oracle DB Migration 方式比較

    Oracle数据库迁移是数据库管理员面临的重要任务,特别是在系统升级、硬件替换或平台转换时。本文将对比几种Oracle DB Migration的方法:exp/imp、RMAN Cross-Platform以及DBUA(Database Upgrade Assistant),并...

    ORACLE10数据库基础教程

    - **逻辑备份**:使用EXP/IMP工具进行数据导出导入。 - **闪回技术**:如闪回查询、闪回事务、闪回数据库,用于快速恢复错误操作。 7. **性能优化** - **SQL调优**:分析和优化查询执行计划,使用EXPLAIN PLAN,...

    Oracle大学 10g OCA、OCP原厂培训(原版PTT)

    4. **备份与恢复**:介绍Oracle的备份策略,如RMAN(Recovery Manager)的使用,逻辑备份(例如使用EXP/IMP工具),以及如何进行数据恢复操作,包括介质恢复和时间点恢复。 5. **安全性**:涵盖Oracle数据库的安全...

    oracle9i 数据库设计指引全集

    理解RMAN(恢复管理器)和数据泵(Exp/Imp)工具,以及如何进行故障恢复和数据迁移,对于数据库的高可用性至关重要。 8. **并发控制与事务管理**:Oracle 9i使用多版本并发控制(MVCC)来处理并发操作,保证数据的...

    Oracle专家高级编程

    在数据库管理方面,需要掌握的关键知识点包括但不限于:数据字典视图的使用、数据表的创建和管理、索引的创建及优化、数据完整性的维护以及数据导入导出工具(如exp/imp或Data Pump)的使用。这些操作对于确保数据库...

    ORACLE8.1.7数据库升级11.2g解决方案.pdf

    Oracle 提供了多种工具,如 EXPDP/IMPDP(Data Pump)或传统的 EXP/IMP。根据数据量和时间要求,选择合适的方法。在导出前,可能需要对旧数据库进行预处理,如整理表空间,以提高导入效率。导入时,注意保持数据的...

    oraclemigration(迁移指南)

    ### Oracle数据库迁移指南 #### Oracle数据库迁移基础知识 在着手进行Oracle数据库迁移之前,理解其基础知识至关重要。本节将概述Oracle数据库迁移的一些基本概念和技术。 **初学者的数据迁移问题** 对于初次...

Global site tag (gtag.js) - Google Analytics