記一次刪庫後,我是如何恢復數據庫和處理的

前言

  • 若是你的數據庫被刪了,我在這先表示同情,先冷靜,深呼吸,放鬆,準備跑路!
  • 我是由於數據庫權限沒有設置好,設置成了DDL權限,同事誤操做致使數據庫被刪除。
  • 個人數據庫的環境是,阿里雲的RDS mysql5.7 高可用版,若是你不是阿里雲的RDS可能不大合適此文章。必定要開啓RDS的SQL洞察功能能夠查看sql記錄。

事發

數據庫被刪了,平臺登不上看錯誤日誌,發現數據庫不見了???趕忙提交工單讓阿里雲技術人員查看問題,獲得回覆:html

[問題定義]

描述問題:數據丟失


[處理建議]
請您在DMS或者mysql命令行確認下。

若是數據丟失,請您考慮使用DMS數據追蹤或者克隆實例方法恢復數據
1.請您使用DMS數據追蹤功能恢復數據,請您詳見:https://help.aliyun.com/document_detail/63780.html
2.請您使用克隆實例按時間點恢復方法恢復數據,請您詳見:https://help.aliyun.com/document_detail/96147.html

請您考慮開啓SQL洞察功能查看實例的操做記錄,SQL審計日誌:記錄對數據庫執行的全部操做。經過審計日誌記錄,您能夠對數據庫進行故障分析、行爲分析、安全審計等操做。
SQL洞察開啓後纔可查看相關記錄。
請您詳見:https://help.aliyun.com/document_detail/96123.html

============================

阿里雲售後提示您:
對於涉及到數據的增刪改查等測試,建議您先經過控制檯或其餘方式備份,或者建立一個新的測試環境,以避免誤操做帶來的生產環境數據丟失風險!
感謝您對阿里雲的支持

數據丟失分紅2種狀況mysql

  1. 少部分數據被刪除能夠經過上面的DMS數據追蹤功能恢復數據來恢復
  2. 數據庫被刪除只能用上面的第二種方法克隆實例按時間點恢復方法恢復數據來恢復

我是最慘的第二種狀況。sql

處理

  • 已經確認數據被刪除了,網站掛上維護公告,讓項目處於維護模式不能有新數據寫入,關閉隊列、定時任務等
  • 使用RDS左邊的SQL洞察功能查找數據庫被刪語句的時間
  • 按照教程使用克隆實例按時間點恢復方法恢復數據操做:
    1. 進入出事RDS的管理界面
    2. 在左側導航欄中,選擇備份恢復
    3. 在頁面右上角,單擊數據庫恢復(原克隆實例)
    4. 在彈出的頁面中,選擇新實例的計費方式(建議選擇按量付費)
    5. 選擇上面找出來的執行刪庫的時間,提早一秒
    6. 單擊當即購買。
    7. 勾選《關係型數據庫 RDS服務條款》,單擊去支付,完成支付便可。
    8. 而後在RDS列表就看到一個新的RDS啓動中
    9. 最後要很是有耐心的等待啓動完成(我在這等了2個小時左右,大概150GB數據,僅供參考)
  • 條件容許的狀況下,把須要恢復的RDS數據庫主庫的CPU配置買高點,CPU直接影響恢復速度!!!
  • 啓動完成後的RDS數據就是剛纔選擇時間的數據
  • 而後進行數據庫遷移
    1. 進入數據傳輸(DTS)控制檯
    2. 在左側導航欄中,選擇數據遷移
    3. 單擊建立遷移任務。
    4. 源數據庫信息選擇剛啓動的RDS 數據庫帳號密碼和出事的RDS同樣,須要高權限帳號 點擊測試連接
    5. 目標數據庫信息選擇出事的RDS 密碼同上 點擊測試連接
    6. 單擊受權白名單並進入下一步。
    7. 只選擇結構遷移和全量數據遷移。 不要勾選增量遷移!
    8. 在左側的遷移對象框中,選擇要遷移的對象,單擊>將這些對象移入已選擇對象框框中。 選擇你要恢復的數據庫
    9. 開始遷移,彈出選擇框,選擇遷移最大的規格。(越大速度越快)
    10. 耐心等待進度條,我這邊80GB的數據等了5小時
  • 數據遷移成功能夠用數據追蹤功能 查看刪庫最後幾條sql是否被成功恢復。
  • 測試項目是否恢復正常

最後

發生這種事情能夠提早制定跑路計劃,提早購買人身意外險,若是數據庫失敗能夠按計劃執行。:)數據庫

相關文章
相關標籤/搜索