你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

数据库出现异常,排查原因与解决问题的整个过程

[复制链接]
gaosmile 发布时间:2020-5-29 11:49
导读:某客户单位数据库出现异常,大致现象是:数据库状态是open的,但是其中一个数据文件无法访问,本文分享排查原因与解决问题的整个过程。

通过ls 查看文件都报错,如下所示:

  1. [oracle@oracledata01 oracle]$ ls
  2. ls: 无法访问zf4.dbf: 输入/输出错误<font face="Tahoma">
  3. </font>
复制代码

同时dd命令也无法读取该文件:

  1. [oracle@oracledata01 fd]$ dd if=zf4.dbf bs=8192 count=1 skip=1|od -x|header -1
  2. bash: header: command not found
  3. dd: 正在打开"zf4.dbf": 没有那个文件或目录<font face="Tahoma">
  4. </font>
复制代码

此时在从数据库层面看到的信息类似如下:

  1. Tue Apr 28 16:49:51 2020
  2. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_9146.trc:
  3. ORA-01157: 无法标识/锁定数据文件 11 - 请参阅 DBWR 跟踪文件
  4. ORA-01110: 数据文件 11: '/oracle_data/oracle/zf4.dbf'
  5. ORA-1157 signalled during: ALTER DATABASE OPEN...
  6. Tue Apr 28 16:49:51 2020
  7. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m000_9152.trc:
  8. ORA-27037: 无法获得文件状态
  9. Linux-x86_64 Error: 5: Input/output error
  10. Additional information: 3
  11. ORA-01122: 数据库文件 11 验证失败
  12. ORA-01110: 数据文件 11: '/oracle_data/oracle/zf4.dbf'
  13. ORA-01565: 标识文件 '/oracle_data/oracle/zf4.dbf' 时出错
  14. ORA-27037: 无法获得文件状态
  15. Linux-x86_64 Error: 5: Input/output error
  16. Additional information: 3
  17. Tue Apr 28 16:50:19 2020
  18. USER (ospid: 9309): terminating the instance<font face="Tahoma">
  19. </font>
复制代码

从上述信息来看,数据库第11号文件无法读取。

