国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

關(guān)于數(shù)據(jù)文件頭的檢查點SCN.

2024-07-21 02:40:53
字體:
供稿:網(wǎng)友
在控制文件中存放著數(shù)據(jù)文件的信息,這些信息包含了一些經(jīng)常改變的屬性,比如說數(shù)據(jù)文件的“結(jié)束SCN”.
這些東西在數(shù)據(jù)庫啟動時,對于驗證數(shù)據(jù)庫文件的完整性具有很重要的意義。
在ITpub上找到了一篇文章,很好,轉(zhuǎn)過來了,并作了一些測試。

原文章:http://www.itpub.net/showthread.php?s=&postid=2891734#post2891734
1、系統(tǒng)檢查點scn
當一個檢查點動作完成后,Oracle就把系統(tǒng)檢查點的SCN存儲到控制文件中。
select checkpoint_change# from v$database
2、數(shù)據(jù)文件檢查點scn
當一個檢查點動作完成后,Oracle就把每個數(shù)據(jù)文件的scn單獨存放在控制文件中。
select name,checkpoint_change# from v$datafile
3、啟動scn
Oracle把這個檢查點的scn存儲在每個數(shù)據(jù)文件的文件頭中,這個值稱為啟動scn,因為它用于在數(shù)據(jù)庫實例啟動時,檢查是否需要執(zhí)行數(shù)據(jù)庫恢復(fù)。
select name,checkpoint_change# from v$datafile_header
4、終止scn
每個數(shù)據(jù)文件的終止scn都存儲在控制文件中。
select name,last_change# from v$datafile
在正常的數(shù)據(jù)庫操作過程中,所有正處于聯(lián)機讀寫模式下的數(shù)據(jù)文件的終止scn都為null.
5、在數(shù)據(jù)庫運行期間的scn值
在數(shù)據(jù)庫打開并運行之后,控制文件中的系統(tǒng)檢查點、控制文件中的數(shù)據(jù)文件檢查點scn和每個數(shù)據(jù)文件頭中的啟動scn都是相同的。控制文件中的每個數(shù)據(jù)文件的終止scn都為null.
在安全關(guān)閉數(shù)據(jù)庫的過程中,系統(tǒng)會執(zhí)行一個檢查點動作,這時所有數(shù)據(jù)文件的終止scn都會設(shè)置成數(shù)據(jù)文件頭中的那個啟動scn的值。在數(shù)據(jù)庫重新啟動的時候,Oracle將文件頭中的那個啟動scn與數(shù)據(jù)庫文件檢查點scn進行比較,假如這兩個值相互匹配,oracle接下來還要比較數(shù)據(jù)文件頭中的啟動 scn和控制文件中數(shù)據(jù)文件的終止scn。假如這兩個值也一致,就意味著所有數(shù)據(jù)塊多已經(jīng)提交,所有對數(shù)據(jù)庫的修改都沒有在關(guān)閉數(shù)據(jù)庫的過程中丟失,因此這次啟動數(shù)據(jù)庫的過程也不需要任何恢復(fù)操作,此時數(shù)據(jù)庫就可以打開了。當所有的數(shù)據(jù)庫都打開之后,存儲在控制文件中的數(shù)據(jù)文件終止scn的值再次被更改為 null,這表示數(shù)據(jù)文件已經(jīng)打開并能夠正常使用了。



我做的測試如下:

A.數(shù)據(jù)庫打開時,使用mount參數(shù),不把數(shù)據(jù)庫open.

系統(tǒng)檢查點scn
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
           1775875

控制文件中的數(shù)據(jù)文件檢查點scn
SQL> select name,checkpoint_change# from v$datafile ;
NAME                                                         CHECKPOINT_CHANGE#
-------------------------------------            ------------------
/opt/oracle/oradata/dbora817/system01.dbf   1775875
/opt/oracle/oradata/dbora817/tools01.dbf      1775875
/opt/oracle/oradata/dbora817/rbs01.dbf         1775875
/opt/oracle/oradata/dbora817/temp01.dbf      1775875
/opt/oracle/oradata/dbora817/users01.dbf      1775875
/opt/oracle/oradata/dbora817/indx01.dbf        1775875
/opt/oracle/oradata/dbora817/drsys01.dbf      1775875
/opt/oracle/oradata/dbora817/perfstat.dbf      1775875

