如何将AWS RDS 中的MySQL無縫更新切換至Aurora 5.6?
停機時間有多久?
會不會因為資料量的增加而導緻停機時間的增加?
下面參考這個方式,大大縮短了停機時間,而且無關資料量的大小。
-
建立隻讀副本,并對隻讀副本進行更新。此步驟無停機時間。[1]
1) 先建立一個隻讀副本,這個副本用作更新。這個過程是不會對源資料庫執行個體造成影響。
2) 帶隻讀副本建立好之後,對該隻讀副本進行更新。這時,停機不會影響到您的主庫。
3) 開啟隻讀副本的備份,将<備份保留期>設定為大于等于"1天". 這是為更新Aurora做準備。
-
對隻讀副本建立Aurora Read Replica。此步驟不影響主庫。[2]
1) 對更新至 MySQL 5.6的隻讀副本,建立 Aurora Read Replica。
2) 建立完成後,确認主庫到新Aurora Read Replica執行個體的同步狀态。
-
切換資料庫至 Aurora 執行個體。[3]
1) 終止寫入到源 MySQL 資料庫執行個體的所有事務,然後等待 Aurora 隻讀副本的副本滞後達到 0。
2)将 Aurora Read Replica 執行個體提升為主庫。
通過這種方法,停機之間僅僅是最後的切換時間,無論資料庫有多大,都不會影響到停機時間。
可以參考官方文檔。
[1]: https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.html#USER_UpgradeDBInstance.MySQL.ReducedDowntime
[2]: https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html
[3]: https://docs.amazonaws.cn/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.RDSMySQL.Replica.html#AuroraMySQL.Migrating.RDSMySQL.Replica.Promote