`
itspace
  • 浏览: 978881 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

记一次exp hang故障处理

阅读更多
今天早上上班,刚刚上QQ,就有客户发来了离线消息。
引用
*** 8:26:38
   ora9i  8585370 33161666   0 02:00:00      -  0:00 exp '/ as sysdba' full=y compress=n consistent=y feedback=100000 direct=y file=/bak9i/backup/logical/full01.dmp,/bak9i/backup/logical/full02.dmp,/bak9i/backup/logical/full03.dmp,/bak9i/backup/logical/full04.dmp,/bak9i/backup/logical/full05.dmp,/bak9i/backup/logical/full06.dmp,/bak9i/backup/logical/full07.dmp,/bak9i/backup/logical/full08.dmp,/bak9i/backup/logical/full09.dmp,/bak9i/backup/logical/full10.dmp,/bak9i/backup/logical/full11.dmp,/bak9i/backup/logical/full12.dmp,/bak9i/backup/logical/full13.dmp,/bak9i/backup/logical/full14.dmp,/bak9i/backup/logical/full15.dmp,/bak9i/backup/logical/full16.dmp,/bak9i/backup/logical/full17.dmp,/bak9i/backup/logical/full18.dmp,/bak9i/backup/logical/full19.dmp,/bak9i/backup/logical/full20.dmp,/bak9i/backup/logical/full21.dmp,/bak9i/backup/logical/full22.dmp,/bak9i/backup/logical/full23.dmp,/bak9i/backup/logical/full24.dmp buffer=52428800 filesize=2000M log=/bak9i/backup/logical/full.log
   ora9i 22937640 28180504   0   Mar 14      -  0:00 exp '/ as sysdba' full=y compress=n consistent=y feedback=100000 direct=y file=/bak9i/backup/logical/full01.dmp,/bak9i/backup/logical/full02.dmp,/bak9i/backup/logical/full03.dmp,/bak9i/backup/logical/full04.dmp,/bak9i/backup/logical/full05.dmp,/bak9i/backup/logical/full06.dmp,/bak9i/backup/logical/full07.dmp,/bak9i/backup/logical/full08.dmp,/bak9i/backup/logical/full09.dmp,/bak9i/backup/logical/full10.dmp,/bak9i/backup/logical/full11.dmp,/bak9i/backup/logical/full12.dmp,/bak9i/backup/logical/full13.dmp,/bak9i/backup/logical/full14.dmp,/bak9i/backup/logical/full15.dmp,/bak9i/backup/logical/full16.dmp,/bak9i/backup/logical/full17.dmp,/bak9i/backup/logical/full18.dmp,/bak9i/backup/logical/full19.dmp,/bak9i/backup/logical/full20.dmp,/bak9i/backup/logical/full21.dmp,/bak9i/backup/logical/full22.dmp,/bak9i/backup/logical/full23.dmp,/bak9i/backup/logical/full24.dmp buffer=52428800 filesize=2000M log=/bak9i/backup/logical/full.log 
*** 8:26:44
看来我只有kill掉了
*** 8:28:55
ora9i@p750:/ora9i/admin/ytyy/bdump$ ps -ef | grep exp
   ora9i  8585370 33161666   0 02:00:00      -  0:00 exp '/ as sysdba' full=y compress=n consistent=y feedback=100000 direct=y file=/bak9i/backup/logical/full01.dmp,/bak9i/backup/logical/full02.dmp,/bak9i/backup/logical/full03.dmp,/bak9i/backup/logical/full04.dmp,/bak9i/backup/logical/full05.dmp,/bak9i/backup/logical/full06.dmp,/bak9i/backup/logical/full07.dmp,/bak9i/backup/logical/full08.dmp,/bak9i/backup/logical/full09.dmp,/bak9i/backup/logical/full10.dmp,/bak9i/backup/logical/full11.dmp,/bak9i/backup/logical/full12.dmp,/bak9i/backup/logical/full13.dmp,/bak9i/backup/logical/full14.dmp,/bak9i/backup/logical/full15.dmp,/bak9i/backup/logical/full16.dmp,/bak9i/backup/logical/full17.dmp,/bak9i/backup/logical/full18.dmp,/bak9i/backup/logical/full19.dmp,/bak9i/backup/logical/full20.dmp,/bak9i/backup/logical/full21.dmp,/bak9i/backup/logical/full22.dmp,/bak9i/backup/logical/full23.dmp,/bak9i/backup/logical/full24.dmp buffer=52428800 filesize=2000M log=/bak9i/backup/logical/full.log
   ora9i 22937640 28180504   0   Mar 14      -  0:00 exp '/ as sysdba' full=y compress=n consistent=y feedback=100000 direct=y file=/bak9i/backup/logical/full01.dmp,/bak9i/backup/logical/full02.dmp,/bak9i/backup/logical/full03.dmp,/bak9i/backup/logical/full04.dmp,/bak9i/backup/logical/full05.dmp,/bak9i/backup/logical/full06.dmp,/bak9i/backup/logical/full07.dmp,/bak9i/backup/logical/full08.dmp,/bak9i/backup/logical/full09.dmp,/bak9i/backup/logical/full10.dmp,/bak9i/backup/logical/full11.dmp,/bak9i/backup/logical/full12.dmp,/bak9i/backup/logical/full13.dmp,/bak9i/backup/logical/full14.dmp,/bak9i/backup/logical/full15.dmp,/bak9i/backup/logical/full16.dmp,/bak9i/backup/logical/full17.dmp,/bak9i/backup/logical/full18.dmp,/bak9i/backup/logical/full19.dmp,/bak9i/backup/logical/full20.dmp,/bak9i/backup/logical/full21.dmp,/bak9i/backup/logical/full22.dmp,/bak9i/backup/logical/full23.dmp,/bak9i/backup/logical/full24.dmp buffer=52428800 filesize=2000M log=/bak9i/backup/logical/full.log
   ora9i 31916520 13173082   0 08:25:29  pts/0  0:00 grep exp
ora9i@p750:/ora9i/admin/ytyy/bdump$ kill -9 8585370
ora9i@p750:/ora9i/admin/ytyy/bdump$ kill -9 22937640
ora9i@p750:/ora9i/admin/ytyy/bdump$ ps -ef | grep exp
   ora9i 24445036 13173082   0 08:27:58  pts/0  0:00 grep exp 
*** 8:29:15
9i上逻辑导出不成功

于是我让他查看/bak9i/backup/logical/full.log看看是什么内容,日志显示
引用
. exporting database links
. exporting sequence numbers
. exporting directory aliases
. exporting context namespaces
. exporting foreign function library names
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions
. exporting system procedural objects and actions
. exporting pre-schema procedural objects and actions
. exporting cluster definitions

也就意味着Oracle 9208在exp cluster定义的时候hang住了。我感觉这个问题,比较怪异,于是上metalink搜寻了一番,只有Bug 5035017: EXPORT HANGS ON CLUSTER DEFINITIONS - ORA-4021和此案例比较类似,此bug是发生在Oracle 10.1.0.4.0版本上,但目前的数据库是Oracle 9208且运行在AIX 6106之上。而且此bug exp错误时还伴随着ORA-4021产生。
引用
EXP-56: ORACLE error 4021 encountered
ORA-4021: timeout occurred while waiting to lock object
ORA-6512: at "SYS.DBMS_METADATA", line 1511
ORA-6512: at "SYS.DBMS_METADATA", line 1548
ORA-6512: at "SYS.DBMS_METADATA", line 1864
ORA-6512: at "SYS.DBMS_METADATA", line 3707
ORA-6512: at "SYS.DBMS_METADATA", line 3689
ORA-6512: at line 1
EXP-0: Export terminated unsuccessfully

这和本案例中有较大不同,但据bug描述,此问题和xml组件有一定的关系。于是进一步查看其生产库xml组件状态,果然处于invliad状态。
引用
Oracle9i Catalog Views 9.2.0.8.0 VALID
Oracle9i Packages and Types 9.2.0.8.0 VALID
Oracle Workspace Manager 9.2.0.1.0 VALID
JServer JAVA Virtual Machine 9.2.0.8.0 VALID
Oracle XDK for Java 9.2.0.10.0 VALID
Oracle9i Java Packages 9.2.0.8.0 VALID
Oracle interMedia 9.2.0.8.0 VALID
Spatial 9.2.0.8.0 VALID
Oracle Text 9.2.0.8.0 VALID
Oracle XML Database 9.2.0.8.0 INVALID
Oracle Ultra Search 9.2.0.8.0 VALID
Oracle Data Mining 9.2.0.8.0 VALID
OLAP Analytic Workspace 9.2.0.8.0 UPGRADED
Oracle OLAP API 9.2.0.8.0 UPGRADED
OLAP Catalog 9.2.0.8.0 VALID

但这只能怀疑exp hang和xml有关。于是我又再次让客户运行exp脚本,观察v$session_wait等待事件出现library cache pin 事件。进一步细分查询
select * from v$lock where block=1;为空
引用
select sid, event, p1raw, seconds_in_wait, wait_time  from v$session where event='library cache pin';
333 library cache pin 07000003DD14C3A0 26530 0
387 library cache pin 07000003B8E14D60 255 0
646 library cache pin 07000003DD14C3A0 35987 0

进一步查询x$kglob,查看其等待对象,出现关键字XM
引用
col object for a200
SELECT kglnaown AS owner, kglnaobj as Object,kglhdadr
FROM sys.x$kglob
WHERE kglhdadr='07000003DD14C3A0';
1 SELECT VALUE(KU$) XM 07000003DD14C3A0

是以至此,基本上可以判断此问题和xml组件失效有关系。于是询问客户是否可以将此组件删除,确定之后执行以下脚本:
引用
SQL> set echo on
SQL> set echo on
SQL> spool xdb_remove.log
SQL> @?/rdbms/admin/catnoqm.sql
SQL> Rem
SQL> Rem $Header: catnoqm.sql 03-jan-2002.17:32:31 spannala Exp $
SQL> Rem
SQL> Rem catnoqm.sql
SQL> Rem
SQL> Rem Copyright (c) 2001, 2002, Oracle Corporation.  All rights reserved.
SQL> Rem
SQL> Rem    NAME
SQL> Rem         catnoqm.sql - CATalog script for removing (NO) XDB
SQL> Rem
SQL> Rem    DESCRIPTION
SQL> Rem         this script drops the metadata created for SQL XML management
SQL> Rem         This scirpt must be invoked as sys. It is to be invoked as
SQL> Rem
SQL> Rem          @@catnoqm
SQL> Rem    NOTES
SQL> Rem
SQL> Rem    MODIFIED   (MM/DD/YY)
SQL> Rem    spannala    01/03/02 - tables are not handled by xdb
SQL> Rem    spannala    01/02/02 - registry
SQL> Rem    spannala    12/20/01 - passing in the resource tablespace name
SQL> Rem    tsingh      11/17/01 - remove connection string
SQL> Rem    tsingh      06/30/01 - XDB: XML Database merge
SQL> Rem    amanikut    02/13/01 - Creation
SQL> Rem
SQL> Rem
SQL>
SQL> execute dbms_registry.removing('XDB');

PL/SQL procedure successfully completed.

SQL> drop user xdb cascade;

但是在drop user xdb cascade时又出现hang住现象。继续查询v$session_wait,出现
library cache lock等待事件。
引用
SQL> select sid,event from v$session_wait where event not like '%SQL%';

       SID EVENT
---------- ----------------------------------------------------------------
         1 pmon timer
         2 rdbms ipc message
         3 rdbms ipc message
         4 rdbms ipc message
         5 rdbms ipc message
        10 rdbms ipc message
        12 rdbms ipc message
        11 rdbms ipc message
         9 rdbms ipc message
         6 rdbms ipc message
         7 rdbms ipc message

       SID EVENT
---------- ----------------------------------------------------------------
        21 db file sequential read
       392 db file sequential read
         8 smon timer
       652 library cache lock
       122 jobq slave wait
       462 jobq slave wait
       591 jobq slave wait
       327 jobq slave wait
       457 jobq slave wait

20 rows selected.

接下来就轮到解决library cache lock,具体过程看日志了。
引用
SQL> select spid from v$process where addr =(select paddr from v$session where sid=652);

SPID
------------
15925756

SQL> !ps -ef|grep 15925756
   ora9i 41615506 27918796   0 10:19:13  pts/0  0:00 grep 15925756
   ora9i 15925756 43254130   0 10:15:22      -  0:00 oracleytyy (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

SQL> select b.sid,a.user_name,a.kglnaobj
from x$kgllk a , v$session b
where a.kgllkhd  2    3  l in
(select p1raw from v$session_wait
where wait_time=0 and event = 'library ca  4    5  che lock')
and a.kgllkmod <> 0
and b.saddr=a.kgllkuse  6    7  ;

       SID USER_NAME
---------- ------------------------------
KGLNAOBJ
------------------------------------------------------------
        21 SYS
XDB$RESOURCE

       392 YTYY
XDB$RESOURCE


SQL> select sid,serial# from v$session where sid in (21,392);

       SID    SERIAL#
---------- ----------
        21      31951
       392       5343

SQL> select spid from v$process where addr in (select paddr from v$session where sid in (21,392));

SPID
------------
18547020
23200210

SQL> !ps -ef|grep 18547020
   ora9i 38600852 27918796   0 10:23:02  pts/0  0:00 grep 18547020
   ora9i 18547020        1   0   Mar 14      -  0:01 oracleytyy (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

SQL> !ps -ef|grep 23200210
   ora9i 23200210        1   0 09:06:05      -  0:00 oracleytyy (LOCAL=NO)
   ora9i 42140070 27918796   0 10:23:13  pts/0  0:00 grep 23200210

SQL> alter system kill session '21,31951';

alter system kill session '21,31951'
*
ERROR at line 1:
ORA-00031: session marked for kill


SQL> SQL> alter system kill session '392,5343';
 
alter system kill session '392,5343'
*
ERROR at line 1:
ORA-00031: session marked for kill


SQL> !ps -ef|grep 18547020
   ora9i 18547020        1   0   Mar 14      -  0:01 oracleytyy (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
   ora9i 20709834 27918796   0 10:26:22  pts/0  0:00 grep 18547020

SQL> !kill -9 18547020

SQL> !ps -ef|grep 23200210
   ora9i 18547022 27918796   0 10:26:48  pts/0  0:00 grep 23200210
   ora9i 23200210        1   0 09:06:05      -  0:00 oracleytyy (LOCAL=NO)

SQL> !kill -9 23200210

SQL> select spid from v$process where addr in (select paddr from v$session where sid in (21,392));

SPID
------------
18547020
23200210

SQL> select b.sid,a.user_name,a.kglnaobj
from x$kgllk a , v$session b
where a.kgllkhd  2    3  l in
(select p1raw from v$session_wait
where wait_time=0 and event = 'library cache lock')
and a.kgllkmod <> 0
and b.saddr=a.kgllkuse  4    5    6    7  ;

no rows selected


解决了library cache lock,xdb用户也顺利删除。最终exp导出正常。

附:
9201客户端导9208数据库时出现
引用
Table ODM_PMML_DTD will be exported in conventional path.
. . exporting table                   ODM_PMML_DTD
EXP-00003: no storage definition found for segment(7, 267)
. . exporting table             ODM_P_I_ITEM_RULES






分享到:
评论

相关推荐

    MTK hang机抓取Log方法

    综上所述,针对MTK Hang机问题的处理,不仅需要准确识别Hang机类型,还应遵循一套标准化的操作流程,确保在不破坏现场的前提下,有效抓取必要的Log信息,为后续的故障排查与修复提供依据。通过细致记录Hang机场景,...

    记一次tp5.0.24 getshell1

    "记一次tp5.0.24 getshell" 在这篇文章中,我们将探讨一个关于TP5.0.24版本的getshell漏洞的记录。TP5.0.24是ThinkPHP框架的其中一个版本,该框架是一种流行的PHP开发框架。 首先,我们需要了解TP5.0.24的特点。TP...

    oracle9i的EXP和IMP

    Oracle 9i数据库系统是Oracle公司的一个重要版本,它提供了许多功能来支持数据管理,其中包括数据导入(IMP)和导出(EXP)工具。这两个工具是数据库管理员进行数据迁移、备份和恢复操作的关键组件。 **EXP(Export...

    oracle 10g exp.exe

    Oracle 10g的`exp.exe`是Oracle Data Pump Export工具的一部分,用于从数据库中导出数据和对象。当你遇到“exp.exe已停止工作”的错误时,这通常意味着在尝试执行数据导出过程中遇到了问题。以下是一些可能导致该...

    oracle exp query参数 转义符的各个操作系统通用解决方法

    通过使用parfile文件,可以实现EXP工具的自动化和批量处理,提高工作效率和数据处理速度。 此外,EXP_Query参数转义符还可以与其他Oracle工具集成,例如Oracle Data Pump,实现数据的快速迁移和备份。 Oracle Data ...

    oracle11g-exp文件

    Oracle 11g是甲骨文公司发布的一款关系数据库管理系统,其强大而高效的数据处理能力在业界享有盛誉。在给定的“oracle11g-exp”文件中,重点涉及了Oracle数据库的数据导出和导入工具,即EXP(Export)和IMP(Import...

    用C实现exp函数.zip_exp_exp函数 c++实现_用C

    总结来说,用C语言实现`exp`函数主要涉及到泰勒级数展开和迭代求和的算法,这既是一次深入理解数学概念的机会,也是锻炼编程技巧的好练习。通过这种方式,我们可以更好地理解指数函数的计算过程,并为没有标准库支持...

    oracle EXP 遇到的问题

    Oracle EXP,全称Export,是Oracle提供的一种数据导出工具,它允许用户将数据库对象(如表、索引、存储过程等)及其数据导出到一个二进制文件中,以便于备份或在不同数据库之间迁移数据。 在描述中,虽然没有提供...

    9i exp遇见EXP-00008 ORA-00942 EXP-00024错误的解决

    exp 工具是一个非常重要的数据导出工具,它可以将 Oracle 数据库中的数据导出到一个文件中,以便进行备份或传输。使用 exp 工具可以将数据导出到不同的文件格式中,例如 dmp、dat 等。 exp 工具的使用非常简单,...

    iis6exp iis6exp

    IIS6是微软在Windows Server 2003操作系统中提供的一个Web服务器,其扩展性是开发者和系统管理员关注的关键点,因为它关乎到能否根据需求添加额外的功能或处理更高的并发请求。 【标签】"iis6exp" 直接关联到IIS6的...

    最新exp Apache的exp

    最新exp Apache的exp (Apache CouchDB 2.3.0 Cross Site Request Forgery .txt) 先到先得 绝对最新 懂得...

    Oralce备份脚本exp命令

    `exp`是Oracle Data Pump Export工具的旧版命令,用于将数据库对象(如表、索引、存储过程等)的数据和元数据导出到一个文件中,这个文件通常被称为转储文件。转储文件可以作为备份,以便在需要时恢复数据。`exp`...

    imp,exp命令使用

    这两个工具是数据库管理员在日常管理中常用的实用程序,尤其是在数据迁移、数据库复制和故障恢复等场景下。 `exp`命令是用于导出Oracle数据库中的数据和对象的。它支持多种导出模式,以满足不同需求: 1. **用户...

    oracleClient安装包exp和imp文件.zip

    EXP是Oracle Data Pump Export的简称,它是一个数据导出工具,用于将数据库对象(如表、视图、存储过程等)和数据从一个Oracle数据库中抽取出来,生成一个二进制的转储文件。这个转储文件可以用于备份目的,或者在...

    EXP(x)的数值计算方法

    本文将深入探讨如何利用不同的数值计算算法来有效地计算`EXP(x)`的值,尤其关注处理大数类的方法。我们将通过源代码分析来理解这些算法的工作原理,并探讨它们的适用场景和性能。 首先,我们要知道`EXP(x)`是指数...

    oracle11g的BIN目录exp.exe下载

    1. **exp.exe**:它是Oracle Data Pump导出工具的执行文件,用于将数据库对象(如表、索引、用户权限等)的数据和元数据导出到一个或多个二进制文件中。这个过程通常称为数据导出,生成的文件被称为转储文件。exp....

    oracle exp带条件.

    在Oracle数据库管理中,`EXP`命令是一种非常重要的工具,用于将数据库中的表、索引等对象导出到一个二进制文件(`.dmp`文件)中,以便进行备份或迁移等工作。本次讨论的主题是“oracle exp带条件”,即如何在使用`...

    IBM EXP400磁盘柜双机热备解决方案

    双机热备解决方案是IBM EXP400的一大亮点,其稳定性和安全性在业界处于领先地位。 双机双RAID卡的配置是IBM EXP400双机热备方案的核心。这种方式可以显著降低因单一RAID卡或磁盘阵列控制器故障导致的数据损失风险。...

    exp导出空表脚本

    在Oracle数据库管理中,"exp"是Oracle Data Pump Export工具的旧版本,用于将数据库对象的数据和结构导出到一个二进制文件中,以便于备份或迁移数据。当遇到"exp无法导出空表"的问题时,这通常意味着虽然表在数据库...

    IBM文档EXP5000

    - **紧急情况处理**:特别提到了火灾抑制系统的设计和使用方法,这是确保数据中心安全的重要措施之一。 #### 七、反馈与建议 - **如何提交反馈**:文档最后提到了如何向IBM提交关于该产品的反馈和建议,这对于持续...

Global site tag (gtag.js) - Google Analytics