系統表空間IO錯誤 資料損壞處理一則
同事最近遇到一個資料庫問題,說是系統表空間出現壞塊,警告日誌檔案中不斷出現如下錯誤:
[oracle@gdmstest bdump]$ tail -20 alert_mydb.log
Linux Error: 4: Interrupted system call
Additional information: 23710
Wed Oct 25 16:47:44 2006
Errors in file /opt/oracle/admin/mydb/bdump/mydb_smon_19646.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-01115: IO error reading block from file 1 (block # 23712)
ORA-01110: data file 1: '/opt/oracle/oradata/mydb/system01.dbf'
ORA-27091: skgfqio: unable to queue I/O
ORA-27072: skgfdisp: I/O error
Linux Error: 4: Interrupted system call
Additional information: 23710
Wed Oct 25 16:47:59 2006
Errors in file /opt/oracle/admin/mydb/bdump/mydb_smon_19646.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-01115: IO error reading block from file 1 (block # 23712)
ORA-01110: data file 1: '/opt/oracle/oradata/mydb/system01.dbf'
ORA-27091: skgfqio: unable to queue I/O
ORA-27072: skgfdisp: I/O error
Linux Error: 4: Interrupted system call
Additional information: 23710
而透過dbv檢查又沒有報資料塊損壞:
[oracle@gdmstest mydb]$ dbv file=system01.dbf blocksize=8192DBVERIFY: Release 9.2.0.4.0 - Production on Thu Oct 26 11:36:42 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
DBVERIFY - Verification starting : FILE = system01.dbf
DBVERIFY - Verification complete
Total Pages Examined : 23709
Total Pages Processed (Data) : 13000
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 2090
Total Pages Failing (Index): 0
Total Pages Processed (Other): 1377
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 7242
Total Pages Marked Corrupt : 0
Total Pages Influx : 0
我們一起來看看這個問題,首先從錯誤日誌來看,其實這並不是一個資料塊損壞的問題:
ORA-01115: IO error reading block from file 1 (block # 23712)
這是個IO錯誤,資料塊不能讀取。
而DBV的提示也只是說檢查了23709個資料塊,這些資料塊沒有問題,而我們真正報錯的資料塊是23712號資料塊,也就是說DBV檢查到這個塊附近,無法繼續讀取,進而退出。
而系統表空間遠遠大於 23709 * 8k / 1024 = 185M。
此時檢查系統日誌,dmesg日誌中有大量的定址錯誤,也就是說硬體出現了故障:
[maintain@gdmstest bdump]$ dmesg: error=0x40 { UncorrectableError }, LBAsect=58847319, high=3, low=8515671, sector=14266880
end_request: I/O error, dev 03:06 (hda), sector 14266880
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=58847319, high=3, low=8515671, sector=14266880
end_request: I/O error, dev 03:06 (hda), sector 14266880
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=58847319, high=3, low=8515671, sector=14266880
end_request: I/O error, dev 03:06 (hda), sector 14266880
hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
至此問題被定位。
如果我們嘗試cp系統表空間檔案,同樣會收到硬體的錯誤提示資訊:
[oracle@gdmstest mydb]$ cp system01.dbf system01.dbf.bkcp: 正在讀入‘system01.dbf’: 輸入/輸出錯誤
[oracle@gdmstest mydb]$ ll
總用量 2173060
....
-rw-r----- 1 oracle dba 524296192 10月 25 16:49 system01.dbf
-rw-r----- 1 oracle dba 194236416 10月 25 17:00 system01.dbf.bk
...............
只能複製194236416 Bytes,也就是 194236416 / 8192 = 23710.5,同樣是讀到23709個資料塊左右,硬體的損壞就要透過系統的其它手段去解決了。
引文來源 王旺的書房 | 系統表空間IO錯誤 資料損壞處理一則
Link URL: http://wworacle.blog.163.com/blog/static/21268725200849114220744
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-263473/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- oracle系統表空間過大問題處理Oracle
- MySQL資料庫INNODB表損壞修復處理過程分享MySql資料庫
- openGauss 處理錯誤表
- node端統一錯誤處理
- oracle 普通表空間資料檔案壞塊Oracle
- 什麼是硬碟邏輯損壞和檔案系統錯誤硬碟
- win10系統ftp資料夾錯誤怎麼處理_win10系統ftp資料夾錯誤如何解決Win10FTP
- 控制檔案損壞處理
- Laravel 統一錯誤處理為 JSONLaravelJSON
- 關於丟失表空間資料檔案的處理方式
- MySQL InnoDB系統表空間資料檔案配置MySql
- 刪除表空間出現ORA-22868錯誤(一)
- sysaux 表空間爆滿處理方法UX
- 伺服器系統癱瘓系統損壞資料恢復伺服器資料恢復
- 前端錯誤收集以及統一異常處理前端
- RAC磁碟頭損壞問題處理
- 錯誤處理
- PostgreSQL資料庫toast表損壞解決SQL資料庫AST
- win10電腦提示sgtool.exe系統損壞錯誤怎麼解決Win10
- 簡單介紹Python 處理錯誤的原則Python
- Spring boot/Spring 統一錯誤處理方案的使用Spring Boot
- 錯誤碼全域性處理(一)
- 異常錯誤資訊處理
- oracle sysaux表空間滿了處理辦法OracleUX
- oracle中undo表空間丟失處理方法Oracle
- Node.js處理資料IONode.js
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- Python錯誤處理Python
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- 一次ORACLE資料庫undo壞塊處理Oracle資料庫
- 達夢資料庫系統表空間資料檔案遷移過程資料庫
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- Oracle單個資料檔案損壞,在Rman命令裡設定表空間、資料檔案offline方式來恢復最方便Oracle
- ASP.NETCore統一處理404錯誤都有哪些方式?ASP.NETNetCore
- 刪除表空間時,遇到了ORA-14404錯誤
- 網站首頁系統發生錯誤怎麼處理網站