程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 關於MySQL數據遷移--data目錄直接替換注意事項的詳解

關於MySQL數據遷移--data目錄直接替換注意事項的詳解

編輯:關於MYSQL數據庫

    近日更換服務器,要做數據庫遷移,將數據庫內的數據從服務器A遷移到服務器B。
    由於數據量較大,直接做dump耗時太長,故而采用如下方式處理:
    首先,在服務器B上安裝了與服務器A同版本的MySQL,停止MySQL服務,將安裝後的data目錄刪除;
    然後,服務器A鎖住全部表,從服務器A將整個data目錄和數據文件直到拷貝到服務器B上,修改服務器B上MySQL的my.cnf文件中的datadir指向新的data目錄。
    最後,啟動服務器B上的MySQL服務。
    結果啟動失敗,報出 “無法啟動MySQL服務”異常,查看錯誤日志,發現問題描述如下:
    InnoDB: Error: log file ./ib_logfile0 is of different size 0 63963136 bytes
    InnoDB: than specified in the .cnf file 0 6291456 bytes!
    這段信息的意思是日志文件比my.cnf中設置的日志文件配額要大,服務不能啟動。原因是日志文件從服務器A復制而來,在服務器A上的my.cnf中日志配額要比服務器B上的my.cnf日志配額大,
    計算日志文件大小:63963136/(1024*1024)=61M,6291456/(1024*1024)=6M,怪不得呢?
    將服務器B上的my.cnf中的innodb_log_file_size的參數設置為61M,再次啟動mysql,啟動成功。

    總結需要注意事項:
    1.修改datadir為新的data目錄。
    2.合理修改innodb_log_file_size的值為實際遷移過來的日志文件大小。
    3.字符集/默認引擎的修改,要與遷移前統一。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved