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