oracle scn与数据恢复,[Oracle] SCN与数据恢复的关系
Oracle內部主要存在以下四種SCN
1.系統檢查點(system checkpoint)SCN
每當一個檢查點完成時,Oracle就把該檢查點對應的SCN記錄到控制文件中,可以用以下語句查看當前數據庫
的檢查點SCN:
select CHECKPOINT_CHANGE# from v$database;
CHECKPOINT_CHANGE#
------------------
6627441168
2.數據文件頭SCN(數據文件的啟動SCN)
該SCN記錄在每個數據文件頭中,正常情況下,該SCN應該和記錄在控制文件中的檢查點SCN一致,可以用以下語句查看數據文件頭的SCN:
select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1???????? 6627448310
2???????? 6627448310
3???????? 6627448310
4???????? 6627448310
5???????? 6627448310
3.數據文件的檢查點SCN和終止SCN
這兩個SCN不是記錄在數據文件中,而是記錄在控制文件中,可以通過以下語句查看:
select CHECKPOINT_CHANGE#,LAST_CHANGE# from v$datafile;
CHECKPOINT_CHANGE# LAST_CHANGE#
------------------ ------------
6627448310
6627448310
6627448310
6627448310
6627448310
那么Oracle是如何根據這些不同的SCN來判斷某個數據文件是否需要恢復以及恢復類型呢?可以用下面的偽代碼描述:
if (數據文件檢查點SCN
then "控制文件來自備份,需要進行不完全恢復,恢復之后得用resetlog方式打開”
else if (數據文件檢查點SCN > 數據文件頭SCN)
then "數據文件來自備份,需要log進行完全或不完全恢復"
else if (數據文件檢查點SCN = 數據文件頭SCN)
then "數據庫能正常open,還需要判斷是否需要實例恢復"
if (數據文件終止SCN = 數據文件檢查點SCN)
then "數據庫打開時不需要實例恢復“
else if (數據文件終止SCN = NULL)
then "數據庫需要實例恢復"
總結
以上是生活随笔為你收集整理的oracle scn与数据恢复,[Oracle] SCN与数据恢复的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 外卖和快递行业数据_下周一起,整治全面启
- 下一篇: 24个笔画顺序表_小学一年级语文26个汉