快速答案:不建議直接整站還原。還原是把資料庫整個倒回備份那一刻,之後的訂單、新會員、改過的密碼、庫存、點數、訂閱排程全部消失;但金流的款項、已開的發票、寄出的通知信不會跟著回去。電商站要先在測試站還原、找出需要的東西,只還原壞掉的那部分;非整站還原不可時,先暫停收單、匯出備份之後的新資料再還原。
為什麼會這樣 #
WordPress 的訂單、會員、庫存、折價券使用次數,全都存在同一個資料庫。整站還原沒辦法「只還原設定、保留訂單」,一倒回去,備份之後的交易就從網站上消失,網站外的系統卻還記得:金流有扣款、電子發票平台有開票、物流有單號、客人信箱有訂單確認信。
更麻煩的是編號。訂單編號是依序產生的,還原後新訂單會重新用到那些已經用過的編號;部分金流或發票外掛拿訂單編號當交易編號,就可能因為重複被拒絕,或同一個編號在兩邊對到不同的交易。
怎麼處理 #
- 先想清楚要救的是什麼。版面壞了、某支外掛設定亂了、商品被誤刪,多半只要還原檔案或單一資料,不必動整個資料庫。
- 先還原到測試站。在測試站把不同日期的備份還原出來,找出最後正常的那天、比對差在哪裡,再只把需要的東西(某個頁面、某批商品、某項設定)搬回正式站。測試站要關掉正式金流與寄信,避免真的扣款或寄信給客人(見訂閱被扣兩次怎麼查)。
- 非整站還原不可時,照順序:開維護模式或暫停收單 → 匯出備份時間點之後的訂單、會員、表單資料 → 還原 → 補回新資料或手動重建訂單 → 對照金流後台逐筆核對。
- 還原後要對的:訂單與金流款項、電子發票、庫存數量、訂閱的下次扣款日、會員方案與課程開通、折價券使用次數。
- 通知受影響的人:還原期間註冊或改過密碼的會員要重新設定;有訂單被補建的,確認客人沒有收到兩次信。
我們實際遇過的情況 #
一個網站懷疑被入侵時,我們先把舊備份還原到測試站,找出網站從哪天開始不正常,而不是直接在正式站倒回去(還原點怎麼選見備份與還原點)。電商站更要這樣做:多了金流與發票,任何補回的訂單都要跟金流後台逐筆對過。
測試站本身也會製造訂單問題:一家課程平台有客人說下了單,正式站卻查不到,追下去是誤入了測試站。我們逐一查看那幾張誤入的訂單,並替測試站加上密碼保護——要拿測試站還原找資料,就不能讓它對外收單。
什麼時候該找人 #
已經在正式站整站還原、事後才發現訂單對不起來;或網站同時接了金流、電子發票、物流、訂閱,要還原的時間點又跨了好幾天。這時要一筆筆重建交易,還要跟金流與發票平台的紀錄對齊,錯一筆就是帳務問題。
WPTOOLBEAR網站工具熊