掉電資料塊損壞引起資料庫不能正常開啟

2021-06-19 21:31:14 字數 1740 閱讀 7719

昨天由於掉電乙個測試機上的oracle不能啟動了,後來經過折騰搞好了,記錄下雖然好記性不如賴筆頭

說明,資料庫沒有備份,非歸檔模式執行的

一般會出現

ora-01172: 執行緒1

的恢復停止在塊***

ora-01151:

如果需要

,請使用介質恢復以恢復塊和還原備份

當然我也嘗試了recover database 後alter database open,可是又出現了

ora-00607

、ora-00600

,600等錯誤,提示undo表空間甚什麼不一致等等,察看日誌,出現大量錯誤資訊

1、啟動資料庫到nomount狀態,建立pfile

2、修改pfile

修改init初始化引數,新增禁用段的內容,從而逃避資料庫的資料塊驗證,不過有些表不能訪問因為有壞塊

undo_management='manual'

*._corrupted_rollback_segments=("_syssmu1$","_syssmu2$","_syssmu3$","_syssmu3$","_syssmu4$","_syssmu5$","

_syssmu6$","_syssmu7$","

_syssmu8$","_syssmu9$","_syssmu10$","_syssmu11$","_syssmu12$","_syssmu13$","_syssmu14$","_syssmu15$","_syssmu16$","_syss

mu17$","_syssmu18$")

其中引數*._corrupted_rollback_segments的內容,我往上看了,有說快速啟動資料庫查詢select segment_name from dba_rollback_segs;這個時間很短,但是我沒試,我直接寫的這些

3、然後嘗試以pfile啟動資料庫,mount

4、恢復

recover dtabase

5、第五步會提示以backup controlfile選項恢復資料庫

recover database using backup controlfile until cancel

這部執行時間過長,我等了很久,手動取消的

6、alter database open resetlogs;

7、開啟資料庫之後盡快備份資料庫

下一步就是恢復這個庫了

1、建立spfile

有可能建立不成功,檢查許可權,或者檢視是否已經有spfile了

2、啟動到mount下

修改引數

log_archive_dest_1='location=i:\oracle\product\11.2.0\oradata\center\archivelog'

log_archive_dest_2='location=i:\oracle\product\11.2.0\oradata\center\log2'

log_archive_format = "archive_%t_%s_%r.arc"

log_archive_max_processes = 5

如果實在不行就將這些引數寫道pfile中,使用pfile執行資料庫

3、重新啟動資料庫

4、修改歸檔模式

alter database archivelog ;

另外資料庫啟動之後如果表還是不能訪問的話,可以使用

create table t1 as select * from t2,刪除重建恢復,不過丟資料了

世界清靜了!

資料庫損壞解決 資料庫已損壞,無法分配空間

問題描述 使用者將domino公升級完成之後,當使用者試圖訪問server上的郵箱庫時,碰到錯誤資訊 資料庫已損壞,無法分配空間 解答 這個錯誤資訊通常意味著資料庫損壞,在這種情況下,我們通常要用fixup compact updall這幾個命令來嘗試修復資料庫。1.fixup f 這樣的引數會強制...

SQLite資料庫損壞修復

the database disk image is malformed 進入到sqlite3操作指定的資料庫 或者直接 sqlite3 e item.db 操作此資料庫 sqlite databases main e item.db sqlite tables 顯示列表 檢查資料庫是否損壞 sql...

資料庫表損壞的修復

用命令列訪問出現 開始時使用myisamchk r o home test test user.myi進行修復,出現錯誤 myisamchk error myisam sort buffer size is too small。df發現是mysql temp目錄太小,此錶太大。更改my.cnf檔案修...