Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

75

积分

1

好友

8

主题
1#
发表于 2013-9-11 11:56:27 | 查看: 6710| 回复: 5
环境介绍:
AIX 6100-06-05-1115

数据库:

Oracle 11.2.0.2 RAC+ASM  2 nodes
问题现象:(asm alert log)
  1. ORA-27063: number of bytes read/written is incorrect
  2. IBM AIX RISC System/6000 Error: 110: Media surface error
  3. Additional information: -1
  4. Additional information: 1048576
  5. WARNING: Read Failed. group:2 disk:2 AU:23579 offset:0 size:1048576
  6. Errors in file /home/grid/asm/diag/asm/+asm/+ASM2/trace/+ASM2_ora_3867494.trc:
  7. ORA-27063: number of bytes read/written is incorrect
  8. IBM AIX RISC System/6000 Error: 110: Media surface error
  9. Additional information: -1
  10. Additional information: 1048576
  11. WARNING: Read Failed. group:2 disk:2 AU:23580 offset:0 size:1048576
  12. WARNING: failed to read mirror side 1 of virtual extent 2219 logical extent 0 of file 278 in group [2.813357336] from disk DATADG_0002  allocation unit 23580 reason error; if possible,will try another mirror side
  13. WARNING: failed to read mirror side 1 of virtual extent 2216 logical extent 0 of file 278 in group [2.813357336] from disk DATADG_0002  allocation unit 23579 reason error; if possible,will try another mirror side
复制代码
trace信息:
  1. *** 2013-09-11 09:47:59.441
  2. *** SESSION ID:(123.53) 2013-09-11 09:47:59.441
  3. *** CLIENT ID:() 2013-09-11 09:47:59.441
  4. *** SERVICE NAME:() 2013-09-11 09:47:59.441
  5. *** MODULE NAME:(dbverify@zsydjy2 (TNS V1-V3)) 2013-09-11 09:47:59.441
  6. *** ACTION NAME:() 2013-09-11 09:47:59.441

  7. ORA-27063: number of bytes read/written is incorrect
  8. IBM AIX RISC System/6000 Error: 110: Media surface error
  9. Additional information: -1
  10. Additional information: 1048576
  11. WARNING: Read Failed. group:2 disk:2 AU:23579 offset:0 size:1048576
  12. [color=Red]path:/dev/rhdiskpower5[/color]
  13.          incarnation:0xea9a29f3 asynchronous result:'I/O error'
  14.          subsys:System iop:0x110c7d9a0 bufp:0x1108d9000 osderr:0x0 osderr1:0x0
  15. ORA-27063: number of bytes read/written is incorrect
  16. IBM AIX RISC System/6000 Error: 110: Media surface error
  17. Additional information: -1
  18. Additional information: 1048576
  19. WARNING: Read Failed. group:2 disk:2 AU:23580 offset:0 size:1048576
  20. [color=Red]path:/dev/rhdiskpower5[/color]
  21.          incarnation:0xea9a29f3 asynchronous result:'I/O error'
  22.          subsys:System iop:0x110c7d740 bufp:0x110cf9000 osderr:0x0 osderr1:0x0
  23. WARNING: failed to read mirror side 1 of virtual extent 2219 logical extent 0 of file 278 in group [2.813357336] from disk DATADG_0002  allocation unit 23
  24. 580 reason error; if possible,will try another mirror side
  25. WARNING: failed to read mirror side 1 of virtual extent 2216 logical extent 0 of file 278 in group [2.813357336] from disk DATADG_0002  allocation unit 23
  26. 579 reason error; if possible,will try another mirror side
复制代码
存储上已查看信息,并没有出现错误。


通过日志提示AU:23579和AU:23580对应及ASM磁盘分布的信息:
  1. SQL> select group_kffxp,number_kffxp from x$kffxp where au_kffxp in (23579,23580);

  2. GROUP_KFFXP NUMBER_KFFXP
  3. ----------- ------------
  4.           2          278
  5.           2          278
  6.           2          278
  7.           2          278
  8.           2          278
  9.           2          278

  10. SQL> select name from v$asm_alias where FILE_NUMBER=278;

  11. NAME
  12. --------------------------------------------------------------------------------
  13. USERS.278.818266419

  14. QL> select GROUP_KFFXP, DISK_KFFXP, AU_KFFXP from x$kffxp
  15.   2  where number_kffxp =
  16.   3  (select file_number
  17.   4  from v$asm_alias
  18.   5  where name = 'USERS.278.818266419') and AU_KFFXP in (23579,23580);

  19. GROUP_KFFXP DISK_KFFXP   AU_KFFXP
  20. ----------- ---------- ----------
  21.           2          0      23579
  22.           2          0      23580
  23.           2          1      23579
  24.           2          1      23580
  25.           2          2      23579
  26.           2          2      23580
复制代码
可以看出,这两个AU同时分布在磁盘组的三个磁盘上:
  1. SQL> select path,DISK_NUMBER from v$asm_disk where GROUP_NUMBER=2;

  2. PATH                                     DISK_NUMBER
  3. ---------------------------------------- -----------
  4. /dev/rhdiskpower3                                  0
  5. /dev/rhdiskpower4                                  1
  6. /dev/rhdiskpower5                                  2
