編者按:使用過(guò)數(shù)據(jù)保護(hù)的人應(yīng)該熟悉備用重做日志。在配置了備用重做日志的備用數(shù)據(jù)庫(kù)中,可以實(shí)時(shí)應(yīng)用日志,并且備用重做日志可以為從主庫(kù)傳輸?shù)娜罩咎砑右粚影踩Wo(hù)。然而,在許多生產(chǎn)環(huán)境中,每個(gè)人都很少使用備用重做日志。本文將深入分析備用重做日志的前世、工作機(jī)制和一些最佳實(shí)踐。
本文翻譯自BPeaslandDBA的博客。原文鏈接:https://community.oracle.com/docs/DOC-1007036
正式介紹
在生產(chǎn)環(huán)境中,我發(fā)現(xiàn)大部分備用重做日志都沒(méi)有配置在Data Guard的備用上,這讓我很驚訝。我認(rèn)為配置備用重做日志是非常必要的。在我的環(huán)境中,我總是配置備用重做日志。當(dāng)然,配置備用重做日志為DBA增加了一些需要維護(hù)的東西,但完全值得,而且備用重做日志配置投入使用后,后期維護(hù)基本不需要花費(fèi)太多精力。
我覺(jué)得大部分人不使用SRL的原因是不理解SRL能帶來(lái)的好處。本文將詳細(xì)解釋SRLs的優(yōu)勢(shì)、創(chuàng)建和維護(hù)方法以及最佳實(shí)踐。
為什么要用SRLs?
如果備用配置了最大保護(hù)模式,則必須配置備用重做日志。
幾乎實(shí)時(shí)傳輸?shù)娜罩居蒘RLs及時(shí)存儲(chǔ)和應(yīng)用。當(dāng)然,如果是最大性能模式,配置SRLs也會(huì)有很多好處。為了讓讀者更好的理解這一點(diǎn),首先我們來(lái)看看在沒(méi)有SRL的情況下,日志傳輸是如何進(jìn)行的。
在基于日志的異步傳輸?shù)那闆r下,很多用戶都有這樣的誤解。
認(rèn)為只有ARCn進(jìn)程可以將主庫(kù)的日志轉(zhuǎn)移到備用庫(kù)。這個(gè)觀點(diǎn)在早期版本中是正確的。
但是,從10g甚至9i開(kāi)始,只有在沒(méi)有配置SRLs的情況下,ARCn進(jìn)程才會(huì)傳輸日志。如果配置了SRLs,12c之前由LNS進(jìn)程傳輸,12c之后由NSAn進(jìn)程完成傳輸日志的任務(wù)。NSAn的傳輸幾乎是實(shí)時(shí)的。
如果未配置SRLs,日志傳輸必須等待主庫(kù)中的日志切換。如果主庫(kù)中的日志切換每小時(shí)發(fā)生一次,可能會(huì)有一個(gè)小時(shí)的數(shù)據(jù)丟失風(fēng)險(xiǎn)。如果主庫(kù)中的日志切換頻率越低,數(shù)據(jù)丟失的概率就越高。
當(dāng)然,這種情況可以通過(guò)設(shè)置主庫(kù)的初始化參數(shù)ARCHIVE_LAG_TARGET來(lái)改善。如果數(shù)據(jù)庫(kù)管理員將控制器局域網(wǎng)參數(shù)設(shè)置為3600秒,日志切換最多每小時(shí)發(fā)生一次。但即便如此,一個(gè)小時(shí)的數(shù)據(jù)丟失還是很大的,對(duì)于大多數(shù)企業(yè)用戶來(lái)說(shuō),這種損失是無(wú)法接受的。
為了降低等待日志切換造成數(shù)據(jù)丟失的風(fēng)險(xiǎn),你所需要做的就是配置SRLs,很簡(jiǎn)單,但是可以給你的系統(tǒng)帶來(lái)很大的性能和安全性。
如何創(chuàng)建服務(wù)請(qǐng)求列表
創(chuàng)建SRLs的方式與創(chuàng)建普通在線重做日志的方式非常相似。最好在alter Database命令中再添加一個(gè)屬性設(shè)置,即添加關(guān)鍵字“待機(jī)”。
首先,讓我們看看當(dāng)前系統(tǒng)中在線重做日志的大小設(shè)置。
至于上面的結(jié)果,我看到有人理解為“50MB”,然后他們把SRLs的大小設(shè)置為50MB,這是不準(zhǔn)確的。
在操作過(guò)程中,我完全按照在線重做日志的大小來(lái)設(shè)置SRLs的大小。另一點(diǎn)是,有時(shí)我們看到ORL不同群體的原木尺寸不同。在這種情況下,不能直接配置SRLs。
建議在配置SRL之前,所有在線重做日志的大小都應(yīng)該相同。
接下來(lái),我們配置SRLs。
lSRLs的創(chuàng)建語(yǔ)句和普通在線重做日志的創(chuàng)建唯一的區(qū)別就在于增加了一個(gè)關(guān)鍵字備用。當(dāng)我創(chuàng)建它的時(shí)候,它的大小完全是根據(jù)ORL的大小設(shè)定的。
系統(tǒng)中目前有三組在線重做日志。創(chuàng)建SRLs時(shí),如果未指定組的數(shù)量,系統(tǒng)將默認(rèn)寫入組4-6。然后,如果以后需要添加日志組,可能會(huì)出現(xiàn)混淆。因此,我從第10組開(kāi)始配置SRLs。
接下來(lái),我們通過(guò)數(shù)據(jù)字典來(lái)看SRL
我們可以看到SRLs對(duì)應(yīng)的線程#是0。配置SRL時(shí),盡量避免將SRL設(shè)置到特定的線程,這樣主庫(kù)中所有節(jié)點(diǎn)的ORL都可以使用。
接下來(lái),我們看看所有的日志類型組。
因?yàn)榻M的編號(hào)在創(chuàng)建時(shí)是分開(kāi)的。因此,在查詢時(shí),可以根據(jù)日志的類型來(lái)排列結(jié)果。
最佳實(shí)踐
事實(shí)上,在引入SRLs時(shí),已經(jīng)設(shè)計(jì)了一些最佳實(shí)踐。在本節(jié)中,我們將更全面地介紹自律學(xué)習(xí)的最佳實(shí)踐。
一個(gè)
確保所有已配置的SRLs組的日志大小一致。
2
確保所有SRLs組中的日志大小與ORL相同。確保從主庫(kù)中傳輸?shù)乃腥罩径伎梢员4嬖赟RLs中,以滿足足夠的空。當(dāng)然,如果沒(méi)有辦法保證SRL的大小與ORL一致,可以將SRL的大小設(shè)置為大于ORL。
三
不要在SRLs中配置任何線程,這樣SRLs可以被所有節(jié)點(diǎn)使用,包括RAC中的主節(jié)點(diǎn)。
四
當(dāng)牛在備用數(shù)據(jù)庫(kù)上配置SRL時(shí),它們也需要在主數(shù)據(jù)庫(kù)上配置SRL。一般情況下,不會(huì)使用主數(shù)據(jù)庫(kù)上配置的SRLs,但是如果有一天需要進(jìn)行切換,提前配置SRLS會(huì)帶來(lái)很大的方便。
五
對(duì)于Oracle RAC的主備方案,最好將備用節(jié)點(diǎn)的數(shù)量配置為所有主節(jié)點(diǎn)的數(shù)量。例如,如果您有一個(gè)3節(jié)點(diǎn)的Oracle RAC數(shù)據(jù)庫(kù),并且在每個(gè)節(jié)點(diǎn)上配置4組SRL,則需要在備用節(jié)點(diǎn)上配置3*4=12組SRL。無(wú)論您的備用數(shù)據(jù)庫(kù)中有多少實(shí)例,備用數(shù)據(jù)庫(kù)都必須確保它能夠容納所有主數(shù)據(jù)庫(kù)節(jié)點(diǎn)上的ORL。
總結(jié)
本文主要分析了什么是備用重做日志,以及備用重做日志在Oracle備用數(shù)據(jù)庫(kù)日志傳輸中的作用。如果您的分布式發(fā)電系統(tǒng)處于最大保護(hù)模式,您必須配置SRLs。如果處于最高性能模式,配置SRLs可以最大限度地減少數(shù)據(jù)丟失。
1.《standby Standby Redo Logs的前世今生與最佳實(shí)踐》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無(wú)關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《standby Standby Redo Logs的前世今生與最佳實(shí)踐》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來(lái)源地址,http://f99ss.com/shehui/1593502.html