MySQL數據庫遷移(數據文件直接遷移)
在今年10月下旬的時候,公司的服務器需要遷移,其中涉及到了MySQL數據庫遷移。查看了一下MySQL數據文件的大小,接近60G的大小(實際數據並沒用那么多)。由於服務器上業務需要,要盡量減少服務器遷移時的損失。所以遷移時間選在了晚上零點開始,而且要盡量減少遷移所用的時間。
在遷移之前有三種方案:
- 數據庫直接導出,拷貝文件到新服務器,在新服務器上導入。
- 使用【MySQL GUI Tools】中的 MySQLMigrationTool。
-
數據文件和庫表結構文件直接拷貝到新服務器,掛載到同樣配置的MySQL服務下。
我在我的電腦上用虛擬機測試后,選中了占用時間最少的第三種方案。下面是三種方案的對比:
第一種方案的優點:會重建數據文件,減少數據文件的占用空間。
第一種方案的缺點:時間占用長。(導入導出都需要很長的時間,並且導出后的文件還要經過網絡傳輸,也要占用一定的時間。)
第二種方案的優點:設置完成后傳輸無人值守
第二種方案的缺點:
- 設置繁瑣。
- 傳輸中網絡出現異常,不能及時的被發現,並且會一直停留在數據傳輸的狀態不能被停止,如不仔細觀察不會被發現異常。
- 傳輸相對其他fang時間長。
- 異常后很難從異常的位置繼續傳輸。
第三種方案的優點:時間占用短,文件可斷點傳輸。操作步驟少。(絕大部分時間都是在文件的網絡傳輸)
第三種方案的缺點:可能引起未知問題,暫時未發現。
下面介紹一下第三種方案d遷移步驟:
- 保證Mysql版本一致,安裝配置基本一致(注意:這里的數據文件和庫表結構文件都指定在同一目錄data下)
- 停止兩邊的Mysql服務(A服務器--遷移-->B服務器)
- 刪除B服務器Mysql的data目錄下所有文件
- 拷貝A服務器Mysql的data目錄下除了ib_logfile和.err之外的文件到B服務器data下
- 啟動B服務器的Mysql服務,檢測是否發生異常
遷移完成后,服務啟動正常,未發現其他異常問題。
data文件夾文件列表如下:
備注:經測試,源mysql的安裝目錄及數據文件目錄 可以與 目標Mysql的安裝目錄及數據文件目錄 不一致。
此時,只需要拷貝您所需移動的dbname(如上:pa、testdb)及'mysql'和'ibdata1',即可。