复制代码
测试该数据文件中包涵数据对象的可用性:
  1. SQL> select file# from v$datafile where name like '%users.278%';

  2.      FILE#
  3. ----------
  4.         14
  5. SQL> col SEGMENT_NAME for a40
  6. SQL> col owner for a30
  7. SQL> set lines 200 pages 100
  8. SQL> select owner, segment_name, segment_type from dba_extents where file_id=14 and rownum < 20;
  9. OWNER                          SEGMENT_NAME                             SEGMENT_TYPE
  10. ------------------------------ ---------------------------------------- ------------------
  11. STCXLINK                       JY_LOG                                   TABLE
  12. STCXLINK                       JY_LOG                                   TABLE
  13. STCXLINK                       JY_LOG                                   TABLE
  14. STCXLINK2                      JY_LOG                                   TABLE
  15. STCXLINK2                      JY_LOG                                   TABLE
  16. XLINK2                         JY_LOG                                   TABLE
  17. XLINK2                         JY_LOG                                   TABLE
  18. XLINK2                         JY_LOG                                   TABLE
  19. XLINK2                         JY_LOG                                   TABLE
  20. STCXLINK                       PK_JY_LOG                                INDEX
  21. XLINK2                         PK_JY_LOG                                INDEX
  22. XLINK2                         PK_JY_LOG                                INDEX
  23. XLINK2                         IDX_JY_LOG_01                            INDEX
  24. STCXLINK2                      PK_JY_LOG                                INDEX
  25. STCXLINK2                      IDX_JY_LOG_01                            INDEX
  26. STCXLINK2                      IDX_JY_LOG_01                            INDEX
  27. STCXLINK2                      IDX_JY_LOG_01                            INDEX

  28. SQL> select count(*) from STCXLINK.JY_LOG;

  29.   COUNT(*)
  30. ----------
  31.    4649782
复制代码
备注:1号节点系统、ASM alert、DB alert都没有上述错误信息,数据库可以正常使用

通过MOS上找到了一些比较有价值的信息(1289905.1)。

这种情况是否可以通过替换ASM磁盘组磁盘来临时解决,停库升级的时间比较难申请。

2#
发表于 2013-9-11 17:20:28
补充:
对于上面的描述有个地方不正确
  1. 可以看出,这两个AU同时分布在磁盘组的三个磁盘上:

  2.     SQL> select path,DISK_NUMBER from v$asm_disk where GROUP_NUMBER=2;

  3.     PATH                                     DISK_NUMBER
  4.     ---------------------------------------- -----------
  5.     /dev/rhdiskpower3                                  0
  6.     /dev/rhdiskpower4                                  1
  7.     /dev/rhdiskpower5                                  2
复制代码
问题的AU是diskpower5上的23579和23580,hdiskpower3和4上的23579和23580号AU,并没有问题。

回复 只看该作者 道具 举报

3#
发表于 2013-9-13 09:56:53
先尝试 dd去读该disk 对应的区域

回复 只看该作者 道具 举报

4#
发表于 2013-9-13 14:03:16
Maclean Liu(刘相兵 发表于 2013-9-13 09:56
先尝试 dd去读该disk 对应的区域

之前尝试过dbv校验USERS.278.818266419数据文件,但是一直没有返回结果。
  1. zsydjy2:/home/oracle$dbv userid=sys/oracle file=+DATADG/zsydjydb/datafile/users.278.818266419

  2. DBVERIFY: Release 11.2.0.2.0 - Production on Fri Sep 11 10:18:13 2013

  3. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

  4. DBVERIFY - Verification starting : FILE = +DATADG/zsydjydb/datafile/users.278.818266419

  5. ……
复制代码
尝试dd去读这两个AU所在的块时,直接read fail
  1. zsydjy2:/home/grid$dd if=/dev/rhdiskpower5 of=/yktback/rmanbak/au23579.dmp skip=23579 bs=1024k count=1
  2. dd: 0511-051 The read failed.
  3. : The media surface is damaged.
  4. 0+0 records in.
  5. 0+0 records out.
  6. zsydjy2:/home/grid$dd if=/dev/rhdiskpower5 of=/yktback/rmanbak/au23579.dmp skip=23580 bs=1024k count=1
  7. dd: 0511-051 The read failed.
  8. : The media surface is damaged.
  9. 0+0 records in.
  10. 0+0 records out.
复制代码
测试读后一个AU
  1. zsydjy2:/home/grid$dd if=/dev/rhdiskpower5 of=/yktback/rmanbak/au23579.dmp skip=23581 bs=1024k count=1
  2. 1+0 records in.
  3. 1+0 records out.
复制代码

回复 只看该作者 道具 举报

5#
发表于 2013-9-13 14:04:25
The media surface is damaged.

==>这是存储层的问题了, 和oracle没关系

找IBM和存储厂商把

回复 只看该作者 道具 举报

6#
发表于 2013-9-13 14:15:38
Thanks ML!!

存储的问题我之前也已经确认过,RAID组坏了一个磁盘,但是有Hot盘,而且坏掉的磁盘已经替换掉了。

目前的解决方式:考虑将hdiskpower5 包含的数据对象迁移到其他dg磁盘中。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-18 16:25 , Processed in 0.049002 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569