分享一個處理mysql數據量大的話遷移的方法mysql
一天晚上,生產環境下,一個用戶分析數據庫掛掉了,緣由是服務器磁盤只讀了,可是又不敢重啓只好遷移了。sql
找到datadir目錄下du -sh * 看了一下嚇死了。240G大!數據庫
通常咱們都會作一個主從數據庫,就是爲了備份數據方便宕機的時候快速切換過來,但是這臺機器很早就有,如今沒有從庫備份,這就麻煩了。服務器
如今腦子裏兩種方案:測試
數據文件和庫表結構文件直接拷貝到新服務器,掛載到一樣配置的MySQL服務下。spa
第一種方案時間太長240G啊什麼概念,那要導到何時,雖說第二種方案也是很是耗時的,可是想不第一種還較爲快點。猶豫了一會採用第二種方案。blog
服務器只讀了,並不表明不能夠傳文件。因此找了一臺磁盤容量大點的能夠存放的下這240G大量數據的服務器。內存
遷過去後有個報錯:innodb
這時候纔想起來用rsync傳的時候目錄使用的nobody權限,啓動是要MySQL用戶權限的。查了查資料也是說要修改目錄權限。修改完以後,啓動沒有問題了。配置
若是遇到啓動不起來而後報錯是與ibdata1有關的,建議把my.cnf裏面的innodb_buffer_pool_size = 2G參數改下,這個是要根據服務器內存考慮的。或者把他刪了重建也行。