備份與恢復
持久化是指為了避免數據丟失,定期將數據存儲到磁盤中。如遇云數據庫 Tair(兼容 Redis)實例宕機或重啟,能夠利用磁盤中的持久化文件恢復數據。為滿足各類場景下對備份與恢復的需求,云數據庫 Tair(兼容 Redis)實例提供RDB持久化、AOF持久化和Tair-Binlog持久化策略。
持久化策略
云數據庫 Tair(兼容 Redis)支持以下持久化策略。
RDB持久化
RDB持久化是指周期性地為引擎中保存的數據創建快照,生成RDB文件,保存到磁盤中,實現數據的持久化。RDB文件占用空間小,便于移動,非常適合用于備份或遷移指定時間點的數據。
開源Redis在生成RDB文件時會可能會帶來操作阻塞,阻塞時間取決于實例的數據總量。而云數據庫 Tair(兼容 Redis)實例對此優化并實現了“無阻塞備份”,使實例的備份不影響客戶端請求。
云數據庫 Tair(兼容 Redis)的RDB持久化策略默認每天備份一次,您可以根據業務需求修改自動備份策略,也可以手動發起臨時的備份。
AOF持久化
AOF持久化是指以日志的形式記錄所有的寫入類操作(例如SET)。當服務重啟時,通過重新執行AOF文件中的操作來恢復數據。
由于AOF文件記錄了所有寫入類操作,隨著AOF文件中的記錄越來越多,當AOF文件過大時,Redis會自動執行AOF Rewrite,重組AOF文件,降低其占用的存儲空間,提高數據恢復效率,但AOF Rewrite對寫入性能會有一定損耗。
云數據庫 Tair(兼容 Redis)實例(除持久內存型以外)默認啟用AOF持久化,策略為AOF_FSYNC_EVERYSEC且不支持修改,即Redis每秒執行一次fsync,將AOF緩沖區中的寫入類命令刷新到磁盤,這個過程又稱為AOF落盤。AOF_FSYNC_EVERYSEC策略對Redis服務性能的影響較小,同時也能極大地降低意外情況下的數據損失風險。
Tair-Binlog
Tair(企業版)內存型不僅支持上述兩種持久化策略,還優化了基于AOF(Append-only-file)的持久化機制,實現AOF增量歸檔,避免了AOF Rewrite對服務性能的影響,同時完整保留了每一次寫操作與其時間戳,可以將實例整體或指定Key的數據恢復至某個秒級的時間點(PITR,point-in-time recovery)。更多信息,請參見通過數據閃回按時間點恢復數據。
備份恢復方案
云數據庫 Tair(兼容 Redis)實例基于RDB持久化、AOF持久化和AOF增量歸檔,實現數據的備份與恢復。
類別 | 實施方案 | 說明 |
數據備份 | 支持數據持久化,實例會按照默認的策略自動備份數據(基于RDB),您可以根據業務需求修改自動備份策略,也可以手動發起臨時的備份。 | |
備份文件支持保留7~730天,如果需要更長時間的備份存檔(例如監管或信息安全需要),您可以將備份文件下載到本地進行存儲。 | ||
數據恢復 | 支持從指定的備份集創建新實例,新實例中的數據將和該備份集中的數據一致,可用于數據恢復、快速部署業務或數據驗證等場景。 | |
開啟數據閃回功能(基于AOF)后,在備份文件的保存期內,您可以恢復指定時間點(精確到秒級)的數據,可最大限度地避免誤操作帶來的數據損失,或者在頻繁回檔的業務場景中快速完成數據切換。 說明 該功能僅Tair(企業版)內存型支持。 |