數(shù)據(jù)文件的文件頭中的啟動scn
SQL> select name,checkpoint_change# from v$datafile_header;
NAME                                                        CHECKPOINT_CHANGE#
-------------------------------------            ------------------
/opt/oracle/oradata/dbora817/system01.dbf   1775875
/opt/oracle/oradata/dbora817/tools01.dbf      1775875
/opt/oracle/oradata/dbora817/rbs01.dbf         1775875
/opt/oracle/oradata/dbora817/temp01.dbf      1775875
/opt/oracle/oradata/dbora817/users01.dbf      1775875
/opt/oracle/oradata/dbora817/indx01.dbf        1775875
/opt/oracle/oradata/dbora817/drsys01.dbf      1775875
/opt/oracle/oradata/dbora817/perfstat.dbf      1775875

控制文件中的數(shù)據(jù)文件終止scn
SQL> select name,last_change# from v$datafile;
NAME                                                        LAST_CHANGE#
-------------------------------------            ------------------
/opt/oracle/oradata/dbora817/system01.dbf   1775875
/opt/oracle/oradata/dbora817/tools01.dbf      1775875
/opt/oracle/oradata/dbora817/rbs01.dbf         1775875
/opt/oracle/oradata/dbora817/temp01.dbf      1775875
/opt/oracle/oradata/dbora817/users01.dbf      1775875
/opt/oracle/oradata/dbora817/indx01.dbf        1775875
/opt/oracle/oradata/dbora817/drsys01.dbf      1775875
/opt/oracle/oradata/dbora817/perfstat.dbf      1775875

這些個結(jié)束SCN都是跟啟動SCN是一樣的,這樣,當數(shù)據(jù)庫open的時候就可以不用recover了。


B.把數(shù)據(jù)庫打開open

SQL> alter database open;
Database altered.

系統(tǒng)檢查點scn 變?yōu)椋?775876,比原來增加了1。
SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
           1775876

控制文件中的數(shù)據(jù)文件檢查點scn和數(shù)據(jù)文件的文件頭中的啟動scn也都被修改成為1775876,
各自增加了1。
然后察看

控制文件中的數(shù)據(jù)文件終止scn,發(fā)現(xiàn)都是NULL.

SQL> select name,last_change# from v$datafile;
NAME                                                        LAST_CHANGE#
-------------------------------------            ------------------
/opt/oracle/oradata/dbora817/system01.dbf 
/opt/oracle/oradata/dbora817/tools01.dbf     
/opt/oracle/oradata/dbora817/rbs01.dbf       
/opt/oracle/oradata/dbora817/temp01.dbf    
/opt/oracle/oradata/dbora817/users01.dbf    
/opt/oracle/oradata/dbora817/indx01.dbf       
/opt/oracle/oradata/dbora817/drsys01.dbf     
/opt/oracle/oradata/dbora817/perfstat.dbf    


C.對系統(tǒng)觸發(fā)檢查點

SQL> alter system checkpoint;

System altered.

SQL> select checkpoint_change# from v$database;

CHECKPOINT_CHANGE#
------------------
           1775917

系統(tǒng)檢查點scn 發(fā)生變化,增加了1。





發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 政和县| 武汉市| 平果县| 诸城市| 东兰县| 济源市| 崇左市| 安康市| 石渠县| 板桥市| 博客| 普兰店市| 建昌县| 扶余县| 墨脱县| 新营市| 祁连县| 乳源| 涟水县| 武义县| 英超| 文成县| 汕尾市| 周至县| 德清县| 田林县| 温宿县| 隆回县| 陇南市| 南平市| 波密县| 南华县| 彩票| 梁山县| 鄂尔多斯市| 莲花县| 池州市| 白山市| 化州市| 武安市| 五家渠市|