一次誤刪除mysql數據表的歷險記

    首選介紹我一下數據庫的組織架構:一臺主數據庫,三臺從庫, 三臺從庫都是跟主庫負責同步。在一次爲主庫進行維護的時候將一張重要的表中一個月的數據通過delete命令刪除,該數據表的引擎是myisam,當刪除完時,突然發現刪除的表不對,不是自己想要刪除的那張表,導致誤刪除其中一張重要的表,當時命令在主庫執行完,發現不對,立刻到從庫中,將從庫中主從狀態同步通過命令slave stop  停掉,但是發現還是晚了一步,從庫已經完成了與主庫的同步,也就是從庫的數據也被刪除了,當時傻眼了,這如何解決,由於打開的binlog日誌是循環記錄,無法通過日誌來恢復這表中一個月的數據,這如果如何解決。

    在網上搜索了相關資料,好像只有引擎是innodb還有點希望,innodb的引擎刪除表的數據只是加標誌,並不是真正的將數據刪除。 myisam引擎,也不是將數據刪除,但是會將一條記錄的前面幾個字段都置位了,所以大家可以通過實驗delete一張表,該表佔用的空間並沒有減少。但是要通過myisam的myd表來恢復數據,需要專業的公司來操作,只能保證90%的成功率,而且價格不菲。面對這情況如何是好,在想了很久之後,登錄到阿里雲的WEB管理後臺,由於我的服務器是阿里雲的,所以經常登錄到管理後臺查看服務器的一些狀態。

    登錄進去之後,在無意中發現了一個東西,就是阿里雲的管理後臺爲每塊磁盤做了快照,是每天夜裏空閒的時候做快照,發現這個東西突然眼前一亮,是否可以通過磁盤的快照將刪除的數據找回來,立刻開始實施,在阿里雲後臺重新買了磁盤,創建磁盤可以選擇使用已有快照,我就選擇了那個被刪除數據的磁盤的快照,作爲新磁盤的數據,買完之後,選擇的快照數據恢復到新買的磁盤上。

   接下來就是將快照恢復後的數據盤掛載到系統上,進去一看數據都在,立刻懸着的心放下,重新安裝了一個mysql,並將快照恢復後的數據盤,作爲新裝mysql的data目錄, 啓動mysql之後,進入mysql發現數據都在,只是數據只道當天夜裏5點,相差了10個小時的數據,雖然相差10個小時數據,但是已經將損失減到最小。

   最後告誡一定要做好數據庫的增量備份,如果沒有做,但是你的服務器是阿里雲的,就有可能將數據找回。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章