oracle不同程序觸發的條件

2021-08-17 11:57:22 字數 2365 閱讀 6169

rolling forward(前滾)

oracle啟動例項並載入資料庫,然後通過online redologs中的重做日誌,重現例項崩潰前對資料庫的修改操作。在恢復過程中對於已經提交的事務,但尚未寫入資料檔案的那部分資料全部寫入資料檔案.

rolling back(回滾)

rolling forward之後,雖然已經提交的修改操作更改的資料都已經被寫入資料檔案,但在例項崩潰時,部分未提交的事務操作的資料也被寫入到資料檔案,這些事務必須被撤銷.

觸發lgwr程序的條件有: 

1. 使用者提交 

2. 有1/3重做日誌緩衝區未被寫入磁碟 

3. 有大於1m的重做日誌緩衝區未被寫入磁碟 

4. 3秒超時 

5. dbwr 需要寫入的資料的scn大於lgwr記錄的scn,dbwr 觸發lgwr寫入。 

觸發checkpoint(檢查點) 條件有很多,比如

:1. 通過正常事務處理或者立即選項關閉例程時

(shutdown immediate

或者shutdown normal

), 2. 當通過設定初始化引數:

log_checkpoint_interval

,log_checkpoint_timeout 

,fast_start_io_target 

強制時;

3. 當資料庫管理員手動請求時:

alter system checkpoint

;alter tablespace ... offline;

4. 每次日誌切換時

;alter system switch logfile

注意:

1.alter system switch logfile

也將觸發完全檢查點的發生。

2. alter database datafile ... offline

不會觸發檢查點程序

。如果是單純的

offline datafile

,那麼將不會觸發檔案檢查點,只有針對

offline tablespace

的時候才會觸發檔案檢查點,這也是為什麼

online datafile

需要media recovery

而online tablespace

不需要。

對於表空間的

offline

後再online

這種情況,最好做個強制的

checkpoint

比較好。

關於offline datafile 和tablespace 的區別也可以參考我的blog:

alter database 與 alter tablespace offline的區別

以上的觸發條件將觸發

完全檢查點

,促使dbwr 

將檢查點時刻前

所有的髒資料寫入資料檔案

。另外,

一般正常執行期間的資料庫不會產生完全檢查點

。下面很多事件將導致增量檢查點,比如:

1. 在聯機熱備份資料檔案前,要求該資料檔案中被修改的塊從

db_buffer 

寫入資料檔案中。所以,發出這樣的命令:

alter tablespace tablespace_name bigen backup & end backup; 

也將觸發和該錶空間的資料檔案有關的區域性檢查點;

2. 另外,

alter tablespace tablespace_name read only;

alter tablespace tablespace_name offline normal;

等命令都會觸發增量檢查點

檢查點發生之後資料庫的資料檔案、控制檔案處於一致狀態的含義是不需要進行

介質恢復,只表示資料檔案頭一致,但是並不表示資料檔案內容一致,

因為資料檔案內容可能在沒有發生檢查點的其它情況下的

dbwr

寫資料檔案,這樣資料檔案內容就不一致,若掉電需要進行崩潰恢復。

觸發dbwr程序的條件有:

1.dbwr超時,大約3秒 

2.系統中沒有多餘的空緩衝區來存放資料 

3.ckpt 程序觸發dbwr

4.free buffer waits  40% 觸發 dbwr吧lruw髒塊寫入磁碟

5.關機會觸發dbwr寫

6.alter system checkpoint  觸發dbwr寫

7.redo 日誌切換  觸發dbwr寫

8. 表空間 offline /online  觸發dbwr寫

相同程式不同程序下實現資料共享

格式 pragma comment linker,section mydata,rws pragma data seg mydata int g ipronum 1 pragma data seg 說明 以全域性變數來定義,即函體之外 必需初始化,否則編譯器會把未初始化的變數放到.bss段中 sec...

Oracle lgwr程序及觸發條件

lgwr 主要的記憶體元件是 redo log buffer,另外還涉及 redo logfile 它是物理元件 redo 是我們記錄了資料庫提供的服務的所有交易歷史,包括買賣和退貨 也就是 redo 和undo,undo 其實也是在 redo buffer 以redo 記錄形式存在 只是它的日誌關...

不同進製間的轉換

1 其他進製到十進位制 係數 就是每乙個位上的數值 基數 x進製的基數就是x 權 對每乙個位上的資料,從右,並且從0開始編號,對應的編號就是該資料的權。結果 係數 基數 權次冪之和。2 十進位製到其他進製 除基取餘,直到商為0,餘數反轉。3 進製轉換的快速轉換法 a 十進位制和二進位制間的轉換 84...