數據庫遷移到aurora mysql的方式有如下幾種:
1 )Rds mysql遷移到aurora mysqlhtml
上述兩種遷移方式很是簡單,只需在aws rds 控制檯操做便可,本片就再也不進行具體演練,具體可參考文檔mysql
2)外部mysql數據庫前喲aurora mysql數組
由於aurora mysql與mysql兼容,因此該過程與將mysql數據導入rds mysql的過程相似,可參考文檔 https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html。服務器
其總體架構以下圖所示:架構
我在光環雲裸金屬服務器上部署了mysql數據庫,具體部署過程略,能夠百度。ide
編輯文件/etc/my.cnf sudo vi /etc/my.cnf
更新[mysqld]字段以下:
[mysqld]
log-bin=mysql-bin
server-id=1 工具
重啓mysql服務 service mysqld restart性能
上圖中新建了一個數據庫schema_xuyi,如今將schema_xuyi進行備份,執行以下命令:
mysqldump \ --databases schema_xuyi \ --master-data=2 \ --single-transaction \ --order-by-primary \ -r backup.sql \ -u local_user \ -p
圖中可見生成了備份文件backup_xuyi.sql
具體建立過程省略,注意與此前的mysql數據庫版本儘可能一致。
遠程鏈接到aurora mysql數據庫,其初始狀態以下圖:
執行命令:
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數據庫的終端節點,鏈接成功
執行命令 source backup_xuyi.sql;
Workbench的刷新操做沒找到,從新鏈接了一下aurora mysql數據庫,可見其狀態以下:
其中已經有了schema_xuyi的庫,說明mysqldump導入成功,本次測試只是爲了驗證從外部mysql導入到aurora的過程,至此本次操做完成。
本地數據庫版本是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
從上圖可見Percona-xtrabackup安裝成功。
過程比較簡單,省略。
能夠經過IAM控制檯來建立相應的策略,具體過程省略,能夠授予aurora 訪問S3的全部權限。
具體建立角色的過程省略,能夠參考文檔: https://docs.aws.amazon.com/z...
以下圖所示,建立了一個角色role_aurora_to_s3,並將上一步的策略附加到了該角色上。
如上圖所示,已經將角色與aurora mysql數據庫相關聯。爲了讓角色生效還須要修改參數組,咱們選擇新建一個參數組
其中參數「aurora_load_from_s3_role」的值更新爲前面所建立角色的ARN。
再修改數據庫實例的數據庫選項
應用修改,當即重啓數據庫。
爲了跟以前的數據庫內容區別開來,特地新建了庫schema_test,並在其中新建了一張表table_test,以下圖所示:
全量備份
xtrabackup --user=root --password=XY-zte110 --backup --target-dir=/root/backupfiles
可見在當前目錄下生成了一個backupfiles目錄,該類目下的內容如上圖所示。
經過aws CLI將備份文件夾整個上傳到s3存儲桶(具體上傳的過程省略),登陸s3控制檯可見
登陸aurora控制檯,進入數據庫頁面
在數據庫頁面點擊「從S3還原」,
引擎選項->aurora
版本->咱們選擇的是mysql5.7
點擊「下一步」
下一步,進入數據庫詳細信息頁面進行設置,具體內容與新建aurora實例的過程類似
下一步,配置高級設置
從這個配置的過程來看,跟建立一個新的aurora實例徹底相同,由此能夠判定aurora從s3還原其實是從新起了一個aurora實例。最後點擊「建立數據庫」
確實是新生成一個數據庫實例,耐心等待吧。
切換到數據庫頁面,能夠看到有兩個aurora實例
上圖中的實例aurora-instance-xuyi-copy就是從s3還原出來的新的aurora實例,已經成功建立。如今遠程到該實例查看數據庫情況
可見全量複製成功。
至此經過S3還原aurora數據庫完成。
首先,最大的區別是使用s3還原是從新生成了一個新的數據庫實例,而使用mysqldump不會新建數據庫實例。
其次,mysqldump屬於邏輯複製,備份成sql腳本文件,而經過S3還原是使用xtrabackup工具進行備份,屬於物理複製。
最後,官網文檔說使用s3速度會快一些,本次實踐沒有考慮性能,故沒法實際比較遷移速度。
附:關於mysqldump和xtrabackup的比較https://blog.51cto.com/11257187/2119413