ITPUB??ì3
订阅ITPUB精粹播报,社区精彩内容不错过
ITPUB论坛 » Oracle数据库管理 » 近期整理(四)--处理的两个图省事才出来的问题,喜欢copy ORACLE_HOME的人应该看看


您有 1 条公共消息
  • 来自: 公共消息 标题: ITPUB国庆假期数 ... 内容: 全新编排的Oracle数据库课程,第一线数据库工程师传授亲身经验,完全摆 ...

    标题: [笔记] 近期整理(四)--处理的两个图省事才出来的问题,喜欢copy ORACLE_HOME的人应该看看
    离线 wa0362
    Say,Hallelujah!


    精华贴数 1
    个人空间 0
    技术积分 2891 (688)
    社区积分 163 (3468)
    注册日期 2005-5-7
    论坛徽章:24
    ITPUB元老授权会员2010年世界杯参赛球队:智利2010年世界杯参赛球队:斯洛伐克生肖徽章2007版:鸡生肖徽章2007版:虎
    2009日食纪念生肖徽章2007版:龙生肖徽章2007版:马2009新春纪念徽章2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:跳水

    发表于 2008-7-2 01:55 
    近期整理(四)--处理的两个图省事才出来的问题,喜欢copy ORACLE_HOME的人应该看看

    案例1
    关键词:复制导致文件权限变化

    环境 9i  具体版本忘了
    solaris 9

    源于一次故障诊断
    第一天上午:接到电话说oracle 报错
    执行批量插入的过程或报表程序报错:
    SQL> BEGIN brpt_get_daily_report_p; END;
    *
    ERROR 位于第 1 行:
    ORA-00604: 递归 SQL 层 1 出现错误
    ORA-01115: 从文件 1 读取块时出现 IO 错误 (块 # 28738)
    ORA-01110: 数据文件 1: '/dev/md/billds/rdsk/d301'
    ORA-27091: skgfqio: 无法进行 I/O 操作
    ORA-27072: skgfdisp: I/O 错误
    SVR4 Error: 12: Not enough space
    Additional information: 28737
    ORA-06508: PL/SQL: 无法在调用之前找到程序单元
    ORA-06512: 在"UNITELE.BRPT_GET_DAILY_REPORT_P", line 87
    ORA-06512: 在line 1

    alert log有大量类似:
    Additional information: 15497
    ORA-01115: IO error reading block from file 93 (block # 62842)
    ORA-01110: data file 93: '/dev/md/billds/rdsk/d84'
    ORA-27091: skgfqio: unable to queue I/O
    ORA-27072: skgfdisp: I/O error
    SVR4 Error: 12: Not enough space
    Additional information: 62841
    Fri Mar 14 07:31:07 2008
    Errors in file /arraybill/oracle/admin/orabill/udump/orabill_ora_28779.trc:
    ORA-00600: internal error code, arguments: [kdtdelrow-2], [63], [63], [], [], [], [], []
    ORA-01115: IO error reading block from file 556 (block # 94232)
    ORA-01110: data file 556: '/dev/md/billds/rdsk/d679'
    ORA-27091: skgfqio: unable to queue I/O
    ORA-27072: skgfdisp: I/O error
    SVR4 Error: 12: Not enough space
    Additional information: 94231
    Fri Mar 14 07:31:40 2008
    Errors in file /arraybill/oracle/admin/orabill/udump/orabill_ora_29096.trc:
    ORA-00604: 递归 SQL 层 1 出现错误
    ORA-01115: 从文件 265 读取块时出现 IO 错误 (块 # 114425)
    ORA-01110: 数据文件 265: '/dev/md/billds/rdsk/d259'
    ORA-27091: skgfqio: 无法进行 I/O 操作
    ORA-27072: skgfdisp: I/O 错误
    SVR4 Error: 12: Not enough space
    Additional information: 114424
    ORA-06512: 在line 3
    Fri Mar 14 07:49:28 2008

    经过询问和检查,在中午之前排除了操作系统、硬件和空间问题的可能性。
    下午把问题方向 瞄准了bug:
    Bug 4439465 - OERI [kdtdelrow-2] / ORA-604 from BULK inserts 被排除,怀疑ora-600的错误只是表象,是由其他问题引起的,所以放弃了根据ora-600找问题。
    Bug 6370741引起了注意:
    Bug 4439465 - OERI [kdtdelrow-2] / ORA-604 from BULK inserts
    Experiencing the errors as follows: .
    ORA-01115: IO error reading block from file 18 (block # 2613966)
    ORA-01110: data file 18: '/dev/vx/rdsk/bre25knet01_vg05/spo_smstg202'
    ORA-27091: skgfqio: unable to queue I/O
    ORA-27072: skgfdisp: I/O error
    SVR4 Error: 12: Not enough space
    Additional information: 2613965 .
    Unsetting SGA_MAX_SIZE stops the error from occurring.
    This is unaccpetable to customer as without setting the parameter they experience ORA-4031 errors.

    但是用户拒绝接受sga_max_size会引起问题,一定要有理由,并且该bug并没有正式声明(很可能不是bug)
    下午拿到了vpn帐号,远程登录上去,在alert log中又看到了一些可疑的东西:
    Tue Mar 11 23:33:14 2008
    WARNING: -------------------------------
    WARNING: oradism not set up correctly.
    Dynamic ISM can not be locked. Please
    setup oradism, or unset sga_max_size.
    [diagnostic 0, 16, 1001]
    ----------------------------------------

    这是在上次修改之后启动DB的时候得warning,(因为错误多,给我发过来的错误信息里没有包含这些信息,只有4天左右的)
    根据这个信息找到:
    Note:338751.1 Database Crashed Due to ORA-600 [ksfd_odmgo1] and Ora-17500
    Symptoms
    Database doesn't open because of:

    ORA-00600: internal error code, arguments: [ksfd_odmgo1], [4294967274], [0xFFFFFFFF7FFF85A8],
    ..
    Fri Sep 30 08:10:41 2005
    Errors in file /oracle/ew01/ewt1/admin/bdump/ewt11_p002_16730.trc:
    ORA-01115: IO error reading block from file 8 (block # 45354)
    ORA-01110: data file 8: '/dbf/ew01/dba01/ewt1/ppvd.001'
    ORA-17500: ODM err:ODM ERROR V-41-4-12 Not enough space
    ORA-10388: parallel query server interrupt (failure)

    Alert.log also shows:
    WARNING: -------------------------------
    WARNING: oradism not set up correctly.
    Dynamic ISM can not be locked.


    Cause
    ORADISM doesn't have the right permission.

    Solution
    Shutdown the databases running from this ORACLE_HOME.

    chgrp dba $ORACLE_HOME/bin/oradism
    As root:
    chown root $ORACLE_HOME/bin/oradism
    chmod 06550 $ORACLE_HOME/bin/oradism

    回忆起来,用户曾说过这台oracle的软件是从其它服务器copy过来的,于是检查oradism的权限,发现确实有问题:
    [oracle]> ls -l oradism*
    -r-xr-x---   1 oracle   dba        12928 2004   3月 25 oradism
    -r-xr-x---   1 oracle   dba        10424 2002   4月 27 oradism.sav

    正常情况下,安装过程最后会用root用户执行root.sh,这个脚本有相应的命令会把权限修改好:
    [oracle]> pwd
    /arraybill/oracle/product/9205
    [oracle]> cat root.sh|grep oradism
    if [ -f $ORACLE_HOME/bin/oradism ]; then
            $CHOWN root $ORACLE_HOME/bin/oradism
            $CHMOD 06550 $ORACLE_HOME/bin/oradism

    原因可能是在copy的过程中,文件的权限发生了改变,或者整个$ORACLE_HOME被特意修改为oracle:dba了。
    所以:一直以来DISM都是有问题的,但是因为sga_max_size一直以来是default,问题也就没有显现出来。
    直道前两天有人增加shared pool的时候alter system 给sga_max_size设定了一个值
    问题才显明出来。

    第二天晚上,客户申请到了停机,让前方人员执行$ORACLE_HOME/root.sh但是因为copy过来目录不同,所以执行报错。
    于是只好把root.sh里的
    $CHOWN root $ORACLE_HOME/bin/oradism
    $CHMOD 06550 $ORACLE_HOME/bin/oradism

    单独执行了,经测试问题已经解决。


    [ 本帖最后由 wa0362 于 2008-7-2 09:01 编辑 ]


    __________________
    只看该作者    顶部
    离线 wa0362
    Say,Hallelujah!


    精华贴数 1
    个人空间 0
    技术积分 2891 (688)
    社区积分 163 (3468)
    注册日期 2005-5-7
    论坛徽章:24
    ITPUB元老授权会员2010年世界杯参赛球队:智利2010年世界杯参赛球队:斯洛伐克生肖徽章2007版:鸡生肖徽章2007版:虎
    2009日食纪念生肖徽章2007版:龙生肖徽章2007版:马2009新春纪念徽章2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:跳水

    发表于 2008-7-2 01:59 
    案例2:
    关键词:单单ORACLE_HOME是远远不够的

    不单单是:“aio引起sqlplus / as sysdba不能用”
    i2的系统,用户自己维护的
    OS:AIX 5.3
    Oracle: 10.2

    询问并检查了一下情况:
    1. 重装了操作系统,Oracle软件和数据文件在另外的VG中。
    2. 环境变量恢复到重装系统之前的状态,Oracle用户和组也已经创建(UID,GID都与原来相同),文件的权限也都没有改变。
    3. 当sqlplus / as sysdba的时候报错:
    [qasmdm1racle] /oracle/home>> sqlplus / as sysdba
    SQL*Plus: Release 10.2.0.2.0 - Production on Wed Apr 23 10:34:49 2008
    Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
    Could not load program oracledevmdm:
    Symbol resolution failed for /usr/lib/libc.a[aio_64.o] because:
            Symbol kaio_rdwr64 (number 1) is not exported from dependent
              module /unix.
            Symbol listio64 (number 2) is not exported from dependent
              module /unix.
            Symbol acancel64 (number 3) is not exported from dependent
              module /unix.
            Symbol iosuspend64 (number 4) is not exported from dependent
              module /unix.
            Symbol aio_nwait (number 5) is not exported from dependent
              module /unix.
            Symbol aio_nwait64 (number 6) is not exported from dependent
              module /unix.
            Symbol aio_nwait_timeout (number 7) is not exported from dependent
              module /unix.
            Symbol aio_nwait_timeout64 (number 8) is not exported from dependent
              module /unix.
    System error: Error 0
    Examine .loader section symbols with the 'dump -Tv' command.
    ERROR:
    ORA-12547: TNS:lost contact

    metalink查了一下,说是aio的问题。检查了一下AIO
    PEKAX131:/dev>smit aio
                            Change/Show Characteristics of Asynchronous I/O

    Type or select values in entry fields.
    Press Enter AFTER making all desired changes.

                                                            [Entry Fields]
    MINIMUM number of servers                          [1]                                                                          #
    MAXIMUM number of servers per cpu                  [15]                                                                         #
    maximum number of REQUESTS                         [4096]                                                                       #
    server PRIORITY                                    [39]                                                                         #
    STATE to be configured at system restart            defined                                                                    +
    State of fast path                                  enable   

    确实没有自动启动,执行下面的操作启动AIO:
    PEKAX131:/>mkdev -l aio0
    aio0 Available

    并且smit aio 把STATE to be configured at system restart 修改为available
    再sqlplus连接并启动库都没有问题了
    [qasmdm1racle] /oracle/home> sqlplus / as sysdba
    SQL*Plus: Release 10.2.0.2.0 - Production on Wed Apr 23 11:20:24 2008
    Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
    Connected to an idle instance.
    SQL> startup

    经询问,知道了原因:
    用户原来做过mksysb(AIX备份操作系统的命令方式)
    出问题是在前一天晚上操作系统问题之后恢复了mksysb,而aix恢复完之后并没有启用aio.
    正常情况,aix安装oracle之前执行rootpre.sh时会启用aio,所以一定要注意:图省事单单复制$ORACLE_HOME 或重装系统后直接设环境变量来使用原有$ORACLE_HOME,问题多多


    总之:非安装的$ORACLE_HOME不小心的话,就是容易出问题


    __________________
    只看该作者    顶部
    离线 lsfredhat
    初级会员



    精华贴数 0
    个人空间 0
    技术积分 494 (4893)
    社区积分 1 (54195)
    注册日期 2007-3-19
    论坛徽章:6
    2010年世界杯参赛球队:法国2010年世界杯参赛球队:墨西哥生肖徽章2007版:蛇生肖徽章2007版:牛生肖徽章2007版:鼠2008北京奥运纪念徽章:乒乓球
          

    发表于 2008-7-2 08:31 
    又拿到板凳了,呵呵,强烈顶,经验总结


    只看该作者    顶部
    离线 OoNiceDream


    精华贴数 0
    个人空间 0
    技术积分 2731 (748)
    社区积分 10803 (206)
    注册日期 2008-2-21
    论坛徽章:103
    蓝锆石紫水晶祖母绿红宝石萤石海蓝宝石
    紫蜘蛛九尾狐狸蓝色妖姬玉石琵琶玉兔红孩儿

    发表于 2008-7-2 08:48 
    案例一,我在生产数据库上没找到这两个文件
    不知道是什么环境,Oracle 是什么版本?


    __________________
    只看该作者    顶部
    离线 wa0362
    Say,Hallelujah!


    精华贴数 1
    个人空间 0
    技术积分 2891 (688)
    社区积分 163 (3468)
    注册日期 2005-5-7
    论坛徽章:24
    ITPUB元老授权会员2010年世界杯参赛球队:智利2010年世界杯参赛球队:斯洛伐克生肖徽章2007版:鸡生肖徽章2007版:虎
    2009日食纪念生肖徽章2007版:龙生肖徽章2007版:马2009新春纪念徽章2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:跳水

    发表于 2008-7-2 09:02 


    QUOTE:
    原帖由 OoNiceDream 于 2008-7-2 08:48 发表
    案例一,我在生产数据库上没找到这两个文件
    不知道是什么环境,Oracle 是什么版本?

    9i 具体版本忘了


    __________________
    只看该作者    顶部
    离线 aiatop
    为爱执着


    来自 Beijing,China
    精华贴数 0
    个人空间 0
    技术积分 431 (5614)
    社区积分 38 (7255)
    注册日期 2006-5-25
    论坛徽章:5
    授权会员2008北京奥运纪念徽章:游泳生肖徽章2007版:鸡生肖徽章2007版:猴生肖徽章2007版:鼠 
          

    发表于 2008-7-2 09:48 
    照你的意思,重装ORACLE后,设置环境变量的时候还不能用$ORACLE_HOME原路径喽?没有这道理吧


    __________________
    坚定目标,持之以恒---->Oracle、SQL Server、Linux、Windows、PowerShell、Perl、English
    E-mail/MSN:cn.man.cn@hotmail.com
    只看该作者    顶部
    离线 yangtingkun
    版主


    精华贴数 14
    个人空间 80562
    技术积分 50961 (16)
    社区积分 3240 (584)
    注册日期 2001-12-29
    论坛徽章:181
    现任管理团队成员2010系统架构师大会纪念BLOG每周发帖之星BLOG每日发帖之星  
          

    发表于 2008-7-2 09:57 

    很不错的经验总结。
    一般复制ORACLE_HOME的时候,不要用cp,使用tar,这样可以保证权限不会发生变化。


    __________________
    学习ORACLE最大的障碍是什么——浮躁

    http://yangtingkun.itpub.net

    个人BLOG文章索引:http://www.itpub.net/699527.html

    11g的一点研究:http://www.itpub.net/852861.html
    只看该作者    顶部
    离线 Alienovo
    DBA ON THE ROAD


    精华贴数 0
    个人空间 10
    技术积分 5511 (321)
    社区积分 17006 (124)
    注册日期 2006-7-12
    论坛徽章:110
    世界杯纪念徽章NBA季后赛纪念徽章欧洲冠军杯纪念徽章NBA季后赛纪念徽章NBA常规赛纪念章NBA之星
    2010年世界杯参赛球队:斯洛文尼亚2010年世界杯参赛球队:德国2010新春纪念徽章2010年世界杯参赛球队:德国2010新春纪念徽章2010年世界杯参赛球队:乌拉圭

    发表于 2008-7-2 10:24 
    LZ的经验总结真不错~


    只看该作者    顶部
    离线 lixiang114
    李想


    来自 北京
    精华贴数 0
    个人空间 0
    技术积分 3208 (606)
    社区积分 2 (36681)
    注册日期 2006-6-1
    论坛徽章:17
    ITPUB元老2010数据库技术大会纪念徽章玉石琵琶授权会员2010年世界杯参赛球队:斯洛伐克2010新春纪念徽章
    ITPUB8周年纪念徽章祖国60周年纪念徽章生肖徽章2007版:兔2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:曲棍球

    发表于 2008-7-2 10:33 
    非常之受用,期待楼主总结出更多更好的帖子


    __________________
    My Oracle My Life
    ---------------------
    MSN: lixiang1104@hotmail.com
    只看该作者    顶部
    离线 xuming_11
    初级会员



    精华贴数 0
    个人空间 0
    技术积分 95 (20998)
    社区积分 0 (213015)
    注册日期 2004-11-3
    论坛徽章:0
          
          

    发表于 2008-7-2 10:41 
    LZ总结的非常好,生产环境还是不要copy ORACLE_HOME,还是全新安装放心,
    测试环境和备份演练都无所谓,crash了也有足够时间折腾。


    只看该作者    顶部
    相关内容


    CopyRight 1999-2006 itpub.net All Right Reserved.
    北京皓辰网域网络信息技术有限公司. 版权所有
    网站律师 隐私政策 知识产权声明
    广播电视节目制作经营许可证:编号(京)字第1149号
    京ICP证:060528号 联系我们

    北京市公安局海淀分局网监中心备案编号:1101082001