快速檢查資料庫一致性
檢查一:檢查點時間和Fuzziness
目的:確認資料庫檔案都恢復到預期時間點(PIT )並且他們是一致性(FUZZY=NO )。
SQL> select fuzzy, status, error, recover, checkpoint_change#, checkpoint_time, count(*) from v$datafile_header group by fuzzy, status, error, recover, checkpoint_change#, checkpoint_time ;
FUZ STATUS ERROR REC CHECKPOINT_CHANGE# CHECKPOINT_TIME COUNT(*)
--- ------- --------------- --- ------------------ -------------------- ----------
NO ONLINE 5311260 31-AUG-2011 23:10:14 6
YES ONLINE 5311260 31-AUG-2011 23:10:14 1
a
)確認
checkpoint_time / checkpoint_change
#與預期的
UNTIL TIME / SCN
一致。如果不一致且有更多可用的歸檔日誌,請進一步恢復資料庫。
b )如果一些資料檔案FUZZY=YES,這意味著我們進一步的恢復
檢查二:資料檔案狀態
目的:確認需要recover 的檔案不是offline 狀態
SQL> select status, enabled, count(*) from v$datafile group by status, enabled ;
STATUS ENABLED COUNT(*)
------- ---------- ----------
SYSTEM DISABLED 1
ONLINE READ WRITE 4
RECOVER DISABLED 2
檢查三:Fuzzy
目的: Fuzzy 檢查
有時,對於所有恢復的資料檔案,可以看到 Fuzzy = NO 和相同的 checkpoint_change #,但 OPEN RESETLOGS 仍然失敗。例如以下資訊:
SQL> select fuzzy, status, error, recover, checkpoint_change#, checkpoint_time, count(*) from v$datafile_header group by fuzzy, status, error, recover, checkpoint_change#, checkpoint_time ;
FUZ STATUS ERROR REC CHECKPOINT_CHANGE# CHECKPOINT_TIME COUNT(*)
--- ------- --------------- --- ------------------ -------------------- ----------
NO ONLINE 5311260 31-AUG-2011 23:10:14 7
SQL> ALTER DATABASE OPEN RESETLOGS ;
ORA-01194: file 4 needs more recovery to be consistent
ORA-01110: data file 3: '/<path>/undotbs02.dbf'
因此我們要執行附加的fuzzy檢查:
那什麼情形下可以透過檢查?
a )以上查詢沒有返回結果
b) Min_PIT_SCN 的返回值小於 Checkpoint_Change#
真實案例如下:
select hxfil file#, substr(hxfnm, 1, 50) name, fhscn checkpoint_change#, fhafs Absolute_Fuzzy_SCN, max(fhafs) over () Min_PIT_SCN from x$kcvfh where fhafs!=0 ;
圖4-7
查詢最小一致性scn ,recover 即可解決
recover database untile scn 82419715478
總結
以上操作都檢查完畢後一般就可以順利開啟資料庫,不過在開啟過程中我們需要關注資料庫alert 日誌,確認沒有額外的報錯,比如臨時表空間問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23825935/viewspace-2717299/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN備份恢復典型案例——快速檢查資料庫一致性資料庫
- MySQL資料庫健康檢查--MySQL巡檢MySql資料庫
- MSSQL資料庫健康檢查--SQL Server巡檢SQL資料庫Server
- 時序資料庫的秘密 —— 快速檢索資料庫
- 如何使用命令列工具檢查資料庫?命令列資料庫
- Redis與資料庫資料一致性Redis資料庫
- openGauss 檢查時間一致性
- 實現 .Net 7 下的資料庫定時檢查資料庫
- openguass 3.1.0 資料庫啟動,關閉,狀態檢查資料庫
- 資料庫檢視資料庫
- 資料庫-檢視資料庫
- Oracle 檢查當前資料庫CPU和PSU補丁資訊Oracle資料庫
- oracle資料庫sql查詢檢視第二次查詢很慢Oracle資料庫SQL
- 快速掌握 MongoDB 資料庫MongoDB資料庫
- check_postgres指令碼集檢查資料庫健康情況指令碼資料庫
- 快取與資料庫一致性快取資料庫
- 2.12 資料庫資料字典檢視資料庫
- Redis和資料庫的資料一致性問題Redis資料庫
- Jemter查詢資料庫資料庫
- 求助:資料庫查詢資料庫
- ThinkPHP 資料庫查詢PHP資料庫
- 資料庫排序查詢資料庫排序
- 查詢資料庫大小資料庫
- [20180306]資料塊檢查和.txt
- 保證Redis和資料庫資料一致性的方法Redis資料庫
- 資料庫與快取資料一致性解決方案資料庫快取
- 快取與資料庫的一致性快取資料庫
- 如何實現資料庫讀一致性資料庫
- 聊聊雲原生資料庫的一致性資料庫
- 資料庫的物化檢視資料庫
- openGausspostgreSQL資料庫效能檢視SQL資料庫
- SQL Server資料庫巡檢SQLServer資料庫
- 資料庫檢視的作用資料庫
- 資料庫檢視的使用資料庫
- MongoDB資料庫中查詢資料(下)MongoDB資料庫
- Android studio增刪改查尚未全部完成時如何檢視資料庫Android資料庫
- 【PDB】Oracle資料庫如何檢查和設定pdb最大儲存大小Oracle資料庫
- 資料庫查詢語句資料庫