记一次数据库宕机处理
早上巡檢realsync時發現數據庫宕掉了,查看alert發現如下報錯:
Thu Dec 18 22:26:18 2014
KCF: read, write or open error, block=0x72d online=1
? ? ? ? file=1 '/oradata/****/temp01.dbf'
? ? ? ? error=27063 txt: 'IBM AIX RISC System/6000 Error: 28: No space left on device
Additional information: -1
Additional information: 131072'
Errors in file /u01/app/diag/rdbms/**/***/trace/sjjz_dbw1_418098.trc:
Errors in file /u01/app/diag/rdbms/**/**/trace/sjjz_dbw1_418098.trc:
ORA-63999: data file suffered media failure
ORA-01114: IO error writing block to file 1025 (block # 1837)
ORA-01110: data file 1025: '/oradata/**/temp01.dbf'
ORA-27063: number of bytes read/written is incorrect
IBM AIX RISC System/6000 Error: 28: No space left on device
Additional information: -1
Additional information: 131072
DBW1 (ospid: 418098): terminating the instance due to error 63999
從報錯No space left on device,懷疑系空間不足導致的,df查看果然/oradata文件系統剩余空間為0,占用率為100%;
進一步查看temp01.dbf數據庫文件屬性:
1 /oradata/sjjz/temp01.dbf 1 TEMP 30408704 3712 ONLINE 1 YES 34359721984 4194302 80 29360128 3584
autoextensible為yes,即可以自動對數據文件進行擴展,最大空間為34359721984,31GB。
當io寫入時發現已經沒有空間寫入了,instance abort!
在bing中查詢這個ora-63999,果然發現oracle 11g存在這個問題,是由一個隱藏的啟動參數決定的,
隱藏參數‘_datafile_write_errors_crash_instance’是在Oracle 11.2.0.1開始導入的,
主要的機能是在,數據文件(sysytem以外表空間)I/O讀寫錯誤被發現時,對實例的down進行管理。
Oracle 11.2.0.1 的初始值是
_datafile_write_errors_crash_instance = FALSE
數據文件(sysytem以外表空間)I/O讀寫錯誤被發現時,在歸檔模式下,發生錯誤的數據文件
被OFFLINE,實例不會down。
Oracle 11.2.0.2開始初始值變成TRUE
_datafile_write_errors_crash_instance = TRUE
因為I/O錯誤,數據文件讀寫失敗被發現時,ORA-63999錯誤出力,實例down。
后又查看一篇文章:http://blog.itpub.net/23718752/viewspace-1122411
這個作者說這是oracle11g一個bug,從11.2.0.2就解決了,但是我這個系統是oracle 11.2.0.4,按照文章作者的說明從11.2.0.2在歸檔模式下不會出現instance abort,我這個數據庫是非歸檔模式的,這個就需要驗證下了,有時間在驗證下,到時把結果在補充上來。
轉載于:https://blog.51cto.com/vbird210/1591809
總結
以上是生活随笔為你收集整理的记一次数据库宕机处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7+eclipse用maven构建
- 下一篇: Nginx 模块开发(1)—— 一个稍稍