找別人做網(wǎng)站需要注意什么百度權(quán)重10的網(wǎng)站
一、什么是歸檔
數(shù)據(jù)庫歸檔是一種數(shù)據(jù)管理策略,它涉及將舊的、不經(jīng)常訪問的數(shù)據(jù)移動到一個(gè)單獨(dú)的存儲設(shè)備,以便在需要時(shí)可以檢索,同時(shí)保持?jǐn)?shù)據(jù)庫的性能和效率。
歸檔的主要目標(biāo)是為了釋放數(shù)據(jù)庫中的空間,以便更有效地利用高性能的存儲設(shè)備來存儲更頻繁訪問或更新的數(shù)據(jù)。同時(shí),歸檔也確保了可能需要的舊數(shù)據(jù)得以保留,以便在需要時(shí)能夠檢索。
數(shù)據(jù)庫歸檔的優(yōu)點(diǎn)包括提高數(shù)據(jù)庫性能、節(jié)省存儲空間、數(shù)據(jù)保護(hù)以及支持?jǐn)?shù)據(jù)分析和報(bào)告等。通過減少數(shù)據(jù)庫中的數(shù)據(jù)量,歸檔可以提高查詢速度和數(shù)據(jù)庫性能。歸檔的數(shù)據(jù)通常存儲在成本較低的存儲設(shè)備上,這可以節(jié)省高性能存儲設(shè)備的空間。此外,許多行業(yè)和地區(qū)的法規(guī)要求公司在一定期限內(nèi)保留某些數(shù)據(jù),通過歸檔,公司可以滿足這些要求同時(shí)不影響數(shù)據(jù)庫的性能。
二、達(dá)夢數(shù)據(jù)庫的歸檔
歸檔是實(shí)現(xiàn)數(shù)據(jù)守護(hù)系統(tǒng)的重要技術(shù)手段,根據(jù)功能與實(shí)現(xiàn)方式的不同,DM數(shù)據(jù)庫的歸檔可以分為6類:本地歸檔、遠(yuǎn)程歸檔、實(shí)時(shí)歸檔、即時(shí)歸檔、異步歸檔和同步歸檔。其中,本地歸檔日志的內(nèi)容與寫入時(shí)機(jī)與數(shù)據(jù)庫模式相關(guān);主庫Redo日志寫入聯(lián)機(jī)日志文件后,再進(jìn)行本地歸檔;備庫收到主庫產(chǎn)生的Redo日志后,直接進(jìn)行本地歸檔,同時(shí)啟動Redo日志重演。
歸檔模式 | 說明 |
本地歸檔 | 在REDO日志寫入聯(lián)機(jī)日志文件后觸發(fā),將REDO日志寫入到本地歸檔文件。由歸檔線程完成本地歸檔動作,最多可以設(shè)置8個(gè)本地歸檔。 |
實(shí)時(shí)歸檔 | 在寫入REDO日志到聯(lián)機(jī)日志文件之前,通過MAL系統(tǒng)發(fā)送REDO日志到遠(yuǎn)程服務(wù)器,遠(yuǎn)程服務(wù)器接收到REDO日志后,返回確認(rèn)消息后,執(zhí)行后續(xù)操作。發(fā)送REDO日志失敗,或從備庫返回的數(shù)據(jù)庫模式不是STANDBY,將數(shù)據(jù)庫切換為SUSPEND,阻塞所有REDO日志的寫入操作。只能配置1個(gè)實(shí)時(shí)歸檔。這種歸檔類型只能用在主從備份集群中。 |
即時(shí)歸檔 | 即時(shí)歸檔在主庫將REDO日志寫入聯(lián)機(jī)日志文件后,再通過MAL系統(tǒng)將REDO日志發(fā)送到備庫。即時(shí)歸檔是讀寫分離集群的實(shí)現(xiàn)基礎(chǔ),與實(shí)時(shí)歸檔的主要區(qū)別是發(fā)送REDO日志的時(shí)間不同。一個(gè)主庫可以配置1-8個(gè)即時(shí)備庫。 |
異步歸檔 | 在設(shè)定的時(shí)間點(diǎn)或者每隔設(shè)定時(shí)間,啟動歸檔REDO日志發(fā)送。設(shè)置定時(shí)歸檔,必須確保至少有一個(gè)本地歸檔。最多可以設(shè)置8個(gè)異步歸檔。 |
同步歸檔 | 同步歸檔的執(zhí)行流程是,主庫在歸檔日志刷盤后,將Redo日志發(fā)送到備庫,備庫收到Redo日志(RLOG_PKG)后將其加入日志重演任務(wù)系統(tǒng),并馬上響應(yīng)主庫,不需要等待Redo日志重演結(jié)束后再響應(yīng)主庫。 |
遠(yuǎn)程歸檔 | 遠(yuǎn)程歸檔專門用于DMDSC環(huán)境中。將寫入本地歸檔的REDO日志信息,發(fā)送到遠(yuǎn)程節(jié)點(diǎn),并寫入遠(yuǎn)程節(jié)點(diǎn)的指定歸檔目錄(共享存儲)中。最多可以配置8個(gè)遠(yuǎn)程歸檔。 |
- 本地歸檔
本地歸檔就是Redo日志寫入到本地歸檔日志文件的過程。配置本地歸檔情況下Normal/Primary模式庫在Redo日志寫入聯(lián)機(jī)Redo日志文件后,將對應(yīng)的RLOG_PKG由專門的歸檔線程寫入本地歸檔日志文件中。Standby模式庫收到主庫產(chǎn)生的Redo日志后,直接進(jìn)行本地歸檔,寫入本地歸檔日志文件中,同時(shí)啟動Redo日志重演。
1)查看是否開啟歸檔
a.配置本地歸檔
修改數(shù)據(jù)庫為mount狀態(tài)ALTER DATABASE MOUNT;
開啟歸檔sp_set_para_value(1,'ARCH_INI',1);
配置本地歸檔
alterdatabaseaddarchivelog'DEST=/home/dmdba/dmarch,type=local,file_size=128,space_limit=1024';
修改數(shù)據(jù)庫為openalterdatabaseopen;
2.遠(yuǎn)程歸檔
遠(yuǎn)程歸檔適用于dsc集群中,是將當(dāng)前節(jié)點(diǎn)的歸檔目標(biāo)配置在遠(yuǎn)程節(jié)點(diǎn)上,以此共享歸檔日志文件,同時(shí),遠(yuǎn)程節(jié)點(diǎn)上配置的本地歸檔需要在共享磁盤上。在一個(gè)DSC集群中,一臺機(jī)器配置遠(yuǎn)程歸檔到另一臺機(jī)器上,而另一臺機(jī)器也配置遠(yuǎn)程歸檔到這臺機(jī)器上。
3.實(shí)時(shí)歸檔
與本地歸檔寫入保存在磁盤中的日志文件不同,實(shí)時(shí)歸檔將主庫產(chǎn)生的Redo日志通過MAL系統(tǒng)傳遞到備庫,實(shí)時(shí)歸檔是實(shí)時(shí)主備和MPP主備的實(shí)現(xiàn)基礎(chǔ)。實(shí)時(shí)歸檔只在主庫生效,一個(gè)主庫可以配置1~8個(gè)實(shí)時(shí)備庫。
實(shí)時(shí)歸檔的執(zhí)行流程是,主庫在Redo日志(RLOG_PKG)寫入聯(lián)機(jī)日志文件前,將Redo日志發(fā)送到備庫,備庫收到Redo日志(RLOG_PKG)后標(biāo)記為KEEP_RLOG_PKG,將原KEEP_RLOG_PKG加入日志重演任務(wù)系統(tǒng),并馬上響應(yīng)主庫,不需要等待Redo日志重演結(jié)束后再響應(yīng)主庫。主庫收到備庫的響應(yīng)消息,確認(rèn)備庫已經(jīng)收到Redo日志后,再將Redo日志寫入聯(lián)機(jī)日志文件中。
另外,實(shí)時(shí)歸檔也可以支持讀寫分離集群,實(shí)時(shí)歸檔也分為兩種模式:事務(wù)一致模式和高性能模式,可以通過dmarch.ini中的ARCH_WAIT_APPLY或WAIT_APPLY配置項(xiàng)來設(shè)置實(shí)時(shí)歸檔的模式。
通常在配置實(shí)時(shí)歸檔時(shí),dmarch.ini中ARCH_WAIT_APPLY配置為0,采用高性能模式
4.即時(shí)歸檔
即時(shí)歸檔與實(shí)時(shí)歸檔不同的在于,即時(shí)歸檔是在主庫將 Redo 日志寫入聯(lián)機(jī)日志文件后,通過 MAL 系統(tǒng)將 Redo 日志發(fā)送到備庫。即時(shí)歸檔與實(shí)時(shí)歸檔的主要區(qū)別是 Redo 日志的發(fā)送時(shí)機(jī)不同。一個(gè)主庫可以配置 1~8 個(gè)即時(shí)備庫。
根據(jù)備庫重演 Redo 日志和響應(yīng)主庫時(shí)機(jī)的不同,即時(shí)歸檔分為兩種模式:事務(wù)一致模式和高性能模式。即時(shí)歸檔模式可以通過dmarch.ini 中的 ARCH_WAIT_APPLY 或 WAIT_APPLY 配置項(xiàng)來設(shè)置。其中,ARCH_WAIT_APPLY 配置項(xiàng)默認(rèn)值為 1,表示事務(wù)一致模式。
? 實(shí)時(shí)歸檔與即時(shí)歸檔不同:實(shí)施歸檔和即時(shí)歸檔最主要的區(qū)別在于寫入聯(lián)機(jī)日志文件的時(shí)機(jī),實(shí)時(shí)歸檔在寫入聯(lián)機(jī)日志文件前發(fā)送,而即時(shí)歸檔在寫入聯(lián)機(jī)日志文件后再發(fā)送。實(shí)時(shí)歸檔ARCH_WAIT_APPLY配置為0,即時(shí)歸檔ARCH_WAIT_APPLY配置為1.
5.異步歸檔
異步歸檔由配置的定時(shí)器進(jìn)行觸發(fā),根據(jù)異步備庫的 KEEP LSN 信息,掃描本地歸檔目錄獲取 Redo 日志,并通過 MAL 系統(tǒng)將 Redo 日志發(fā)送到異步備庫。異步備庫的 Redo 日志重演過程與實(shí)時(shí)歸檔等其他類型的歸檔完全一致。
6.同步歸檔
同步歸檔在主庫歸檔日志刷盤后,通過 MAL 系統(tǒng)將 Redo 日志發(fā)送到備庫。同步備庫的 Redo 日志重演過程與實(shí)時(shí)歸檔等其他類型的歸檔完全一致。
三、歸檔狀態(tài)
歸檔狀態(tài)概述
在達(dá)夢數(shù)據(jù)庫中,歸檔狀態(tài)主要分為以下幾種:
- Valid:歸檔有效,允許執(zhí)行數(shù)據(jù)庫歸檔操作。
- Invalid:歸檔無效,主數(shù)據(jù)庫不向備數(shù)據(jù)庫發(fā)送聯(lián)機(jī)Redo日志。
- Async_send:歸檔無效,但主庫正在同步歷史數(shù)據(jù)到備庫。
歸檔狀態(tài)轉(zhuǎn)換時(shí)機(jī)
-
初始化狀態(tài):
- 主備庫啟動后,所有備庫的歸檔狀態(tài)默認(rèn)為 Valid。
- 在守護(hù)進(jìn)程打開主庫之前,若發(fā)現(xiàn)備庫數(shù)據(jù)不一致,歸檔狀態(tài)會被修改為 Invalid。
-
實(shí)時(shí)備庫和即時(shí)備庫故障恢復(fù):
- 當(dāng)實(shí)時(shí)備庫或即時(shí)備庫故障恢復(fù)時(shí),主庫將同步歷史數(shù)據(jù),守護(hù)進(jìn)程會將主庫狀態(tài)修改為 Suspend,并將備庫的歸檔狀態(tài)從 Invalid 修改為 Valid。
- 當(dāng)守護(hù)進(jìn)程再次打開主庫后,主備庫數(shù)據(jù)恢復(fù)為一致狀態(tài)。
-
同步備庫故障恢復(fù):
- 主庫開始同步歷史數(shù)據(jù)時(shí),備庫的歸檔狀態(tài)從 Invalid 修改為 Async_send。
- 在此過程中,日志刷盤線程會掛起,以確保備庫能夠追趕到主庫的狀態(tài)。主庫到備庫的歸檔狀態(tài)從 Async_send 修改為 Valid,然后喚醒日志刷盤線程,確保主備庫數(shù)據(jù)一致。
-
失敗處理:
- 如果主庫向?qū)崟r(shí)備庫發(fā)送日志失敗,歸檔狀態(tài)會被修改為 Invalid。
- 主庫發(fā)送即時(shí)歸檔失敗后,歸檔狀態(tài)直接改為 Invalid。
- 主庫發(fā)送同步歸檔失敗后,歸檔狀態(tài)也直接改為 Invalid,且不會進(jìn)入 Suspend 狀態(tài)。
-
條件恢復(fù):
- 如果主庫發(fā)現(xiàn)同步備庫的歸檔狀態(tài)為 Invalid,且滿足故障恢復(fù)條件,將主庫到備庫的歸檔狀態(tài)從 Invalid 改為 Async_send,并開始同步歷史數(shù)據(jù)。同步完成后,備庫的歸檔狀態(tài)將修改為 Valid。
總結(jié):達(dá)夢數(shù)據(jù)庫的歸檔機(jī)制通過狀態(tài)管理實(shí)現(xiàn)數(shù)據(jù)的高可用性和一致性。不同的歸檔狀態(tài)和轉(zhuǎn)換時(shí)機(jī)確保了在發(fā)生故障時(shí)能夠快速恢復(fù),保持主備庫之間的數(shù)據(jù)同步。這種機(jī)制對于保障數(shù)據(jù)庫的可靠性和穩(wěn)定性至關(guān)重要。通過合理的狀態(tài)管理,達(dá)夢數(shù)據(jù)庫能夠在各種場景下有效應(yīng)對故障,確保數(shù)據(jù)的安全和完整。
達(dá)夢數(shù)據(jù)庫 - 新一代大型通用關(guān)系型數(shù)據(jù)庫 | 達(dá)夢在線服務(wù)平臺