某客户数据库为10.2.0.4 RAC,运行在HP-UX平台上,如下所示:
某日,在使用exp进行本地全库逻辑导出时发现很慢,导出语句的主要语法如下:
exp full=y buffer=10M direct=y statistics=none file=.. log =..
可以看到客户对exp导出已经进行了优化,使用了直接路径导出(direct=y ),并且不导统计信息(statistics=none) ,但导出速度依然不可接受,一个晚上只导出了20G,这是极为不正常的。
数据库exp导出速度的主要影响因素如下:
存储的I/O性能。
exp的导出参数。
数据库资源的争用。
exp导出期间,操作系统资源和存储I/O正常,如下所示:
Mon Jul 8 20:27:00 EAT 2013
procs memory page faults cpu
r b w avm free re at pi po fr de sr in sy cs us sy id
6 1 0 3632805 6982185 0 0 1 0 0 0 0 13059 130731 4225 5 1 94
7 1 0 3840773 6969343 0 0 0 0 0 0 0 16492 228979 9570 15 1 84
4 1 0 3519137 6936935 0 0 0 0 0 0 0 13698 162008 6590 8 1 91
4 1 0 3967479 6893185 0 0 0 0 0 0 0 13660 175978 6911 9 1 90
5 1 0 4021955 6847447 0 0 0 0 0 0 0 14958 204016 8399 10 1 89
6 1 0 3916920 6795387 0 0 1 0 0 0 0 15059 234239 7520 11 1 88
7 1 0 4202389 6673342 0 0 0 0 0 0 0 16642 756681 39425 16 2 83
3 0 0 4274821 6657615 0 0 0 0 0 0 0 15079 189115 8325 11 1 88
3 1 0 3874784 6629859 0 0 0 0 0 0 0 14310 255546 17619 14 1 85
5 0 0 4084843 6605861 0 0 0 0 0 0 0 16176 163433 7805 12 1 87
检查了存储I/O性能和exp导出参数,确定没有问题。于是进一步检查数据库资源的争用情况。AWR报告的采样时间为为20:00至第二天8:00,即exp逻辑导出时间。如下所示:
exp导出期间,数据库的TOP 5等待事件极为不正常,几乎可以肯定不正常的等待事件才导致了exp导出缓慢,如下所示:
根据以上等待事件,可以看到SHARED POOL出现了严重问题,SQL的解析时间占DB TIME的88.56%。如下所示:
但发生故障时,系统每秒的解析数并不高,每秒解析才50个左右,如下所示:
进一步查看系统解析数最高的应用模块,发现全都是exp发起的,如下所示:
AWR报告查看到这里,就已经很明确了。接下来就查看exp最消耗资源的SQL语句,在这里主要查看最消耗CPU资源的exp语句,发现是查询SYS用户下的EXU9XML。如下所示:
而且每次执行需要读取58536个逻辑I/O。这是极为不正常的。如下所示:
而且逻辑读最高的对象为SYS用户下OPQTYPE$基表(占83.84%),这同样是极为不正常的,如下所示:
碰到这种情况,我们首先想到的是借助MOS工具,查询Oracle是否有相关BUG,果然在729248.1有相关解释,解决方法如下:
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> create index OPQTYPE_IDX1 on OPQTYPE$(TYPE,BITAND (FLAGS, 2));
SQL> execute dbms_stats.gather_table_stats ('SYS', 'OPQTYPE$');
按照MOS提供的解决方法,在OPQTYPE$表建立相关索引之后,exp导出速度变为正常。
总结:
这个案例给我们的启发是当发生故障时,需要多角度的考察多个环节,然后借助MOS工具从而快速地解决问题。
分享到:
相关推荐
Oracle 10g的`exp.exe`是Oracle Data Pump Export工具的一部分,用于从数据库中导出数据和对象。当你遇到“exp.exe已停止工作”的错误时,这通常意味着在尝试执行数据导出过程中遇到了问题。以下是一些可能导致该...
Oracle 11g R2 中新增的特性,使得 exp 无法导出空表,这是因为 11g R2 中有一个新特性,即当表无数据时,不分配 segment,以节省空间。这种情况下,使用 exp 命令无法导出空表。下面将介绍四种解决方法: 解决...
在本文中,我们将深入探讨Oracle10g客户端与服务端之间的兼容性问题,以及如何解决因版本不一致导致的导入导出问题。 标题提及的是"Oracle10g-10.1.0.2客户端的exp.exe文件"。`exp.exe`是Oracle数据库工具的一部分...
Oracle 10g版本引入了许多增强功能,其中就包括导入导出工具。这些工具对于数据迁移、备份和恢复等任务至关重要。以下是对给定文件中涉及的Oracle 10g导入导出工具的详细解释: 1. **exp(Export)**:这是Oracle...
Oracle 11G 导入导出(imp 和 exp)少表解决方法 Oracle 11G 是一个功能强大且复杂的数据库管理系统,它提供了多种方式来导入和导出数据。然而,在使用 Oracle 11G 时,用户可能会遇到一些问题,例如无法导出空表...
在给定的“oracle11g-exp”文件中,重点涉及了Oracle数据库的数据导出和导入工具,即EXP(Export)和IMP(Import)。这两个实用程序是数据库管理员和开发人员日常工作中不可或缺的部分,主要用于数据迁移、备份和...
在使用Oracle11g数据库时,用户可能会遇到在使用exp导出工具导出数据时无法导出空表的问题。空表是指那些没有数据行的表,这在Oracle数据库中比较常见。Oracle11g为提高性能和节省空间,默认情况下对空表不分配...
然而,Oracle11g在设计时默认对空表不分配segment,因此在使用exp导出数据库时,空表不会被包含在导出文件中。这对于完整备份和恢复所有表的场景来说,可能是一个问题。下面,我们将详细讨论如何处理这个问题,以及...
Oracle 10g 的数据泵技术为 DBA 和开发人员提供了一个强大的工具集,使得数据的导入导出变得更加灵活和高效。通过使用`expdp`和`impdp`命令,不仅可以提高数据迁移的速度,还能更好地控制数据的迁移范围和细节。此外...
本文将基于提供的文件信息“Oracle从11g导出到10g”,详细介绍这一过程中的关键技术点。 #### 二、Oracle版本兼容性的基本原则 1. **向下兼容**:Oracle数据库设计时通常会考虑到向下兼容性,即较高版本的数据可以...
2. **Data Pump导出与导入**:Oracle Data Pump是Oracle 10g及后续版本引入的一种高性能数据传输机制,它比传统的EXP/IMP(Export/Import)工具更为高效。Data Pump导出(expdp)和导入(impdp)使用并行处理来提高...
### Oracle11g与Oracle10g之间数据的导入导出 #### 一、Oracle的IMP/EXP特性 Oracle提供了IMP/EXP工具用于数据库的导入导出操作,这些工具可以帮助我们在不同版本的Oracle数据库之间迁移数据。根据Oracle的IMP/EXP...
- **使用Data Pump命令行工具"expdp"**:Oracle 10g及以后的版本推荐使用"expdp",它是"exp.exe"的增强版本,功能更强大且更易用。即使"exp.exe"缺失,也可以通过"expdp"完成数据导出,如`expdp username/password ...
### Oracle 11g 数据库导出还原到 Oracle 10g 的步骤详解 #### 一、导出Oracle 11g数据至DMP文件 在进行Oracle版本之间的迁移时,通常会采用导出(Export)的方式将源数据库的数据转换为可移植的格式,再通过导入...
Oracle 导入导出(imp,exp 本机或异机恢复) Oracle 的数据库导入导出(imp/exp)是数据库管理员经常使用的两个命令,它们分别用于数据库的导出和导入。本文档总结了 Oracle 数据库的完全导入导出、imp 和 exp 命令...
在Oracle 11g版本中,`imp.exe`和`exp.exe`是两个非常重要的工具,它们分别用于数据库导入和导出操作。这两个工具是Oracle Data Pump的一部分,提供高效的数据迁移和备份恢复功能。 一、imp.exe(数据库导入工具) ...
Oracle 11G 数据导出和导入过程中遇到的问题及解决方案 在Oracle数据库管理中,数据迁移是一项常见的任务,涉及从一个环境(如开发环境)向另一个环境(如生产环境)转移数据。然而,Oracle 11G引入的新特性可能会...
Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...
Oracle的导出程序Exp是数据库管理系统中的一个重要工具,它用于从数据库中提取数据并将其存储到操作系统文件中,便于备份、迁移或者恢复数据。Exp的使用涵盖了多种场景,包括整个数据库、特定用户的数据、单个或多个...