Oracle SCN -system change number 學習筆記

來源:互聯網
上載者:User

Oracle SCN -system change number 學習筆記

SCN是Oracle的內部時鐘,用來反映資料庫中所有變化,在運行過程中不斷更新。SCN種類包括:

(1)系統當前SCN

(2)Checkpoint SCN(注意只會隨著檢查點的發生而被更新:但是在熱備模式下,checkpoint時該SCN不變)

a.Stop SCN(儲存在控制檔案中,又稱END SCN)

執行個體正常運行時STOP SCN為空白,當執行個體正常關閉時,oracle會在控制檔案中記錄下每個資料檔案對應的STOP SCN號,用來再啟動時檢查控制檔案中所有資料檔案對應的STOP SCN號是否都存在並且一致,是則表示上一次執行個體關閉正常,所有資料檔案對應的快取資料都已同步到磁碟,故無需進行redo/undo執行個體恢複。否則若發現控制檔案中有某資料檔案對應的STOP SCN號為空白,則表明上次執行個體關閉非正常,此次啟動要進行執行個體恢複。因此STOP SCN號用來判斷下次啟動時是否需要進行執行個體恢複。(如果系統斷電,那麼控制檔案中的STOP SCN還是為空白)

SQL>select name,last_change# from v$datafile;    --online的資料檔案對應的last_change#都是空,offline的資料檔案對應的last_change#有值

SQL>shutdown immediate;

SQL>startup mount;

SQL>select name,last_change# from v$datafile;

如下樣本:

首先通過select name,last_change# from v$datafile;查詢到test01.dbf檔案存在SCN號,是因為我們將該資料檔案offline了,當我們online該資料檔案時,報出該資料檔案需要介質恢複,直接recover該資料檔案即可。重新online該資料檔案就不會有問題。重新執行select name,last_change# from v$datafile;時,該資料檔案對應的SCN號就沒有了。

**********************************************************************************************************************

START SCN是我們判斷是否需要介質恢複的唯一依據,介質恢複就是更新SCN號(關機時,控制檔案中的stop SCN號就是copy的資料檔案中start SCN號)。

***********************************************************************************************************************

****************************************************************************************************************

總結:1,SCN分兩大類:(1)系統當前SCN,用於記錄使用者對資料庫的所有操作;(2)checkpoint SCN,只會隨著檢查點的重新整理而被更新。

2,checkpoint SCN又分為4小類,主要使用者資料庫開機時判斷是否需要介質恢複和執行個體恢複。

3,首先判斷start SCN號用於判斷開機時所有資料檔案的一致性;stop SCN號用於判斷是否順利關機(執行個體恢複);datafile checkpoint SCN號用於判斷資料檔案和控制檔案的一致性;system checkpoint SCN用於判斷控制檔案自身的一致性。

補充:資料庫open階段,除了檢查SCN外,還會檢查一個資料,即檢查點計數(Checkpoint CNT),而且這個檢查點計數要第一個檢查。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.