AOF 重寫告警出現,或資料目錄的硬碟空間突然緊張?
判斷:適合先按狀態、空間、檔案集的順序排查;不適合直接刪除 AOF 或在生產環境盲目重啟。先保留現場,確認持久化狀態與檔案系統,再用一致副本在隔離環境驗證恢復;升級 Redis 8.0 也不能取代備份與恢復演練。
這篇適合負責 Redis 8.0 持久化設定、需要判斷 AOF 重寫告警是否影響恢復的 DBA。
如果你負責應用或平台維運,正處理磁碟告警、重寫停滯或重啟風險,可依步驟收集證據。
如果你正規劃 Redis 伺服器,也可以用文中的檔案與備份檢查項目安排儲存空間和機外副本。
最後更新於 2026 年 11 月 4 日;版本狀態核對自Redis 官方版本管理頁,持久化行為核對自Redis 官方持久化文件。
Redis 8.0 AOF 重寫失敗排查:先分類,不先動檔案
AOF 重寫會在既有持久化機制上產生新的 AOF 表示;重寫期間的寫入與舊檔案也涉及檔案切換和保留問題。看到失敗訊息,不等於已經確認資料損毀,也不等於原因必然是磁碟容量。Redis 官方說明了 AOF、重寫及多檔案 AOF 的關係,判斷時應以你實際使用的版本與檔案集為準。官方持久化文件
| 現象 | 優先核對 | 不要先做 |
|---|---|---|
| 可用空間或 inode 緊張 | 資料目錄所在檔案系統、掛載狀態、AOF 檔案與清單位置 | 刪除正在使用的 AOF 檔案 |
| 磁碟看似有空間,重寫沒有完成 | Redis 持久化狀態、系統程序、磁碟 I/O 與日誌 | 只憑一個告警就重啟 |
| 重啟或檢查時出現檔案錯誤 | 檔案集是否完整、是否有一致副本、錯誤發生在哪個檔案 | 在唯一原始檔上直接修復 |
先釐清這批資料的角色:若資料可由其他來源重建,故障處置和承擔持久化責任的主要資料集不同;若 Redis AOF 是重要資料的持久化依據,未驗證副本前就改動原檔,可能讓後續恢復更難判斷。AOF 是持久化路徑,不是獨立備份方案。
Redis 8.0 AOF 重寫失敗後,先檢查哪些狀態?
先用具備讀取權限的管理連線取得持久化資訊:
redis-cli INFO persistence
在輸出中檢查重寫是否進行中或已排程、最近一次重寫結果,以及 AOF 相關狀態欄位;Redis 官方 INFO 文件列出可查詢的持久化資訊。INFO 命令文件 同時記錄執行時間、Redis 日誌和告警原文,避免只保留一行錯誤訊息。
再檢查系統側證據。df 可用來查看檔案系統空間,加入 inode 檢查後,也能發現「仍有容量但無法建立新檔案」這類情況;GNU Coreutils 說明了 df 的輸出和選項。df 命令文件
df -h /path/to/redis-data
df -i /path/to/redis-data
findmnt -T /path/to/redis-data
將路徑換成實際資料目錄,並確認掛載點、可用空間與 inode 是否符合預期。這些命令只提供觀察資料;如果檔案系統本身有錯誤,應先依作業系統和儲存設備的維運流程處理,不要把 Redis 告警直接當成根因。
空間與重寫進度:先保住原有檔案集
重寫所需空間不能用固定倍數估算。現場可能同時保留舊檔案、新產生的檔案,以及重寫期間持續變動的資料;實際需求要看目前檔案大小、資料增長、檔案系統餘裕和備份方式。若空間接近耗盡,先確認是否可清理與 Redis 無關的暫存資料,或調整可用儲存;不要直接刪除 AOF、清單或其他仍可能被使用的檔案。
Redis AOF 重寫期間空間不足時的處理次序
先停止非必要的檔案搬移與清理操作,保留 Redis 日誌和持久化狀態,再核對資料目錄究竟落在哪個檔案系統。若同一檔案系統上的其他應用佔用空間,只有在確認檔案用途及安全移除條件後,才處理那些與 Redis 無關的檔案。需要擴充儲存時,也要先確認資料目錄、掛載方式與恢復流程,不要在告警中臨時搬動正在使用的 AOF 檔案。
| 檢查項目 | 要確認的內容 | 決策影響 |
|---|---|---|
| 容量 | 資料目錄所在檔案系統的使用量和可用量 | 判斷是否需先釋出或增加可用空間 |
| inode | 檔案系統剩餘 inode 與使用狀態 | 排除「容量尚有但無法建立檔案」的情況 |
| 掛載 | 資料目錄實際掛載點及近期掛載錯誤 | 分辨儲存路徑變更或裝置異常 |
| Redis 檔案 | AOF 清單、清單所列檔案與檔案時間 | 判斷檔案集是否完整,避免只複製部分檔案 |
磁碟空間足夠,但重寫仍不推進
先查看 INFO persistence 的狀態欄位,並將結果與 Redis 日誌、系統程序及磁碟 I/O 一併比對。Redis 提供 BGREWRITEAOF 指令啟動背景重寫;但若重寫已在執行或系統資源正異常,重複下達指令不會代替故障定位。BGREWRITEAOF 命令文件
若 INFO 顯示的狀態與日誌不一致,或作業系統側有 I/O 錯誤,保留輸出、日誌、Redis 版本與建置資訊,再安排針對該環境的檢查。單一社群案例只代表該部署曾遇到某種情況,不能據此斷定你的 Redis 8.0 有普遍缺陷,亦不能把個案修復步驟當成通用操作。
多檔案 AOF:副本完整性比單檔複製重要
Redis 7 及以上版本的多檔案 AOF 可能包含清單、基礎檔案及增量檔案;只複製一個看似最新或最大的 AOF,不能證明已保存完整的恢復鏈。Redis 官方文件說明多檔案 AOF 的檔案組成與重寫行為,備份應依實際清單保留相互關聯的檔案。Redis 多檔案 AOF 說明
Redis 7 及以上的多檔案 AOF 如何完整複製?
先確認實際 AOF 目錄及其清單,再按清單核對基礎檔案和增量檔案。備份副本必須在一致的時間點取得;逐一複製仍在變動的檔案,不能保證各檔案彼此匹配。應使用已驗證的一致性快照或既定備份流程;若流程要求停止服務,須先確認能安全停止並有明確的恢復安排。
| 備份方式 | 可接受的前提 | 主要風險 |
|---|---|---|
| 一致性快照 | 快照涵蓋整個 AOF 檔案集,且備份流程已驗證一致性 | 只快照部分目錄,或各檔案時間點不一致 |
| 維護窗口備份 | 依正式流程完成寫入控制、服務處理與檔案集複製 | 未確認服務狀態便手動搬檔,造成副本不完整 |
| 單檔複製 | 不應視為完整的多檔案 AOF 備份 | 遺漏清單引用的檔案或增量內容 |
備份完成後,記錄清單與檔案是否都存在,並將副本放到機外。若你正在整理伺服器的硬碟和資料目錄規劃,可參考硬碟與儲存配置說明;硬碟分配有助於安排資料與備份位置,但單純分盤不等於備份,也不等於資料冗餘。
修復與恢復:在隔離環境驗證,不在原檔試錯
redis-check-aof 是檢查或修復 AOF 的工具,但工具執行成功只代表工具完成其操作,不代表業務資料已完整。Redis 官方文件對 AOF 檢查與修復有適用邊界說明;先確認檔案格式、版本和工具支援的目標,再對副本操作。AOF 檢查與修復邊界
建議依序處理:
- 保存原始現場:保留錯誤日誌、
INFO persistence輸出、資料目錄狀態及檔案清單,不先覆寫原始檔案。 - 建立可回退副本:用已驗證的一致性流程複製完整 AOF 檔案集,另行確認副本可讀取。
- 確認修復目標:依 Redis 對應版本文件判斷
redis-check-aof可處理的檔案及修復選項;不要把 AOF 清單當成 AOF 資料檔交給工具。 - 只修復副本:若工具提示可能截去損毀尾端,先記錄可能遺失的資料範圍,再決定是否繼續。
- 隔離啟動驗證:用副本在隔離環境啟動 Redis,不連接生產流量,也不讓測試寫入回到生產檔案。
- 比對業務不變條件:檢查重要鍵、資料型別、過期行為及 Stream 等應用依賴;依備份時間點判斷資料差異是否符合預期。
- 分開驗證不同備份路徑:AOF 可以啟動,不代表 RDB 備份也有效;反過來,RDB 可用也不能證明 AOF 恢復鏈完整。
修復工具若回報成功,但隔離實例的關鍵鍵值、過期行為或應用檢查未通過,先停止切換並保留副本,不要覆蓋生產檔案或宣稱資料已完整恢復。Redis 的 CONFIG SET 可在執行期間修改部分設定,但設定變更不是檔案修復手段;變更前須核對指令文件與該版本行為。CONFIG SET 命令文件
處置分支與版本維護:依證據選下一步
你可以用以下條件分支決定處置方向:
- 若可用空間或 inode 不足:先保護 Redis 檔案集,確認可安全釋出的非 Redis 空間或可用儲存;否則暫停非必要變更,先安排儲存處理。
- 若空間足夠,但狀態、日誌或 I/O 顯示異常:保留現場,檢查系統與儲存路徑;沒有明確根因前,不要以重啟代替診斷。
- 若 AOF 檔案可能損壞:先做一致副本,再依對應版本文件檢查;修復只在副本上進行。
- 若隔離恢復的業務檢查未通過:不要切回生產,不要覆寫唯一可用副本;改查備份時間點、檔案完整性與應用不變條件。
- 若恢復驗證通過:再制定生產切換與回退步驟,並安排後續機外備份及定期恢復演練。
Redis 官方版本管理頁列明 Redis 8.0 的支援截止日為 2026 年 12 月 1 日。在該日期前,你應核對實際使用版本、修補安排與相容性測試計畫;官方版本頁也應在部署決策前重新檢查,因版本維護狀態可能更新。Redis 版本管理資訊 升級可以處理版本維護問題,卻不會自動補齊缺失的 AOF 檔案、機外備份或恢復演練。
伺服器與備份規劃:把硬體問題和資料保護分開
如果目前方案是把 Redis 放在共享雲端主機或共享 VPS,需留意鄰居工作負載爭用資源、CPU 資源分配不透明,以及儲存容量和 I/O 規則可能受方案限制;自建 Redis 伺服器可以讓你自行安排資料目錄、檔案系統和備份流程,但仍須自行驗證檔案完整性及恢復結果。選用獨享 AMD 物理伺服器,適合需要長期穩定運行、希望自行控制儲存配置的工作負載;它不會自動提供硬體 RAID、複製或機外備份。
OSFP Cloud 的產品與服務選項,請以本站伺服器頁面所列的實際資料為準;部署前先核對可選硬碟、計費方式與機房資訊是否符合你的檔案布局需求。若你的負載只是短時間執行、資料可輕易重建,或需要按秒彈性擴縮,租用物理伺服器未必合適。無論最後選共享方案或獨享主機,都應先完成 AOF 副本驗證、機外備份與恢復演練,再把版本升級排入維護計畫。