【云駐共創】華為云數據庫進階學習
【云駐共創】華為云數據庫進階學習
聲明:本文參考自《數據庫進階學習》,此課程覆蓋了華為云對各行業解決方案、數據庫遷移方案和實操、中型企業向大型企業演進中的方案需求、華為云數據運維能管理等
前言
本文分為3個章節進行介紹:
第1章 如何實現高可用
第2章 性能優化
第3章 各行業解決方案介紹
希望通過本文能夠讓你了解行業痛點和數據庫技術參數和功能,對了解數據庫各項技術參數,云數據庫運維能力有所幫助,并且能根據具體場景給出綜合解決方案
1、 數據庫技術參數解讀和設置
1. 什么是RDS MySQL的高可用
通過監控軟件實時監控HA集群主備庫的狀態,發現主庫宕機后,由高可用組件實現主備角色的自動切換,并能否保證數據的一致性,有效降低服務不可用時間具備這樣能力的集群就是高可用集群,如RDS MySQL的HA集群
2. RDS MySQL高可用的級別
? 同AZ:跨物理機的HA集群(部署在獨立電源的不同機柜中的物理機)
? 跨AZ:跨機房的HA集群
? 跨region:跨區域的HA集群
3. RDS MySQL高可用的切換機制
? MySQLHA集群狀態是通過Monitor組件實時監控的,VIP綁定在主機上,主備之間通過主從復制進行數據同步
? 當主機故障時,Monitor會自動發起3次對主機的連接
? 如果3次都失敗,Monitor會發起主備切換,先將VIP解綁,待備機重放
? 完所有relaylog追上主機后,備機升主,VIP綁定到新主機上(原備機)
? 新主機誕生后,如果原主機已恢復,重新建立主備關系
? 如果原主機不可恢復,需要人工解決原主機故障,手工重復主備關系
2、 性能優化
1. 性能壓測
1. 壓測目的
首先我們要明白為什么要壓測?
壓測之前要明確壓測的目的壓測的目的不同時,需要我們有針對性的設計不同的壓測方案常見的壓測目的有:
? 測試數據庫新版本的性能
? 驗證某些DB/OS層面的參數
? 測試不同存儲對數據庫性能的影響
? 測試不同場景下數據庫的性能表現
2. 影響因素
影響數據庫性能的因素
性能壓測前,因對影響數據庫性能的因素有一個大致的了解大致分為:數據庫層面、系統層面、存儲層面、網絡層面等
各層面常見指標如下:
3. 關注指標
壓測關注的性能指標
壓測過程中要隨時關注數據庫的常用性能指標,從而發現可能存在的性能瓶頸
數據庫常見的性能指標主要分為以下幾類:
4. 工具方法
我們如何選擇壓測工具和壓測方法?
針對MySQL而言,壓測工具有很多,如:sysbeno th、Tpcc-mysql、mysqlslap、tcpcopy等在沒有特定要求的場景下,一般選取業內使用最廣泛的sysbench作為壓測工具具體的壓測流程如下:
2. 索引優化
1. 索引簡介
Heap
? 什么是heap
heap就是一個沒有clusteredindex的一個table一個table如果沒有clustered index,那這個table的數據就保存在heap上,我們也可以說這個table是一個heap
? heap的特點
(1) Heap在邏輯上是一種扁平結構,它沒有intermediate/root pages
(2) 僅通過heap本身無法做lookup操作,只能在heap上做scan操作
(3) Heap中的page之間沒有previouspage或者nextpage這種鏈接
(4) Heap上可以創建一個或多個nonclustered index
Clustered index
? 什么是clustered index
在heap上創建了一個clusteredindex,這個table就變成了一個clustered index
? Clustered index的特點
Clusteredindex邏輯上采用樹形結構
Clustered index的leaflevel node保存著這個table中所有column的數據
Nonclustered index
? 什么是nonclustered index
Nonclusterd index是在heap或者clusteredindex之外的另一種獨立的結構,它里面保存著nonclusteredindexkey到與之對應的heap或者clusteredindex中的數據存儲位置
? Nonclustered index的特點
(1) 一個table上可以創建一個或者多個nonclustered index
(2) Nonclustered index會提升select操作的性能,但是會在一定程度上降低 update、delete的性能
(3) Nonclustered index并不是越多越好
(4) 創建什么樣的index,取決于應用程序的workload是什么樣的
2. 索引相關DMV
? sys.indexes
(1) 每個index(clustered或者nonclustered)以及每個heap在sysindexes中都有一行對應的數據
(2) Heap的indexid是0
(3) Clustered index的indexid是1
(4) Nonclustered index的indexid大于1
? sys.dm_db_index_physical_stats
(1) 可以查詢index的fragmentation信息
(2) 可以查看index的不同level有多少個page
(3) 可以查看page中百分之多少的空間已經被使用
3. 慢查詢優化
1. 慢查詢的影響
? 為什么要關注慢查詢?
(1) 之所以關注慢查詢,是因為慢查詢會導致以下影響:
(2) 數據庫cpu負載高
(3) IO負載高導致服務器卡住,拖慢數據庫性能 Sql執行計劃不合適,執行耗時過長
(4) 數據庫鎖的增多,影響正常的DDL和DML操作
2. 查看慢查詢日志
? 如何查看慢查詢日志?
(1) 查看my.cnf文件,通過slow_query_log_file參數定位慢查詢日志的位置
(2) 通過vim直接打開慢查詢日志對其進行單條慢sq1分析
(3) 通過mysqldumpslow或pt-query-digest工具對慢查詢日志進行匯總分析如下圖所示
3. 慢查詢優化步驟
? 針對一個特定的慢sql如何優化?
針對特定的慢sql,主要要經過以下幾步分析:
(1) 查看SQL執行計劃:explain sql
(2) 查看表的索引:show index from tb_name;查看表結構:show create table tb_name;
(3) 通過profiling看看sql耗時主要花在哪里?
(4) 通過Optimizer Trace觀察sql的執行過程,觀察sql執行計劃選取的依據
3、 各行業解決方案介紹
1.華為云物流行業數據庫解決方案
1.1華為云數據庫服務產品介紹
? 華為云數據庫服務全景圖
GaussDB自研面向政企客戶,滿足高可靠、高高性能;開源面向中小企業,極致性價比
1.2物流行業發展概況
? 物流4.0,智能化升級是物流行業必然的發展趨勢
? 物流行業主要場景
? 物流行業解決方案總體架構
1.3物流行業數據庫最佳實踐
? 智慧物流行業數據庫解決方案
客戶痛點:
? 路線運輸范圍跨度大,運輸過程監控難,車輛健康狀況不透明,路徑無規劃
? 地圖服務瓦片數據加載性能較差,MongoDB里加載底圖數據速度緩慢
? 信息量大、視頻數據多,更新速度快,物流效率與準確性難以保證
華為云數據庫解決方案:
? 華為云數據庫GaussDB(forMongo)存儲計算分離架構,無需主備同步,寫入速度是線下 MongoDB(DDS)的2-4倍,無CPU100%問題
? 使用關系型數據庫PostgreSQL,提供原生的基于地理位置支持
? 高頻率非結構化監控狀態數據使用influxDB或 MongoDB(DDS),適用于寫入量大的非結構化數據保存
? 較小視頻文件可使用MongoDB(DDS)非機構化數據庫服務進行直接存儲,使用自帶 GridFS模塊對文件進行存儲
? 快遞物流客戶數據庫案例
國內物流客戶數據庫使用情況:
? 物流公司專注于服務質量提升,在國內外建立了龐大的信息采集,市場開發,物流配送,快件收派等速運業務機構服務網絡,核心業務系統眾多,大型物流公司平均日訂單量可達百萬級,高峰期日訂單量可達千萬級別
? 國內物流公司核心業務系統對數據庫的使用量巨大,以某物流公司速運業務上云項目為例,涉及系統100+,數據庫實例套數300+,數據量20TB+
客戶痛點:
? 耦合性:客戶數據庫架構是多個業務共享一套數據庫,經常因為某一個業務負載較高,影響所有業務的性能穩定性
? 可靠性:客戶使用第三方高可用組件,穩定性差,切換時間分鐘級,且容易造成數據丟失,無法滿足業務需求
? DBA不足:客戶是運維兼數據庫管理,缺乏專業技能以及平臺對數據庫進行有效的整體管理
數據庫解決方案:
? 進行數據庫水平拆分,減少業務之間的耦合性能影響;同時利用RDS proxy進行讀寫分離,提高整體數據庫的性能承載
? 通過RDS 分布式HA系統,將數據庫切換時間降低到秒級,且保證數據0丟失,同時可根據業務場景,提供可靠性優先以及可用性優先的靈活切換策略
? 使用專業的管控平臺對200+實例進行全局管理,通過慢查詢,鎖監控等機制及時對數據庫性能預警,保障業務系統的穩定性
? 即時物流數據庫解決方案:業務復雜,數據庫種類繁多
行業背景和業務特征:
? 高吞吐高并發:數據采集維度多,采集周期短騎手軌跡、狀態等數據需
要實時上報,數據量的增長與騎手數量成指數式增長
? 業務流量變化大:數據并發寫入量和車輛的在線數量緊密相關,
? 數據種類雜:即時物流需求復雜,所產生的數據種類也比較多,無一種數
? 據庫能滿足所有需求,需要多種數據庫協同配合,如何使用好數據庫將是業務成敗關鍵
客戶痛點:
? 數據類型多樣,需要自己維護多種數據庫系統,維護成本高
? 傳統數據庫部署存在安全隱患,數據泄露或被竄改風險極大
? 即時物流數據增量快,寫入并發高,擴容成本與實施難度巨大以某即時
物流為例,假設100W個騎手,每日新增數據28TB,半年數據存量0.5PB;
? 故障數據結構不固定,寫入并發大,業務查詢場景復雜
數據庫解決方案:
? 產品豐富:華為云數據庫服務包含:MySQL、PostgreSQLDDS,滿足客戶多種數據庫使用場景的使用
? 彈性伸縮:全系列數據庫支持磁盤彈性擴容,業務無感知
? 超高性能(Gauss for MongoDB)
使用場景:騎手地理位置數據,地理圍欄等非結構化數據
? 故障切換:全系列數據庫服務支持跨AZ的高可用,并且支持秒級的高可用切換,應用配置無需改動
2.華為云汽車行業數據庫解決方案
2.1. 數據庫服務產品介紹
華為云數據庫服務全景圖
GaussDB自研面向政企客戶,滿足高口靠、高性能;開源面向中小企業,極致性價比
2.2. 車聯網數據庫最佳實踐
車聯網核心數據場景
數據是車企的核心資產,每個車企都有車聯網的業務場景
2.3. 移動出行數據庫最佳實踐
移動出行業務場景
傳統車型在移動出行細分領域具有先天性優勢
華為云為江淮汽車提供了云主機、云數據庫服務等160多種豐富的云服務,讓江淮汽車的新一代平臺功能越來越壯大,運維難度得到大幅降低,系統性能得以大幅提升
移動出行數據庫解決方案
行業痛點:
? 方案設計難度大:傳統車廠在該領域涉足少,經驗不足,無法合理的組合使用數據庫
? 數據庫讀寫壓力大:彈性與分布式是客戶的核心訴求,傳統方案較難滿足要求
? 數據可靠性要求高:移動出行涉及到核心交易數據對數據庫的可靠性要求更高
華為云數據庫解決方案:
? 極致的彈性能力:GaussDB(for Mongo)存儲系統的消息數據,位點數據,滿足大批量數據的寫入場景分鐘級彈性拓展能力極大的滿足了業務的橫向拓展
? 金融級數據高可靠:GaussDB(for MySQL)存儲支付數據、訂單數據等一致性要求比較高的數據,解決數據的一致性和彈性擴展難題
本文整理自華為云社區【內容共創】活動第15期
https://bbs.huaweicloud.com/blogs/345822
任務16:華為云數據庫進階學習
云數據庫 MySQL 上云必讀 運維 數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。