在線日誌和歸檔日誌對於同步的影響

在線日誌和歸檔日誌對於同步的影響
1、什麼是在線日誌(redo log)
在線日誌即數據庫目前正在使用的日誌組,它屬於一組日誌文件,不同的數據庫對日誌組的設置功能有所不同
有的是幾個日誌文件,有的每組日誌有可以設置爲幾個日誌成員,作爲冗餘差錯處理的依據
2、什麼是歸檔日誌(archive log)
歸檔是和在線相對的,歸檔即當在線日誌即將被重複寫入的時候數據庫將日誌進行一次複製,將在線日誌複製到歸檔目錄
之後對原在線日誌進行覆蓋寫,當然checkpoint也會在此刻生成,以保證歸檔日誌在今後進行分析時不存在不確定數據
3、什麼是SCN號(system change number)
SCN即系統跟蹤號,它是明確標識數據庫每一個操作的流水號,由時間戳轉換得來,無論是DML,還是checkpoint,還是其他管理操作,
數據庫都會生成一個唯一的序號,系統會根據這個序號來保證日誌文件、數據文件、控制文件的一致性,會根據每種文件中的SCN
號來判斷,是否需要回滾,是否需要寫入數據文件。每次checkpoint系統都會將上次SCN和下次SCN之間的日誌數據寫入DISK
之後將SCN+1更新爲下一個SCN,這樣通過對比數據文件的SCN和日誌文件的SCN我們就能夠判斷數據是否被正常寫入DISK了
4、在歸檔日誌中SCN號如何銜接
SCN號在系統中會一直增加,當數據庫處於非歸檔模式下,系統寫日誌時並不會判斷該日誌文件是否需要歸檔就可以重新寫入;
但是當數據庫處於歸檔模式,並且下一個歸檔日誌SCN號比目前的SCN號小的時候,日誌系統會將該在線日誌複製到歸檔目錄下,
之後再進行在線日誌的覆蓋寫入。
所以如果我們需要獲得的SCN號已經不在在線日誌中了,就需要我們到歸檔日誌中去查找,因爲日誌中都有記錄本日誌最小的SCN號
和最大的SCN號,所以通過瀏覽日誌頭,我們就可以確定該日誌文件是否是我們需要的還是繼續NEXT歸檔日誌文件
5、數據庫同步該如何處理歸檔日誌和在線日誌
對於同步我們一方面要讀在線日誌,同時對於數據已經被切換到歸檔日誌的情況也要進行歸檔日誌SCN號判斷,目的是找到每個
SCN對應的事務,並一一進行分析,不能讓任何需要同步的語句漏掉;對於一些中小企業,他們的日誌量不大,一般幾天才能產生
一個歸檔文件,同步程序是沒有影響的;對於金融、證券等行業客戶,由於每天的日誌量很大,通常日誌每天要產生很多歸檔日誌
在線日誌每天要被覆蓋幾次,那麼在獲取在線日誌的同時就要考慮SCN號的連續性,一定要保證在線日誌讀不到的日誌要去歸檔日
志中讀取,因爲數據庫一定會產生連續的SCN號的,這個就是我們同步操作監守的原則
6、加大在線日誌文件大小的影響
在線日誌增大會導致產生歸檔日誌文件減少,但是太大的文件對於數據庫系統來說是個比較大的負擔,同時不方便查找,所以定義
合適的在線日誌大小很重要,通常要考慮幾種情況
如果每天產生日誌量爲A
如果每天最大的交易產生日誌量B
共3個日誌組,每個日誌組文件大小爲C
那麼C的大小設計爲如下時將滿足日誌不會輕易被歸檔,也不會因爲設置的太大,系統維護困難。
B/2<C<(2A+B)/6)
這樣設計的話,基本上日誌切換不會太快,同時日誌大小又能控制在合理範圍。



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章