分享:MySQL資料庫崩潰解決過程
經常遇到這樣的事情:莫名其妙關機,然後啟動藍色畫面,不能訪問,最後決定重灌系統。
可惜這次的悲劇在於專案剛起步,暫且穩定,前段時間又一直忙於編碼,對後臺資料的備份沒有太在意,導致資料庫崩潰後只有上個月的備份資料。一直以為只要資料庫裝在d盤,c盤的覆蓋不會有影響,結果恰恰是自己的不在意導致整個恢復過程及其艱難,耗時一天終於搞定,其中不乏有灰心喪氣、準備放棄的想法。
現把具體解決過程分享下吧:
1、系統重灌前,出於小心為上,工作人員備份了c盤資料到e盤,同時d、e兩盤斷點,c盤資料系統更新。
2、重灌完畢,安裝資料庫mysql,d盤中查詢昨天的資料庫檔案,一直沒找到,崩潰!最後只能找上個月的備份檔案。恢復資料庫成功後發現有些表打不開。(已經開始傷心了誒)
3、初步判斷可能安裝的mysql有版本問題,決定安裝新版本的mysql。但是安裝不成功,後來經過摸索一番後發現是原來裝的mysql沒有解除安裝乾淨。
4、3步完成解除安裝:刪除安裝目錄下的檔案、刪除配置檔案中的datadir變數目錄中的檔案、刪除資料庫資料儲存目錄中的檔案。這三步可以根除mysql,判斷是否清理成功的途徑就是在系統服務中檢視是否還有mysql服務。注意的是是否有這個服務!而不是是否啟動!
5、如果重新安裝了mysql,安裝後還是啟動不了,並且徹底清除後再重新安裝還是不行的話只能再分析原因,查詢資料了。
6、恢復上個月的資料庫備份成功後你會發現還是有些表打不開,提示表不存在,但是在mysql檢視視窗中卻能看到相應的表。很奇怪,也很糾結對吧!!!同時發現打不開的表的引擎都是innoDB的,而可以開啟的表的引擎則是MyISAMD的,由此判斷可能是引擎的原因啦!
7、網上的解決辦法寫的是mysql不支援innoDB,在php的配置檔案中註釋掉skip-innodb這行即可解決。查詢伺服器配置檔案,發現已被註釋,應該不是這方面的原因。但是無意中發現配置檔案中的datadir變數指向的是c盤的某個目錄,突然想到可能當初安裝的時候資料庫檔案放到了c盤,還好剛開始有備份c盤檔案。
8、查詢備份的c盤中的相應目錄,突然找到了昨天的資料庫檔案。超開心哈哈
9、把最新的資料庫檔案複製到新安裝的資料庫目錄下發現還是不能開啟innoDB的表,這是什麼原因呢??查詢資料,瞭解到innoDB跟MyISAM儲存資料不一樣,字首的資料在上層目錄中,而且可能是多個表資料存一個檔案,後者每個表分三個檔案儲存,不同表間不相互影響。
10、頭腦一熱,把昨天的資料庫檔案中的ibdata1檔案直接覆蓋了新安裝的資料庫中,啟動發現資料庫啟動不了了!悲劇!可能是覆蓋了原有的innoDB資料,導致新資料庫崩潰。切記,千萬不要覆蓋!不然又杯具了
11、解除安裝資料庫後重新安裝mysql,恢復資料庫檔案,還是打不開innoDB的表!怎麼辦?鬱悶中。。。
12、準備使用轉成的sql把innoDB的表結構先建起來,然後手工輸入丟失的資料,工作量不僅大,而且最重要的是我寶貴的資料都沒了!欲哭無淚啊
13、絕望中朋友突然給我說可以在她機器上本地測試下昨天的資料庫備份,她安裝的是多備份,即使導致資料庫崩潰了,一鍵恢復就好了。想不到奇蹟真的出現了!我的資料都出現了誒!我的網站又可以重新執行了。
總結:備份,備份!只有在資料庫崩潰的時候才知道它的價值!而且經過這次之後在這裡提醒一句:備份資料時,千萬一定要提前檢視備份資料庫是什麼引擎,然後確定需要備份的資料庫檔案,不知道資料庫儲存位置的朋友看過來:在MySQL目錄裡的my.cnf配置檔案中可找到。
記得很久前看資料庫方面的一本書時,前言第一句就是,“沒有什麼東西比資料庫崩潰,更能讓DBA在深夜中驚醒”。現在真的相信了。
原文:bbs.dbfen.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30068578/viewspace-1390571/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 崩潰恢復過程分析MySql
- MySQL 資料庫崩潰(crash)的常見原因和解決辦法MySql資料庫
- 儲存崩潰資料恢復過程;資料恢復案例資料恢復
- MySQL 5.7 主庫崩潰切備庫MySql
- win10 pr崩潰怎麼解決_win10 pr崩潰解決辦法Win10
- 【MySQL】崩潰恢復問題解決:Forcing InnoDB RecoveryMySql
- MySql資料庫——儲存過程MySql資料庫儲存過程
- 這個mysql資料庫是不是崩潰了啊?請高手指點。MySql資料庫
- 一次資料庫崩潰處理事件資料庫事件
- 資料庫異常崩潰的元凶--OOM killer資料庫OOM
- IBM X3850伺服器崩潰資料恢復過程記錄IBM伺服器資料恢復
- MySQL資料庫INNODB表損壞修復處理過程分享MySql資料庫
- [解決] Goland 開啟後直接崩潰GoLand
- Android 12 “致命”崩潰解決之路Android
- 資料庫崩潰恢復表結構的方法資料庫
- 記一次客戶oracle資料庫崩潰Oracle資料庫
- 絕地求生崩潰怎麼解決win10_win10絕地求生崩潰的解決方法Win10
- 分享一個開發中捕獲崩潰的庫
- sql server資料庫附加錯誤的解決過程SQLServer資料庫
- mysql 5.5 索引建設(表rebuild)過程中的系統崩潰的恢復MySql索引Rebuild
- 建立物化檢視導致資料庫例項崩潰資料庫
- Android7.1.1Toast崩潰解決方案AndroidAST
- AI|經常崩潰的問題解決AI
- 解決ssms2012連線遠端資料庫報錯崩潰的問題SSM資料庫
- 記一次VMware的崩潰除錯分析過程除錯
- 記一次線上崩潰問題的排查過程
- WkWebView 令人崩潰的崩潰WebView
- 資料庫效能問題解決過程1例子資料庫
- MySQL 8.0.11 無故崩潰MySql
- AIX系統崩潰後oracle資料庫的恢復方法AIOracle資料庫
- 資料庫週刊46丨阿里雲釋出記憶體資料庫Tair;Oracle連線數過高案例;MySQL崩潰怎麼辦…資料庫阿里記憶體AIOracleMySql
- Source Insight崩潰的解決辦法
- MySQL資料庫啟動過程的簡述MySql資料庫
- Mysql 資料庫水平分表 儲存過程MySql資料庫儲存過程
- windows10桌面崩潰怎麼修復_win10桌面無限崩潰解決方法WindowsWin10
- MySQL 引擎特性:InnoDB崩潰恢復MySql
- Mysql加鎖過程詳解(6)-資料庫隔離級別(1)MySql資料庫
- Windows系統崩潰後恢復Oracle 9i資料庫WindowsOracle資料庫