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

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

[复制链接]
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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版