在我们进行恢复之前,客户进行了多次尝试,还遭遇了一些数据库坏块,也遇到了不少ora-00600 错误:

  1. Wed Apr 29 03:10:12 2020
  2. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_j009_65816.trc:
  3. ORA-12012: 自动执行作业 "ZX_XT"."JS_XT_XZGLXX_XZXK_FR" 出错
  4. ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小
  5. ORA-06512: 在 "ZX_XT.PKG_双公示接收_邢_2019", line 1071
  6. ORA-00942: 表或视图不存在
  7. ORA-02063: 紧接着 line (起自 BM_SJJH)
  8. alter database datafile 11 resize 20g
  9. Completed: alter database datafile 11 resize 20g
  10. Wed Apr 29 03:10:15 2020
  11. Corrupt Block Found
  12. CONT = 0, TSN = 1, TSNAME = SYSAUX
  13. RFN = 3, BLK = 3, RDBA = 12582915
  14. OBJN = 1, OBJD = -1, OBJECT = _NEXT_OBJECT, SUBOBJECT =
  15. SEGMENT OWNER = SYS, SEGMENT TYPE = Invalid Type
  16. Wed Apr 29 03:10:15 2020
  17. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m006_66106.trc  (incident=246250):
  18. ORA-00600: 内部错误代码, 参数: [kdBlkCheckError], [3], [3], [18018], [], [], [], [], [], [], [], []
  19. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_246250/orcl_m006_66106_i246250.trc
  20. Wed Apr 29 03:10:15 2020
  21. ......
  22. Wed Apr 29 03:11:00 2020
  23. Doing block recovery for file 3 block 3
  24. Resuming block recovery (PMON) for file 3 block 3
  25. Block recovery from logseq 50078, block 15827 to scn 14514058257813
  26. Wed Apr 29 03:11:00 2020
  27. Recovery of Online Redo Log: Thread 1 Group 3 Seq 50078 Reading mem 0
  28. Mem# 0: /oracle_data/oradata/orcl/redo03.log
  29. Block recovery completed at rba 50078.23957.16, scn 3379.1363764630
  30. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m004_66271.trc  (incident=245043):
  31. ORA-00600: 内部错误代码, 参数: [kdBlkCheckError], [3], [3], [18018], [], [], [], [], [], [], [], []
  32. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_245043/orcl_m004_66271_i245043.trc
  33. Use ADRCI or Support Workbench to package the incident.
  34. See Note 411.1 at My Oracle Support for error and packaging details.
  35. Wed Apr 29 03:11:01 2020
  36. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m004_66271.trc:
  37. ORA-00600: 内部错误代码, 参数: [kdBlkCheckError], [3], [3], [18018], [], [], [], [], [], [], [], []
  38. Wed Apr 29 03:11:02 2020
  39. ......
  40. Wed Apr 29 03:15:49 2020
  41. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_j000_65779.trc  (incident=245026):
  42. ORA-00600: internal error code, arguments: [13011], [7907], [12713924], [44], [12687314], [0], [], [], [], [], [], []
  43. ORA-01403: no data found
  44. ORA-06512: at "SYS.DBMS_AQ_INV", line 1248
  45. ORA-06512: at line 1
  46. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_245026/orcl_j000_65779_i245026.trc
  47. Wed Apr 29 03:15:52 2020
  48. Dumping diagnostic data in directory=[cdmp_20200429031552], requested by (instance=1, osid=65779 (J000)), summary=[incident=245026].
  49. Use ADRCI or Support Workbench to package the incident.
  50. See Note 411.1 at My Oracle Support for error and packaging details.
  51. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_j000_65779.trc  (incident=245027):
  52. ORA-00600: internal error code, arguments: [13011], [7907], [12713924], [44], [12687314], [0], [], [], [], [], [], []
  53. ORA-01403: no data found
  54. ORA-06512: at "SYS.DBMS_AQ_INV", line 1248
  55. ORA-06512: at line 1
  56. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_245027/orcl_j000_65779_i245027.trc
  57. Use ADRCI or Support Workbench to package the incident.
  58. ......
  59. Wed Apr 29 04:05:07 2020
  60. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_m003_76294.trc:
  61. ORA-00600: 内部错误代码, 参数: [kdBlkCheckError], [3], [3], [18018], [], [], [], [], [], [], [], []
  62. Wed Apr 29 04:05:08 2020
  63. Dumping diagnostic data in directory=[cdmp_20200429040508], requested by (instance=1, osid=76263), summary=[incident=282250].
  64. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_76263.trc  (incident=282251):
  65. ORA-00600: 内部错误代码, 参数: [qosdFindObjRead: objcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
  66. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282251/orcl_ora_76263_i282251.trc
  67. Use ADRCI or Support Workbench to package the incident.
  68. See Note 411.1 at My Oracle Support for error and packaging details.
  69. Wed Apr 29 04:05:10 2020
  70. Sweep [inc][282251]: completed
  71. Sweep [inc2][282265]: completed
  72. Sweep [inc2][282251]: completed
  73. Wed Apr 29 04:05:10 2020
  74. Dumping diagnostic data in directory=[cdmp_20200429040510], requested by (instance=1, osid=76263), summary=[incident=282251].
  75. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_76263.trc  (incident=282252):
  76. ORA-00600: 内部错误代码, 参数: [qosdFindObjRead: objcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
  77. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282252/orcl_ora_76263_i282252.trc
  78. Use ADRCI or Support Workbench to package the incident.
  79. See Note 411.1 at My Oracle Support for error and packaging details.
  80. Wed Apr 29 04:07:26 2020
  81. ......
  82. Wed Apr 29 04:24:01 2020
  83. Sweep [inc][279857]: completed
  84. Sweep [inc2][279857]: completed
  85. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_78503.trc  (incident=279858):
  86. ORA-00600: 内部错误代码, 参数: [qosdFindObjRead: objcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
  87. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_279858/orcl_ora_78503_i279858.trc
  88. Use ADRCI or Support Workbench to package the incident.
  89. See Note 411.1 at My Oracle Support for error and packaging details.
  90. Wed Apr 29 04:24:03 2020
  91. Sweep [inc][279858]: completed
  92. Sweep [inc2][279858]: completed
  93. Wed Apr 29 04:24:04 2020
  94. Dumping diagnostic data in directory=[cdmp_20200429042404], requested by (instance=1, osid=78503), summary=[incident=279858].
  95. Wed Apr 29 04:25:57 2020
  96. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_78738.trc  (incident=282222):
  97. ORA-00600: 内部错误代码, 参数: [qosdFindObjRead: objcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
  98. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282222/orcl_ora_78738_i282222.trc
  99. Use ADRCI or Support Workbench to package the incident.
  100. See Note 411.1 at My Oracle Support for error and packaging details.
  101. Wed Apr 29 04:25:58 2020
  102. Sweep [inc][282222]: completed
  103. Sweep [inc2][282222]: completed
  104. Wed Apr 29 04:25:58 2020
  105. Dumping diagnostic data in directory=[cdmp_20200429042558], requested by (instance=1, osid=78738), summary=[incident=282222].
  106. Errors in file /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/trace/orcl_ora_78738.trc  (incident=282223):
  107. ORA-00600: 内部错误代码, 参数: [qosdFindObjRead: objcnt mismatch], [], [], [], [], [], [], [], [], [], [], []
  108. Incident details in: /oracle_app/Oracle12c/diag/rdbms/orcl/orcl/incident/incdir_282223/orcl_ora_78738_i282223.trc
复制代码


上述ora-00600 错误,总的来都是常见的,几乎都可以定性为数据坏块。

对于file 3的坏块,处理相对简单,直接drop或者truncate相关对象即可,然后重建awr。

但是对于第11号数据文件,怎么办呢?这里我们的处理方法是当文件丢失处理(很久之前处理过Windows环境数据文件大小为 0 kb的问题,这几种情况都类似。)

这里我说一下简单的处理思路:

1. 通过odu 扫盘,分别以不同offset方式来扫(0和4096)。

2. 对比两次扫描结果,组合extent信息,抽取文件。

由于这里文件只有1个,大小20g左右,通过dd 拼接即可。

最终文件拼接完成后,由于这里是非归档环境,无法进行正常recover,因此还需要通过bbed来修改数据文件头的checkpoint信息。

对于文件系统来讲,目前已经不是Oracle存储的最佳选择了,建议使用ASM。当然,其他数据库比如MySQL、PostgreSQL除外。

收藏 评论0 发布时间:2020-5-29 11:49

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版