細說華爲雲RDS技術

互聯網技術的迅猛發展,手機、平板、智能電視等各類輸入終端的普及,讓互聯網數據呈現出爆炸性的增加。面對海量的數據,如何能以更加穩定、快速的方式存儲海量數據,以及從中挖掘出有價值的信息,成爲不少企業面臨的新課堂。html

雲存儲的出現爲數據挖掘快速發展帶來了新的機遇。亞馬遜、微軟、谷歌、IBM 等巨頭紛紛推出了本身的雲存儲平臺,國內華爲、騰訊、百度、360等公司也加緊了在雲存儲領域的佈局。雲服務已經被企業列入常規IT投資,雲數據庫服務是很是重要的一部分。mysql

本文將從一個用戶的角度歷數市場上現有關係型數據庫服務的主要功能,探索是否有一些改進的空間以及華爲企業雲在RDS(Relational Database Service) 技術上所作的一些選擇。sql

數據庫備份數據庫

數據庫備份指將數據庫系統中的數據加以複製,一旦發生災難或錯誤操做時,得以方便而及時地恢復系統的有效數據和正常運做。編程

數據庫備份是用戶經常使用的功能之一,mysqldump/xtrabackup 是最多見的備份方案,同時也是大多數廠商的選擇。安全

Mysqldump 有比較明顯的缺陷,沒法作增量備份,對於常常須要作備份的用戶來講,是沒法接受的。Xtrabackup 是 Percona 推出的商業解決方案,同時提供免費版本,基本機制是經過比較LSN來作增量拷貝。從機制來看,須要innodb 事務的支持,對於非innodb 好比 myisam,則經過FLUSH TBALES WITH READ LOCAK來保證數據的一致性,顯然,blockwrite 的時間取決於 myisam 表拷貝時間。可是咱們能夠禁用myisam表,這個問題能夠跳過。另外一方面,xtrabackup 須要運行在 GuestOS中,讀取拷貝生產環境數據目錄同時會影響到線上的 IO 表現。服務器

若是用戶想要刪除其中一個增量備份,該如何作增量的合併和刪除?仍是將依賴的增量一併刪除?運維

對用戶來講,恐怕這都不是理想的。異步

有沒有既不影響生產環境IO,又能作增量而且還能獨立刪除的辦法呢?佈局

事實上,華爲雲數據庫備份是由客戶啓動的數據庫實例的備份,不只能夠備份單個數據庫,還能夠備份整個數據庫實例。數據庫備份可以讓客戶按所需的任意頻率在已知狀態備份數據庫實例,而後隨時還原到該特定的狀態。數據庫備份可使用RDS 控制檯或 RDS API 建立,備份會一直保存,直到客戶使用 RDS 控制檯或 RDS API 將其或其所在的實例刪除。

·        急速增量備份 – 快速完成數據備份,避免大數據量備份時間過長。

·        線上業務輕干擾 – 基於備份的備份過程效率較傳統數據庫備份方式要高,合理的備份策略,對實例IO資源和業務有着很是有限的影響。

數據庫實例規格如圖1所示:

圖1

數據庫引擎

Innodb、myisam 是最經常使用的 MySQL 數據庫引擎,前者是事務安全的,後者則擁有更高的性能。前文描述到,myisam沒法保證備份點數據的一致性,FLUSH TBALES WITH READ LOCAK 又須要 block write,得不償失。

MySQLreplication 是作讀寫分離的基礎,分爲異步和半同步的方式,前者有對主機性能影響小,但數據有必定延時,後者則相反。兩種技術能夠知足用戶不一樣場景的需求。關於Crashsafe 的問題,分爲 master crash safe 和slavecrash safe。MySQL 5.6 版本以前存在一個 bug,即當 sync_binlog=1/innodb-flush-log-at-trx-commit=1 時,會使得 InnoDB 存儲引擎的 group commit 失效,致使性能急劇降低。crash-safe slave 的問題更復雜些,主要 replication 中的 SQL thread 和 IO thread 原子性問題,這裏再也不累述,MySQL 5.6 版本經過將 relay-info.log 的信息保存在 InnoDB 的事務表中解決了這個問題。

講了這麼多華爲企業雲RDS 技術,下面會從幾個方面詳解RDS 到底是什麼。

深刻淺出 RDS

RDS(Relational Database Service,關係型數據庫服務)是一種基於雲計算平臺的即開即用、穩定可靠、彈性伸縮、便捷管理的在線關係型數據庫服務。

