前幾天由於自己的操作失誤,將論壇板塊給刪除了,Discuz!後台版塊被刪除後是無法恢複的,如下圖:
想了一下,我用的是阿里雲ESC伺服器,應該有快照儲存的,本人沒有每天備份的習慣,開啟阿里雲後台看見我在5月1日居然儲存了快照,但又不能直接恢複到5月1日,到今天可就差3天時間啊,不能全部快照復原,所以就開始資料恢複旅程!如下圖:
第一:必須先儲存現在目前時間的資料,有使用者量的話最好在晚上11後開始操作,避免使用者資料丟失!
接下來,就是操作了,要找到被刪除版塊資料,操作---》快照復原到5月1日-》進入論壇--》後台--》刪除所有資料(不包括被誤刪除資料),也是就說留下“被誤刪除的資料版塊”。
刪除乾淨後,進入資料庫管理後台,我用的是phpmyadmin,找到2張表是“pre_forum_post文章表”和“pre_forum_thread主題表”,如下圖:
將其資料內容全部匯出儲存下來,以sql尾碼名儲存到本地。我是直接匯出sql語句儲存,當然儲存方法有很多,我就不一一說明了,如下圖:
別以為這就是結束了,這才剛剛開始呢,找到了“pre_forum_post文章表”和“pre_forum_thread主題表”,當然還有圖片和附件資料表呢,如下圖,一張“附件關聯表”和“10張附件圖片資訊表”。
將其內容如同上面一樣,全部儲存成sql資料。
接下來,“pre_forum_post文章表”和“pre_forum_thread主題表”,圖片附件資料表都有了,還缺呢?對了,還缺圖片、附件檔案沒有儲存(ps:mysql只是儲存附件圖片路徑地址),圖片附件檔案藏在:bbs\data\attachment\forum,所以帶日期檔案夾裡面。
接下來,快照復原到最新時間資料,在論壇上建立一個版塊,版塊名稱就叫“我被誤刪除”,並記錄下fid如下圖:
開啟“pre_forum_post文章表”和“pre_forum_thread主題表”,修改其欄位fid值,對應如上圖fid,批量修改欄位fid,sql語句是:
準備工作已經全部完成了,下面開始匯入資料,在論壇後台執行sql語句,如下圖:
插入資料時,如有出現“
sql報錯主鍵已存在”,那有可能是一開始刪除資料不乾淨,匯出資料重複,因為現在匯入的資料是“被誤刪的資料”。
最後將圖片和附件上傳到伺服器中,開啟文章會發現圖片附件還是不顯示,只要點一下“編輯”就顯示了!具體原因為什麼,可能是php是需要瀏覽器重新整理後才能執行語言吧!
版塊資料就這樣恢複了!