1. 程式人生 > >高配版 MySQL 如何升級?這裡有份最新技術解析

高配版 MySQL 如何升級?這裡有份最新技術解析

11月10日,由中國 MySQL 使用者組主辦的 ACMUG & CRUG 2018 技術沙龍,全國巡演武漢站拉開序幕。華為雲資料庫也隨之亮相,帶來《MySQL資料庫在雲端 - 華為雲資料庫MySQL實戰》主題演講,將華為雲對 MySQL核心做的大量優化為大家一一揭示。

武漢作為全國經濟中心、高水平科技創新中心、商貿物流中心和國際交往中心四大功能為支撐的國家中心城市,許多高新技術企業的逐漸落戶,給這座具有歷史厚重的城市帶來科技氣息。華為雲資料庫的到來,為 ACMUG & CRUG、為武漢的科技色彩都添上了絢爛的一筆。

由於開源資料庫已經在雲上蓬勃發展,但云資料庫並不是簡單 VM+DBS

的堆疊, 而是需要結合軟硬體做深度改造,因此,相關技術人員們正面臨不同程度的挑戰。本次活動主要面向 DBA(資料庫管理員)、運維、開發、MySQL使用者、Redis 使用者等人群,而華為雲資料庫技術專家帶來的分享,也正是圍繞他們的需求展開。

雲資料庫 VS 雲端自建資料庫

關於雲資料庫和雲端自建資料庫的差異,前者使用便捷、成本更低等,已經是老生常談的話題。而具體到技術人員的使用過程中,雲端自建資料庫還會存在更多挑戰,下面列舉幾個關鍵點。

雲端自建資料庫的挑戰:

  1. 沒有 super 許可權

由於沒有super 許可權,管理人員往往不能執行 reset master 等管理命令、不能通過 set 命令修改引數;此外匯入資料、建立觸發器等可能報錯;而且不能自行刪除日誌,可能導致磁碟空間滿,無法對資料庫進行寫入操作。

  1. 不能登入作業系統

這導致的問題主要有兩個:不能接觸物理檔案,不能從伺服器端 load 資料,對管理人員來說,相當不方便。

  1. 不能自由選擇儲存引擎

由於雲端自建資料庫不能自由支援第三方儲存引擎,導致管理人員選擇受限。

  1. 不能安裝外掛

由於不能自行安裝外掛,導致使用過程中某些功能或需求難以實現。

那麼,雲資料庫又是如何解決這些問題呢?

雲資料庫的對應措施

  1. 主備高可用、例項重啟等由雲服務商自動完成,通過 console 來修改引數,通過規避方法可以避免使用 super 許可權。
  2. 通過 console 服務化方式提供,比如慢日誌、錯誤日誌等,客戶從客戶端執行 load data local infile 匯入資料,許可權預設放開。
  3. 目前支援 MEMORY、CSV、MyISAM、InnoDB、ARCHIVE、MGR_MYISAM 等主要儲存引擎,滿足絕大多數場景。
  4. 將一些常用外掛事先安裝。

事實上,雲資料庫與雲端自建資料庫的最大區別,正是在於對資料庫系統的關注程度。

雲端自建資料庫相較傳統自建資料庫而言,雖然免去了機房、機架、網路、伺服器、作業系統等基礎設施的投入和維護,但仍然需要技術人員對資料庫系統自行搭建和運維,從安裝到運維,升級、補丁、備份與恢復、高可用、彈性伸縮等工作,一步都不能少。

雲資料庫最大的優勢,則在於解決資料庫的軟硬問題,提供資料庫從搭建到運維的一站式服務,將技術人員從繁複的日常運維中解放出來,投入到架構升級、應用優化等更重要的工作中去。

華為雲資料庫 MySQL 增強版

在與客戶和使用者的大量接觸中,華為雲資料庫從大家亟待解決的問題入手,基於業務可靠性和可用性進行優化,提升 RDS 服務體驗,解決痛點問題。

一方面,華為雲 MySQL 積極擁抱社群借鑑優秀方案,回合部分程式碼、fix 其中的 bug,達到快速上線的要求。一方面,華為雲 MySQL主動擁抱公有云架構,面向最終的服務體系,端到端進行優化調整,根據客戶可維護性訴求提升服務質量。

華為雲 MySQL 從功能到架構上的優化主要有以下幾個方面:

  1. GTID 約束放開

社群版對於開啟 GTID 有幾種約束限制,會導致一些使用者遷移上雲需要應用改造。華為雲 MySQL 搭載 HWSQL 核心,首家全面支援 GTID,無需改造應用即可遷移上雲,領先市場。

  1. 引入執行緒池

傳統 MySQL 採用的單執行緒模式,高併發場景下效能會降低。華為雲引入企業版中執行緒池的功能,大併發下支援更多連線,效能穩定卓越。當前,華為雲 MySQL 5.6 5.7 都引入了事務級的多執行緒複製,有效降低複製延遲。

  1. 支援儲存引擎自動轉換

華為雲 MySQL能自動將儲存引擎 MyISAM 轉換為 InnoDB,完全支援事務,同時避免表級鎖,提高併發性,且相容 MyISAM 語法,對使用者完全透明,解決 MyISAM 不支援事務的問題。

  1. 支援 RDS 許可權控制

防止使用者誤刪除系統庫或者執行一些破壞例項正常執行的命令,能保證例項的更穩定執行。

  1. 引入備份鎖,徹底解決備份事務阻塞問題

社群版 MySQL 使用傳統備份工具進行物理備份時,需執行 flush table with read lock;命令獲取全域性讀鎖;如果此前存在長事務執行未結束,讀鎖命令將持續處於等待狀態,導致後續讀寫語句阻塞。華為雲 MySQL 引入 backup lock,徹底解決備份事務阻塞問題,提高備份效率。

  1. 支援 root 賬號 kill 掉其他 user 執行緒,線上線下體驗一致

Root 能 kill 其他執行緒,檢視每個執行緒的記憶體、CPU 使用情況,符合線下使用習慣,方便運維。

當前,華為雲 MySQL 搭載 HWSQL 核心,增強連線池特性,併發 5000 ,效能穩定,QPS 超過 17+,高併發效能提升50%以上。

值得一提的是,華為雲近期推出了基於 Paxos 協議的一主兩備三節點架構的 MySQL 金融版,解決網路孤島、腦裂等分散式系統問題,確保資料最終一致性。保證資料庫高可用和高可靠,滿足金融場景下的資料庫高要求。