如何理解Oracle SCN

來源:互聯網
上載者:User

系統檢查點scn(v$database(checkpoint_change#))

資料檔案檢查點(v$datafile(checkpoint_change#))

資料檔案終止scn(v$datafile(last_change#))

資料檔案中存放的檢查點

啟動scn (v$datafile_header(checkpoint_change#)

1、系統檢查點scn

當一個檢查點動作完成之後,Oracle就把系統檢查點的SCN儲存到控制檔案中。

select checkpoint_change# from v$database

2、資料檔案檢查點scn

當一個檢查點動作完成後,Oracle就把每個資料檔案的scn單獨存放在控制檔案中。

select name,checkpoint_change# from v$datafile

3、啟動scn

Oracle把這個檢查點的scn儲存在每個資料檔案的檔案頭中,這個值稱為啟動scn,

因為它用於在資料庫執行個體啟動時,檢查是否需要執行資料庫恢複。

select name,checkpoint_change# from v$datafile_header

4、終止scn

每個資料檔案的終止scn都儲存在控制檔案中。

select name,last_change# from v$datafile

在正常的資料庫操作過程中,所有正處於聯機讀寫入模式下的資料檔案的終止scn都為null.

5、在資料庫運行期間的scn值

在資料庫開啟並運行之後,控制檔案中的系統檢查點、控制檔案中的資料檔案檢查點scn和每個資料 檔案頭中的啟動scn都是相同的。控制檔案中的每個資料檔案的終止scn都為null.

在安全關閉資料庫的過程中,系統會執行一個檢查點動作,這時所有資料檔案的終止scn

都會設定成資料檔案頭中的那個啟動scn的值。在資料庫重新啟動的時候,

Oracle將檔案頭中的那個啟動scn與資料庫檔案檢查點scn進行比較,

如果這兩個值相互匹配,oracle接下來還要比較資料檔案頭中的啟動scn和控制檔案中資料檔案的終 止scn。如果這兩個值也一致,就意味著所有資料區塊多已經提交,所有資料庫的修改都沒有在關閉資料 庫的過程中丟失,因此這次啟動資料庫的過程也不需要任何恢複操作,此時資料庫就可以開啟了。當所 有的資料庫都開啟之後,儲存在控制檔案中的資料檔案終止scn的值再次被更改為null,這表示資料文 件已經開啟並能夠正常使用了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.