天天看點

RDS最佳實踐(二)—如何快速平穩的遷入RDS

在之前文章中中大緻介紹rds的一些基本參數,包括資料庫類型,版本,存儲空間,規格:記憶體,連接配接數,io,地域等基本含義,本篇中将介紹如何快速平穩的遷入rds。

使用者在購買完rds後,接下來就可以開始往rds遷入資料了。在rds剛剛對外提供服務的時候,使用者隻能通過将自己的資料庫dump成為sql檔案,然後再将sql檔案source到rds中去:資料遷移至rds-mysql之使用mysqldump工具,資料遷移至rds-sqlserver之利用sql server用戶端工具,這兩種方法是最簡單的方法,但是局限性也非常的多:

.使用者的資料庫太大了,邏輯sql導入的方式速度太慢了,嚴重影響停機時間;

.在導入的過程中報錯很多,或者導入一半的過程中中斷了,需要重新來過;

.在遷入rds過程中,希望我的資料庫還能能正常提供服務;

大量的使用者入雲全部堵在遷移資料上面,使用者與rds的緣分就差麼這臨門一腳。工欲善必先利其器,為了更好的幫助使用者入雲,rds對現有的使用者入雲遷移方式進行改進,幫助使用者快速穩定遷移入雲,分别為使用者提供了mysql和sqlserver兩套改良遷移工具:

.mysql遷移工具支援線上遷移,使用者可以不中斷業務的情況下把資料遷移到rds中來;

.sqlserver的遷移工具采用實體備份的方法,将使用者的實體備份上傳到ftp中後還原到rds,提升遷移的速度;

這兩套工具目前都已經內建到了rds的控制台中,可以參考:資料遷移至rds-mysql之使用阿裡雲控制台和 資料遷移至rds-sqlserveru阿裡雲控制台.

很多使用者在控制台上看到的隻是一個黑盒子,在工單中多次咨詢遷移的原理,在這裡大緻講一下這兩個工具的遷移實作:

mysql線上遷移的原理:

RDS最佳實踐(二)—如何快速平穩的遷入RDS

第一步:預檢查,主要是驗證使用者網絡的通暢性,賬号和環境的檢查;

第二步:全量備份,該步驟會把使用者的資料全量的dump出一份出來,然後還原到rds;

第三步:增量遷移,該步驟會解析使用者全量期間以及後續産生的binlog應用到rds;

第四步:切換,當rds的資料完全追上使用者的資料庫後,使用者就可以開始進行切換了;

mysql的線上遷移工具目前還有一些限制,比如:

mysql 5.0隻支援全量遷移,不支援增量遷移;

不支援mysql5.6的遷移;不支援存儲過程,觸發器的遷移;

遷移過程中如果有ddl發生則會導緻增量遷移失敗;

sqlserver工具遷移的原理:

RDS最佳實踐(二)—如何快速平穩的遷入RDS

第一步:備份使用者對本地資料庫進行實體備份;

第二步:備份上傳至rds提供的ftp伺服器上(ftp位址支援私網和公網上傳);

第三步:rds掃描校驗使用者上傳備份檔案通過後,恢複至使用者rds;

第四步:使用者切換應用至rds;

由于sqlserver目前還沒有開放日志接口,是以rds目前還不能支援線上遷移;

rds目前不支援master庫的導入。

希望這篇文章對你使用rds有幫助。