天天看點

MySQL低版本更新操作流程

(關注“資料庫架構師”公衆号,提升資料庫技能,助力職業發展)

0 - 更新背景

MySQL 5.5釋出于2010年,至今已有十年曆史,官方已經停止更新。2008年釋出的MySQL 5.1版本,在2018年釋出的MySQL 8.0版本後,也已不再相容和更新。

為了保證提供更穩定、高效的MySQL服務,我們準備啟動MySQL更新計劃。秉承“由簡入繁”、“由易到難”的原則,逐漸更新MySQL 5.5至5.7版本【8.0由于變更過大,暫不考慮更新到8.0版本】。

各個版本維護周期:

MySQL低版本更新操作流程

1 - 更新收益

MySQL 5.7版本對InnoDB引擎做了較大的優化。增加了很多實用性的新功能,比如:

  • 線上調整buffer pool;
  • 快速擴充varchar列;
  • 線上回收undo;
  • 高并發場景下,支援關閉死鎖檢測,提高行鎖效率;
  • 部分SQL可并行讀
  • ……

性能方面,MySQL 5.7相比于MySQL 5.5,SQL性能提升明顯。這得益于InnoDB優化器的重構,對于join + sort的讀請求,優化得尤為顯著。

MySQL低版本更新操作流程

在主從複制方面,MySQL 5.7支援并行複制,可有效地減少大批量寫入下的從庫延時情況。借助GTID的半同步複制,可更好的保證主從資料的一緻性。

MySQL低版本更新操作流程

安全方面,支援密碼過期政策、使用者鎖定等功能,保證短期賬戶超過規定時間即不可使用。

在平台中,支援SQL通路統計,可直覺看到每張表的通路情況,已經SQL的通路情況。

MySQL低版本更新操作流程

2 - 更新前注意事項

DBA核對:

  1. 所有表自增字段的ID從1開始;
  2. datetime類型的範圍在’1000-01-01’到’9999-12-31’之間;
  3. 表名大小寫不敏感;

開發人員核對:

  1. MySQL的應用驅動包(mysql-connector-java),建議在5.1.34及以上;

3 - 更新步驟

3.1 - 準備更新環境

  1. 從現有MySQL 5.5叢集的備份中,還原一個節點至更新中轉機;
  2. 在新叢集所在伺服器搭建一套空的MySQL 5.7叢集;
  3. 從還原的節點中導出賬号權限,導入至新叢集;
  4. 将還原節點的資料(MySQL 5.5)導出至新叢集(MySQL 5.7),平均速度為15M/s;
  5. 待資料導出完成,将新主庫挂載到老主庫,依靠MySQL主從,同步增量資料;
  6. 等待同步完成;
  7. 将新節點加監控;

3.2 - 切換步驟

  1. 與開發人員約定切換時間;
  2. 如果有從域名,提前調整;
  3. 到切換時間時,老主庫設定隻讀,新主庫主從複制點位不再變化時,修改負載均衡關系,kill老主庫連接配接;
  4. 通知開發人員切換完成;
  5. 下線老主庫、老從庫;
  6. 觀察新主庫、新從庫錯誤日志;
  7. 修改新叢集元資訊、監控配置、備份、高可用;

如果這篇文章對你有幫助,還請幫忙點贊、轉發 以下,你的支援會激勵我們輸出更多高品質的文章!

如果你還想看更多優質文章,歡迎關注我的公衆号「資料庫架構師」,提升資料庫技能,助力職業發展。

繼續閱讀