昨天由於掉電乙個測試機上的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檔案修...