當前位置:網站首頁>華為雲數據庫進階學習
華為雲數據庫進階學習
2022-06-24 07:10:30【程思揚】
前言
本文分為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)存儲支付數據、訂單數據等一致性要求比較高的數據,解决數據的一致性和彈性擴展難題
版權聲明
本文為[程思揚]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/175/202206240100217058.html
邊欄推薦
猜你喜歡
隨機推薦
- 你真的理解LDO的輸出電容嗎!?
- 二維激光SLAM( 使用Laser Scan Matcher )
- MySQL使用ReplicationConnection導致的連接失效分析與解决
- Go寫文件的權限 WriteFile(filename, data, 0644)?
- 在線文本過濾小於指定長度工具
- quartus調用&設計D觸發器——仿真&時序波驗證
- 【深入理解TcaplusDB技術】TcaplusDB構造數據
- 等保備案是什麼意思?應該去哪裏辦理備案?
- 建議自查!MySQL驅動Bug引發的事務不回滾問題,也許你正面臨該風險!
- 百萬獎金等你來拿,首届中國元宇宙創新應用大賽聯合創業黑馬火熱招募中!
- 力扣解法匯總513-找樹左下角的值
- 快速排序的簡單理解
- 139. 單詞拆分
- Web篇_01 了解web開發
- ADB 按鍵名、按鍵代碼數字、按鍵說明對照錶
- leetcode:面試題 08.13. 堆箱子【自頂而下的dfs + memory or 自底而上的排序 + dp】
- 解答02:Smith圓為什麼能“上感下容 左串右並”?
- MySQL的 安裝、配置、卸載
- 【ESP8266-01s】獲取天氣,城市,北京時間
- Redis 集群
- 【華中科技大學】考研初試複試資料分享
- 傑理之串口設置好以後打印亂碼,內部晶振沒有校准【篇】
- 【NOI2014】15.起床困難綜合症【二進制】
- 函數的定義和函數的參數
- JDBC 在性能測試中的應用
- 35歲危機?內卷成程序員代名詞了…
- SQL聯合查詢(內聯、左聯、右聯、全聯)的語法
- Outlook開機自啟+關閉時最小化
- 北大、加州伯克利大學等聯合| Domain-Adaptive Text Classification with Structured Knowledge from Unlabeled Data(基於未標記數據的結構化知識的領域自適應文本分類)
- 為什麼你的數據圖譜分析圖上只顯示一個值?
- sql server常用sql
- MySQL事務隔離
- STM32-------外部中斷
- 2022年信息安全工程師考試知識點:訪問控制
- 高仿書旗小說 Flutter 版,學起來
- 工作中一些常用的工具函數
- docker 部署redis
- 如何利用數倉創建時序錶
- version `ZLIB_1.2.9‘ not found (required by /lib64/libpng16.so.16)
- 【Flutter】如何使用Flutter包和插件