資料庫遷移常見的四種方法
- 2019 年 11 月 26 日
- 筆記
數據的遷移就像搬家,基本每個用過手機的人都做過數據遷移,將舊智慧手機中的電話號碼、照片、微信聊天記錄導入到另一台新的智慧手機。因此數據遷移並不神秘。在上雲的過程中,因數據的量更大、數據重要性更大、專業性更強,因此在公有雲上誕生了「雲遷移」這項目服務,在公有雲市場也有上百個雲服務商專業做「雲遷移」服務。今天我們來講三種常用的雲資料庫遷移方法。
一、為什麼做雲遷移?

1、更換伺服器、更換雲服務商。如,某台伺服器故障,需要更換為新伺服器;從私有雲環境更換為公有雲環境。
2、應用的數據器升級、更換類型。如,將oracle更換為mysql。
可以說做雲遷移,就像更換手機一樣,發生的概率還是挺高的,我們有必須要掌握必要的遷移技能。
二、雲遷移裡面最重要的是數據遷移
1、數據價值最高,不能丟失。應用伺服器里不帶有價值的數據,可以直接採用重新安裝或整盤拷貝的方式遷移,難度不大。但資料庫伺服器的數據可以說是整個企業的財產關鍵。
2、數據遷移的難度最大。資料庫的版本升級將可以帶來應用的不可用,因此遷移至新伺服器,如果使用了雲服務商的RDS,版本不一致,應用無法使用的概率挺大。
三、資料庫遷移總體有三種方法
我們今天以mysql為例,講講資料庫遷移的四種方法。
1、將資料庫倒出為sql文件,再重新導入(推薦)。
首先將mysql資料庫鎖定,並將記憶體中的數據寫入磁碟。

用mysqldump將test資料庫導出為sql文件。

在新的資料庫伺服器上,新建test資料庫,再將sql文件導入。

該方法因採用sql命令進行資料庫遷移,兼容性最好,準確性最高,但速率最慢。
2、將資料庫的文件存檔目錄直接拷貝至新主機。
可以直接將mysql存儲數據的目錄copy下來,用ftp等方式上傳至新主機的對應存儲數據的目錄下。該操作需要關閉兩端的資料庫服務,否則將產生錯誤。
該方法只支援myql的MyIASM的表引擎。該方法遷移速度快,但因Mysql默認採用inno引擎,適用場景少,且資料庫版本升級後出錯率高。
3、使用第三方資料庫遷移工具。
mysql有很多第三方的資料庫遷移工具,如mysqlhotcopy。此類工具一般支援熱遷移(不中斷業務,實時寫數據),支援物理copy。
該方法遷移速度快,對業務中斷時間短,但建議遷移多進行模擬測試,避免意外事件。
甚至有一些第三方的遷移工具支援異構資料庫的遷移。
4、使用整盤遷移工具。
採用雲主機的第三方遷移工具,將整個磁碟文件直接進行遷移。
該方法遷移速度快,對業務中斷時間短,但成本高,一般為收費工具。
四、小結
遷移就像搬家,如何保證搬家時間短、搬家途中不損壞或遺失物品、搬家過程更安全,產生了不同的遷移方法。
根據你家裡資產的情況,根據不同場景選擇搬家的方法,遷移也就是這回事。大家感覺如何?