數據遷移到aurora mysql數據庫

前言

數據庫遷移到aurora mysql的方式有如下幾種:
1 )Rds mysql遷移到aurora mysqlhtml

  • 使用rds mysql快照遷移
  • 使用rds mysql只讀副本遷移

上述兩種遷移方式很是簡單,只需在aws rds 控制檯操做便可,本片就再也不進行具體演練,具體可參考文檔mysql

快照遷移:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Import.htmlsql

只讀副本遷移:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html數據庫

2)外部mysql數據庫前喲aurora mysql數組

  • 使用mysqldump實用程序建立數據的轉儲,而後將該數據導入現有的aurora mysql數據庫集羣。
  • 將完整備份文件和增量文件從數據庫複製到S3存儲桶,而後從這些文件還原aurora mysql數據庫集羣,速度可能比使用mysqldump遷移數據要快。

1 使用mysqldump實用程序建立數據庫的轉儲,而後將該數據導入現有aurora mysql數據庫集羣

由於aurora mysql與mysql兼容,因此該過程與將mysql數據導入rds mysql的過程相似,可參考文檔 https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html服務器

其總體架構以下圖所示:架構

image1.png

1.1 安裝並配置好mysql數據庫

我在光環雲裸金屬服務器上部署了mysql數據庫,具體部署過程略,能夠百度。ide

1.2 建立mysql數據庫的副本
1.2.1 設置複製選項

編輯文件/etc/my.cnf sudo vi /etc/my.cnf
更新[mysqld]字段以下:
[mysqld]
log-bin=mysql-bin
server-id=1 工具

image2.png

重啓mysql服務 service mysqld restart性能

1.2.2 建立現有數據庫的備份副本

image3.png

上圖中新建了一個數據庫schema_xuyi,如今將schema_xuyi進行備份,執行以下命令:

mysqldump \
--databases  schema_xuyi \
--master-data=2  \
--single-transaction \
--order-by-primary \
-r backup.sql \
-u  local_user \
-p

image4.png

圖中可見生成了備份文件backup_xuyi.sql

1.3 建立aurora mysql數據庫

具體建立過程省略,注意與此前的mysql數據庫版本儘可能一致。

image5.png

遠程鏈接到aurora mysql數據庫,其初始狀態以下圖:

image6.png

1.4 使用mysql命令遠程鏈接到aurora mysql數據庫並導入此前的sql文件

執行命令:

mysql -h aurora-1-instance-1.cbgpcbkn8knw.us-east-1.rds.amazonaws.com -P 3306 -u admin -p

其中aurora-1-instance-1.cbgpcbkn8knw.us-east-1.rds.amazonaws.com部分是aurora mysql數據庫的終端節點,鏈接成功

image7.png

執行命令 source backup_xuyi.sql;

image8.png

Workbench的刷新操做沒找到,從新鏈接了一下aurora mysql數據庫,可見其狀態以下:

image9.png

其中已經有了schema_xuyi的庫,說明mysqldump導入成功,本次測試只是爲了驗證從外部mysql導入到aurora的過程,至此本次操做完成。

2 將完整備份文件和增量文件從數據庫複製到S3存儲桶,而後從這些文件還原aurora mysql數據庫集羣

參考文檔:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3

2.1 準備工做
2.1.1 在本地服務器上安裝percona

本地數據庫版本是mysql5.7,建議percona版本爲Percona XtraBackup 2.4

執行如下命令:

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum install -y percona-xtrabackup-24.x86_64

image10.png

從上圖可見Percona-xtrabackup安裝成功。

2.1.2 准許aurora mysql訪問S3存儲桶
  • 在跟aurora mysql數據庫相同的區域中建立一個存儲桶

過程比較簡單,省略。

image11.png

  • 建立IAM策略以訪問S3資源

能夠經過IAM控制檯來建立相應的策略,具體過程省略,能夠授予aurora 訪問S3的全部權限。

image12.png

  • 建立IAM角色以容許aurora mysql訪問AWS服務

具體建立角色的過程省略,能夠參考文檔: https://docs.aws.amazon.com/z...
以下圖所示,建立了一個角色role_aurora_to_s3,並將上一步的策略附加到了該角色上。

image13.png

  • 將角色與aurora mysql數據庫關聯

具體操做過程見文檔 https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html

image14.png

如上圖所示,已經將角色與aurora mysql數據庫相關聯。爲了讓角色生效還須要修改參數組,咱們選擇新建一個參數組

image15.png

其中參數「aurora_load_from_s3_role」的值更新爲前面所建立角色的ARN。

image16.png

再修改數據庫實例的數據庫選項

image17.png

應用修改,當即重啓數據庫。

2.2 備份要還原爲aurora mysql的數據庫的文件
2.2.1 準備工做

爲了跟以前的數據庫內容區別開來,特地新建了庫schema_test,並在其中新建了一張表table_test,以下圖所示:

image18.png

2.2.2 使用percona xtrabackup建立備份

全量備份

xtrabackup --user=root --password=XY-zte110 --backup --target-dir=/root/backupfiles

image19.png

可見在當前目錄下生成了一個backupfiles目錄,該類目下的內容如上圖所示。

經過aws CLI將備份文件夾整個上傳到s3存儲桶(具體上傳的過程省略),登陸s3控制檯可見

image20.png

2.3 從S3存儲桶還原aurora mysql數據庫

登陸aurora控制檯,進入數據庫頁面

image21.png

在數據庫頁面點擊「從S3還原」,
引擎選項->aurora
版本->咱們選擇的是mysql5.7

image22.png

點擊「下一步」

image23.png

下一步,進入數據庫詳細信息頁面進行設置,具體內容與新建aurora實例的過程類似

image24.png

下一步,配置高級設置

image25.png

從這個配置的過程來看,跟建立一個新的aurora實例徹底相同,由此能夠判定aurora從s3還原其實是從新起了一個aurora實例。最後點擊「建立數據庫」

image26.png

確實是新生成一個數據庫實例,耐心等待吧。
切換到數據庫頁面,能夠看到有兩個aurora實例

image27.png

image28.png

上圖中的實例aurora-instance-xuyi-copy就是從s3還原出來的新的aurora實例,已經成功建立。如今遠程到該實例查看數據庫情況

image29.png

可見全量複製成功。
至此經過S3還原aurora數據庫完成。

3 總結

首先,最大的區別是使用s3還原是從新生成了一個新的數據庫實例,而使用mysqldump不會新建數據庫實例。
其次,mysqldump屬於邏輯複製,備份成sql腳本文件,而經過S3還原是使用xtrabackup工具進行備份,屬於物理複製。
最後,官網文檔說使用s3速度會快一些,本次實踐沒有考慮性能,故沒法實際比較遷移速度。

附:關於mysqldump和xtrabackup的比較https://blog.51cto.com/11257187/2119413

相關文章
相關標籤/搜索