實驗證明由於裝置IO不繁忙,發起歸檔後因此要等一會兒才會更新三個檢查點SCN
insert into test.t3 values(111);
select checkpoint_change#,current_scn from v$database;
commit;
select checkpoint_change#,current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
alter system archive log current;
select checkpoint_change#,current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
select * from v$log;
--由於裝置IO不繁忙,因此要等一會兒才會更新三個檢查點SCN
下面是實驗證明:
SYS@PROD>alter system archive log current;
System altered.
SYS@PROD>select checkpoint_change#,current_scn from v$database;
CHECKPOINT_CHANGE# CURRENT_SCN
------------------ -----------
747855 753850
SYS@PROD>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
SYS@PROD>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
SYS@PROD>select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIV
---------- ---------- ---------- ---------- ---------- ------
STATUS FIRST_CHANGE# FIRST_TIME
-------------------------------- ------------- ------------
1 1 31 104857600 4 YES
ACTIVE 747853 31-JAN-14
2 1 32 104857600 4 NO
CURRENT 753845 31-JAN-14
3 1 30 104857600 4 YES
INACTIVE 747801 31-JAN-14
SYS@PROD>select checkpoint_change#,current_scn from v$database;
CHECKPOINT_CHANGE# CURRENT_SCN
------------------ -----------
747855 753892
SYS@PROD>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
SYS@PROD>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
--上面是立即查詢三個檢查點SCN還沒變化
--下面是過了幾分鐘才發生了變化,同步成為753845,與current的group2日誌組的low scn也就是上一個current group1的high scn相同,見log_history的最後一行的next_change#
SYS@PROD>select recid,sequence#,first_change#,next_change# from v$log_history;
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
1 36 597766 598183
2 1 598449 638186
3 2 638186 638842
4 3 638842 638854
5 4 638854 638937
6 5 638937 638948
7 6 638948 639692
8 7 639692 639694
9 8 639694 639697
10 9 639697 639699
11 10 639699 639702
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
12 11 639702 639970
13 12 639970 639972
14 13 639972 639975
15 14 639975 639977
16 15 639977 639979
17 16 639979 641997
18 17 641997 644653
19 18 644653 644655
20 19 644655 644658
21 1 644659 648896
22 2 648896 648898
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
23 3 648898 648902
24 4 648902 648904
25 1 648905 669544
26 2 669544 670151
27 3 670151 670186
28 4 670186 673454
29 5 673454 673459
30 6 673459 711108
31 7 711108 714855
32 8 714855 714857
33 9 714857 717474
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
34 10 717474 717476
35 11 717476 717846
36 12 717846 717848
37 13 717848 739376
38 14 739376 739642
39 15 739642 739718
40 16 739718 739793
41 17 739793 739803
42 18 739803 739820
43 19 739820 740496
44 20 740496 740517
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
45 21 740517 740562
46 22 740562 740682
47 23 740682 747402
48 24 747402 747546
49 25 747546 747593
50 26 747593 747623
51 27 747623 747645
52 28 747645 747763
53 29 747763 747801
54 30 747801 747853
55 31 747853 753845
55 rows selected.
SYS@PROD>select checkpoint_change#,current_scn from v$database;
CHECKPOINT_CHANGE# CURRENT_SCN
------------------ -----------
753845 754238
SYS@PROD>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
753845
753845
753845
753845
753845
753845
753845
753845
753845
9 rows selected.
SYS@PROD>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
753845
753845
753845
753845
753845
753845
753845
753845
753845
9 rows selected.
alter system checkpoint;
--如果手工觸發檢查點,發生完全檢查點,將會寫出所有的髒塊,完全檢查點發生時,將不能有新的髒塊產生,直到完全檢查點完成,完全檢查點也將會在資料檔案頭,控制檔案中資料庫資訊節,資料檔案節中寫入當前系統SCN,而且是立即更新雖然比current_scn小一點,但是原理是正確的,因為oracle隨時都有後臺程式在發生,查詢是有時間差的
select checkpoint_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
select checkpoint_change#,current_scn from v$database;
select * from v$log;
select checkpoint_change#,current_scn from v$database;
commit;
select checkpoint_change#,current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
alter system archive log current;
select checkpoint_change#,current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
select * from v$log;
--由於裝置IO不繁忙,因此要等一會兒才會更新三個檢查點SCN
下面是實驗證明:
SYS@PROD>alter system archive log current;
System altered.
SYS@PROD>select checkpoint_change#,current_scn from v$database;
CHECKPOINT_CHANGE# CURRENT_SCN
------------------ -----------
747855 753850
SYS@PROD>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
SYS@PROD>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
SYS@PROD>select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIV
---------- ---------- ---------- ---------- ---------- ------
STATUS FIRST_CHANGE# FIRST_TIME
-------------------------------- ------------- ------------
1 1 31 104857600 4 YES
ACTIVE 747853 31-JAN-14
2 1 32 104857600 4 NO
CURRENT 753845 31-JAN-14
3 1 30 104857600 4 YES
INACTIVE 747801 31-JAN-14
SYS@PROD>select checkpoint_change#,current_scn from v$database;
CHECKPOINT_CHANGE# CURRENT_SCN
------------------ -----------
747855 753892
SYS@PROD>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
SYS@PROD>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
747855
747855
747855
747855
747855
747855
747855
747855
747855
9 rows selected.
--上面是立即查詢三個檢查點SCN還沒變化
--下面是過了幾分鐘才發生了變化,同步成為753845,與current的group2日誌組的low scn也就是上一個current group1的high scn相同,見log_history的最後一行的next_change#
SYS@PROD>select recid,sequence#,first_change#,next_change# from v$log_history;
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
1 36 597766 598183
2 1 598449 638186
3 2 638186 638842
4 3 638842 638854
5 4 638854 638937
6 5 638937 638948
7 6 638948 639692
8 7 639692 639694
9 8 639694 639697
10 9 639697 639699
11 10 639699 639702
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
12 11 639702 639970
13 12 639970 639972
14 13 639972 639975
15 14 639975 639977
16 15 639977 639979
17 16 639979 641997
18 17 641997 644653
19 18 644653 644655
20 19 644655 644658
21 1 644659 648896
22 2 648896 648898
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
23 3 648898 648902
24 4 648902 648904
25 1 648905 669544
26 2 669544 670151
27 3 670151 670186
28 4 670186 673454
29 5 673454 673459
30 6 673459 711108
31 7 711108 714855
32 8 714855 714857
33 9 714857 717474
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
34 10 717474 717476
35 11 717476 717846
36 12 717846 717848
37 13 717848 739376
38 14 739376 739642
39 15 739642 739718
40 16 739718 739793
41 17 739793 739803
42 18 739803 739820
43 19 739820 740496
44 20 740496 740517
RECID SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ---------- ------------- ------------
45 21 740517 740562
46 22 740562 740682
47 23 740682 747402
48 24 747402 747546
49 25 747546 747593
50 26 747593 747623
51 27 747623 747645
52 28 747645 747763
53 29 747763 747801
54 30 747801 747853
55 31 747853 753845
55 rows selected.
SYS@PROD>select checkpoint_change#,current_scn from v$database;
CHECKPOINT_CHANGE# CURRENT_SCN
------------------ -----------
753845 754238
SYS@PROD>select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
753845
753845
753845
753845
753845
753845
753845
753845
753845
9 rows selected.
SYS@PROD>select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
753845
753845
753845
753845
753845
753845
753845
753845
753845
9 rows selected.
alter system checkpoint;
--如果手工觸發檢查點,發生完全檢查點,將會寫出所有的髒塊,完全檢查點發生時,將不能有新的髒塊產生,直到完全檢查點完成,完全檢查點也將會在資料檔案頭,控制檔案中資料庫資訊節,資料檔案節中寫入當前系統SCN,而且是立即更新雖然比current_scn小一點,但是原理是正確的,因為oracle隨時都有後臺程式在發生,查詢是有時間差的
select checkpoint_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
select checkpoint_change#,current_scn from v$database;
select * from v$log;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26521853/viewspace-1083882/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢查點SCN在事務發生後以及發生檢查點和歸檔操作後的變化
- 關於資料檔案頭的檢查點SCN
- Oracle資料庫啟動過程驗證檢查點SCNOracle資料庫
- 關於資料檔案頭的檢查點SCN知識
- Gartner:Windows裝置銷售明年才會反彈Windows
- 證監會檢查網際網路股權融資:私募請淡定 公募還要等
- Oracle 檢查點涉及的SCNOracle
- 深入淺出-檢查點scn
- 檢查點機制與scn
- 基於微軟Teams的小型會議室裝置體驗微軟
- AR一經與我們接觸良久 蘋果會不會出AR裝置?蘋果
- Oracle SCN機制解析 (SCN, checkpoint檢查點) - finalOracle
- 那些操作會發生區域性檢查點(Partial checkpoint)!
- IOS 特定於裝置的開發:檢查裝置接近度和電池狀態iOS
- 檢查點和oracle資料庫的恢復(一)SCNOracle資料庫
- 特斯拉會不會成為下一個蘋果?蘋果
- 重建控制檔案, 資料檔案檢查點SCN到底來自哪裡?
- 做實驗驗證MongoDB刪除文件後索引是否會自動刪除MongoDB索引
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- 《OFF學-會玩,才會成功》:遊玩有助於工作
- 【體系結構】SCN與checkpoint(檢查點)
- 6年的程式設計師還不會寫委託很嚴重?不會封裝才叫可怕!程式設計師封裝
- 你是否 STL 不會用一點?
- 單機遊戲會和單機一起消失嗎?——由谷歌Stadia談起遊戲谷歌
- Android開發掌握什麼技術才不會被淘汰Android
- Service使用referred和avileable固定會話到一個節點,當機後會切換到另一個節點會話
- 使用 EMQX Cloud 實現物聯網裝置一機一密驗證MQCloud
- 關於一個歸檔問題?
- dataguard 歸檔丟失,備庫基於SCN恢復
- JS實現的一個驗證碼,可以在前端驗證後在提交actionJS前端
- 傳正待上市的Snap在開發無人機,它會不會是另一個GoPro?無人機Go
- PLSQL方式更新LOB不會被觸發器捕獲SQL觸發器
- 實戰分析一個執行起來會卡死的Go程式Go
- vue中動態修改陣列的展現(資料更新,檢視不更新驗證)Vue陣列
- RAC環境一個例項何時會歸檔另一個例項的日誌
- 我是一個不會運維的後端程式設計師運維後端程式設計師
- 一個事務插入,另外一個事務更新操作,是否會更新成功?
- 法國:5G網路不會排除任何裝置廠商