RDS 具備較爲完善的性能監控體系和多重安全防禦措施,能使企業用戶在雲中輕鬆設置、操做和擴展關係型數據庫。經過 RDS 控制檯,能夠執行全部必需任務而無需編程,簡化運營流程,減小平常運維工做量,從而可以專一於應用開發和業務發展。

用戶訪問 RDS 實例時,須要通過 ECS(Elastic Cloud Server,彈性雲服務器),具體關係如圖2所示:

圖2

RDS 的最小管理單元是實例,一個實例表明了一個獨立運行的關係型數據庫,實例可進行以下分類:

 

  • 主實例
  • 備實例
  • 只讀實例

用戶能夠在RDS 系統中自助建立及管理各類數據庫引擎的實例。

RDS API 使用場景

RDS 的 OpenAPI 提供針對用戶數據庫實例的建立、查看、刪除等基本操做,以及查詢系統支持的API 版本、數據庫引擎及版本、運行環境規格、可用區域等操做。其主要的調用場景如圖3和圖4所示。

圖3

在建立實例以前,須要獲取系統支持的數據庫引擎及版本,運行環境規格以及可用區域信息。

在獲取到信息以後,能夠將返回結果做爲調用參數,執行建立實例操做。

在實例建立成功後,用戶能夠對本身所屬的實例進行列舉、查詢詳細信息、以及刪除操做。

圖4

數據庫實例須要先查詢數據庫全部參數和參數信息後才能進行設置參數取值和參數恢復默認值。

數據庫實例能夠進行擴容和重啓,能夠將返回的任務號做爲調用參數查詢異步任務的進展狀況。

數據庫解決方案對比

數據庫的解決通常可經過自建數據庫、數據庫on雲服務器、RDS等,咱們來經過圖5所示的詳細對比了解其優劣勢:

圖5

RDS 背後彙集了華爲的 DBA團隊專門負責運維,數據庫內核開發團隊負責改進數據庫,將不少須要 DBA 平常運維的工做逐漸歸入實現產品化。使用的客戶能夠從不少底層的任務中解放出來。

RDS 數據庫實例的生命週期包括建立、修改、重啓、備份和還原以及刪除等,具體如圖6所示。

圖6

 

完整的RDS須要提供哪些服務

接下來將以華爲企業雲 RDS 爲例,來講明做爲一個完整的RDS產品,至少須要可以提供哪些服務。

結合在數據庫技術領域的發展趨勢,完整的RDS 產品或可從如下幾點特性着手研發:兼容多版本 MySQL、多種實例類型知足多場景需求、數據庫管理便利靈活、指標監控便於運行情況瞭解、性能調優知足業務須要等。

以華爲企業雲 RDS 爲研究模板和例子,其服務特性可從如下幾點來看:

1.     安全。RDS 包括多種安全策略保護數據庫和用戶隱私,例如:VPC、子網、安全組等。

2.     性能監控。RDS 能支撐監控數據庫實例及數據庫引擎的關鍵性能指標,包括計算/內存/存儲容量使用率、I/O 活動、數據庫鏈接數、QPS/TPS、緩衝池、讀/寫活動等。

3.     數據遷移。登陸RDS 管理控制檯,便可在「數據遷移」頁面,提供數據遷移流程。

4.     高可用。RDS會將主數據庫實例數據複製到一個備用數據庫實例中,一旦主數據庫實例發生故障致使不可用,便可在很短期內切換到備用數據庫實例上。

5.     彈性伸縮。包括水平伸縮和垂直伸縮,例如可增刪只讀實例(每一個數據庫最多有5個只讀實例)、數據庫實例存儲空間擴容等。

6.     備份與恢復。RDS 既支持自動備份以及建立備份,又能支持恢復到某個備份文件點。

7.     日誌管理。可查詢數據庫「錯誤日誌」和「慢查詢日誌」,爲數據庫調優提供參考。

8.     參數配置。數據庫管理員能夠根據監控和日誌等信息,對數據庫引擎參數進行自定義設置,從而優化數據庫。

結語

華爲企業雲 RDS 能夠解決當前各種電子商務網站、社區網站、移動 APP 以及遊戲類應用數據庫搭建、管理以及維護的高成本及複雜性問題,使用戶能夠將更多的精力聚焦到應用和業務等核心層面,節約硬件成本和軟件等成本,實現按需付費。

華爲企業雲 RDS 支持主從熱備、讀寫分離,且提供了備份、恢復、監控等方面的全套解決方案,從而解決數據庫運維上的問題。

點擊這裏,瞭解更多華爲雲數據庫

相關文章
相關標籤/搜索