資料庫管理與運維難不難?騰訊雲資料庫給你答案

語言: CN / TW / HK

為幫助開發者更好地瞭解和學習前沿資料庫技術,騰訊雲資料庫特推出"DB · TALK"系列技術分享會,聚焦乾貨賦能創新,邀請數十位鵝廠資深資料庫專家每月和您一起深入探討雲資料庫的核心技術、效能、架構、管理運維和最佳實踐等。

3月30日第一期分享會“資料庫管理與運維”專場已結束,本期帶來各講師分享精華及直播回顧影片。想要講師ppt的小夥伴,可在騰訊雲資料庫公眾號後臺傳送"3.30講師課件",即可獲得講師課件哦!

遷移利器DBbridge

技術實現原理

——程學飛,騰訊雲資料庫高階產品經理

DBbridge軟體的誕生,是騰訊雲資料庫助力企業上雲的最佳實踐。它幫助使用者在業務不停服的前提下輕鬆完成從線下的Oracle、MySQL、MariaDB、PostgreSQL、DB2 等多種關係型資料庫資料庫遷移到騰訊雲TDSQL、TBase資料庫上面。利用實時同步通道輕鬆構建高可用的資料庫容災架構,也可以通過實時資料傳輸為下游資料分析、應用測試、資料中臺等業務提供強有力支撐。

在遷移過程中,DBbridge支援四方面功能:

遷移評估 :DBbridge帶有物件評估、應用評估功能,該功能可 出具對應的評估分析報告 ,告知使用者遷移過程中哪些物件和應用是需要改造的,需要做什麼工作,耗時情況等。 這樣有利於客戶提前部署遷移準備工作,精準投放人力物力提前解決遷移問題

資料遷移 :DBbridge支援多種遷移場景。第一種, 線下資料庫遷移至雲資料庫 ;第二種, 支援同構遷移與異構遷移 ;第三種, 支援資料拆分式遷移

資料同步 :DBbridge通過日誌解析技術實現資料增量同步。這種資料場景多應用於容災,或者做一些資料匯聚、查詢分離、報表分析之類的。

資料比對 :DBbridge自帶資料比對功能,通過多次對比源端、目標段資料庫資料,最終篩選差異資料記錄到差異結果集,支援差異資料人工處理。

DBbridge六大產品特性分別是:資料同步、高傳輸效能、故障自動恢復、視覺化操作、設定簡單快速、豐富的告警監控。

資料同步 :DBbridge基於日誌解析,能夠實現零停機同步。在客戶業務較為空閒時,進行資料同步即可。增量資料通過解析日誌,保證源端、目標端資料追平的時候,資料達到一致性,進而連線兩端業務。

高傳輸效能 :DBbridge通過高併發來實現高傳輸效能,具體而言:從源端匯出是併發的,日誌解析也是通過相關的併發機制,裝載同樣也是併發,保證它的資料裝載可以達到一個很高的一個速度,同步也達到很高的速度。

故障自動恢復 :這塊我們引入了高可用的機制,相當於某個任務節點宕掉了以後,可以在其他的work節點自動把這個任務拉起來,而拉起來分析的日誌點是接著之前宕掉的日誌點直接去分析的。如果整個所在的部署整個節點宕掉了,DBbridge會把節點所有任務在其它節點先拉起來,保證任何一個節點的 高可用性和持續性

視覺化操作 DBbridge所有的功能都是在視覺化頁面上的,過程是是自動來完成。頁面上的手工操作基本是 嚮導式安裝 ,直接點選下一步就好,所以操作起來相對來比較簡單。

設定簡單快速:頁面上會有相關的一些任務,明確告訴客戶是要配置結構遷移,還是增量遷移,還是做全量遷移,以及作業評估。而這些功能都是可以 獨立 開的,客戶可以只做全量遷移,也可以只做增量遷移等,可以只做資料評估,也可以只做資料比對。當然也可以組合,操作上是 靈活簡單 的。

豐富的告警監控 目前頁面上客戶可以看到DBbridge正在同步哪些表,這些表目前的一些增量同步狀態是什麼樣的,實時延遲是多久,是一秒還是兩秒,都可以在頁面上看到。

想了解更多DBbridge技術實現原理、技術架構及演進、客戶遷移例項內容, 點選觀看下方影片,即可獲得完整版程學飛講師分享內容。

騰訊雲資料庫自治

從“監控-診斷-解決”

AI 技術實踐

——張遠,騰訊雲資料庫專家工程師

講師本次分享將從資源管理、查詢優化、特定業務場景查詢優化三個方面介紹騰訊雲資料庫自治內容。

在資料庫服務當中,資源的監控和管理非常重要。只有合理地使用資料庫資源,才能提供穩定且高效的資料庫服務。資料庫服務資源可以分為IO資源、記憶體資源和CPU資源等。這些資源如果使用不合理,會影響資料庫服務。在IO資源方面,例如在執行大事務全表掃描時,IO資源緊張,進而產生IO延遲,從而影響使用者的查詢體驗;在記憶體資源方面,當有大量使用者連線和很多表時,會佔用大量記憶體容易產生OOM。在CPU資源方面,當我們在執行非常多的排序操作,CPU資源負載高,會產生業務抖動,甚至導致例項夯。因此, 合理使用資源,才能提供穩定高效的資料庫服務

那騰訊雲MySQL是如何做資源管理的呢?講師從記憶體分配和釋放、IO的使用及CPU資源隔離等方面對資料庫資源監控進行介紹。

查詢優化是資料庫裡非常重要的一環,而統計資訊則是查詢優化的基礎 。只有通過準確的統計資訊,才能在可選的執行計劃中通過統計資訊進行代價計算選出最優的執行計劃。騰訊雲MySQL修復了MySQL官方存在的Sever層統計資訊不及時更新的問題、統計資訊為0的問題等,進而保證了統計資訊準確性,避免因統計異常導致查詢優化選擇錯誤的問題。並且騰訊雲MySQL在MySQL官方原有支援等寬等高直方圖的基礎上, 支援compressed直方圖 。當存在資料傾斜情況時,通過compressed直方圖,可以選擇出正確的查詢計劃。

除了上述問題外,線上還存在很多查詢問題,需要人為干預才能選擇正確的計劃。例如索引選擇錯誤,通常可以通過hint的方式強制使用者去選擇正確的索引。但是這種方式,需要使用者自己去修改SQL語句,並且重新發布應用才能生效,這種對使用者體驗並不友好。針對這個問題,騰訊雲MySQL推出了 Statement Outline功能 。Statement Outline功能將使用者想要的查詢計劃固化到outline表中,使用者sql請求過來時去ouline中查找出對應的執行計劃去執行。 優化後用戶的語句會自動選擇正確的執行計劃,不需要修改業務層SQL語句,使用者體驗好

通過Statement Outline功能可以幫助使用者選擇合適的索引,但是很多時候是沒有合適的索引選擇的。這時候就需要我們去新建索引,然而新建索引是一個比較耗時的操作。騰訊雲MySQL對新建索引進行了大量的優化,在這一塊採用三階段(掃描原表資料、排序資料、構建新索引Btree) 全並行優化方案效能加速比最高達到15,是官方MySQL的5倍 。同時騰訊雲MySQL的功能更為齊全,不僅支援建索引的並行,還支援optimize table等需要rebuild table的DDL並行。

接下來,講師分享了 優化器自制方面 的思考。雲環境大規模化運營情況下,需要耗費大量專家人力來優化SQL,將專家經驗轉化自治能力意義重大。騰訊雲資料庫計劃推出自治系統,通過自治系統監控業務的執行過程,具體如下:

  • 採集 SQL 語句執行過程中各模組精細資料,建立業務負載模型。

  • 對業務 SQL 進行結構分析,利用代價模型評估優化決策。

  • 對 SQL 優化環境進行抽象和重用,支援統計資料隔離和虛擬化元資料。優化器執行基於統計資料,不再依賴原始業務資料。

  • 在隔離環境中對決策進行實施和檢驗。

  • 使用者自主採用決策或授權全自動實施。

最後,講師分享了死鎖、秒殺、遷移切換三個特定業務場景的優化。

死鎖場景的優化。 第一, 騰訊雲MySQL提供死鎖檢測開關 ,使用者可臨時關閉死鎖檢測功能。第二,騰訊雲MySQL進一步 豐富了死鎖資訊 。官方MySQL中的死鎖資訊並不完整,它只能顯示最近一次的死鎖資訊,而且只能展示死鎖環路上最近的兩個事物資訊,而不能展示所有的事務資訊。騰訊雲MySQL可以顯示死鎖環路上所有的事務資訊,同時也保留了所有的歷史死鎖資訊。第三,騰訊雲MySQL推出 事務鎖優化 ,有限減少鎖個數,只有在真正衝突才持有鎖,降低發生死鎖的概率,同時也減少了鎖資源佔用。

秒殺場景的優化。 在秒殺場景下會有大量的資料更新集中到部分的熱點資料行裡,而更新需要持有鎖,這樣就會造成大量的鎖等待現象,一方面會產生大量執行緒資源的切換,佔用資源。另一方面由於鎖的個數比較多,對死鎖檢測也會產生一些挑戰。因此騰訊雲MySQL推出了熱點更新的優化。我們通過事務鎖排程情況自動識別多個熱點,且不需要修改應用層SQL。並且騰訊雲MySQL是在InnoDB層進行依次排隊處理,這樣可以將很多其他的一些操作在InnoDB層以外並行處理完成。另外,騰訊雲MySQL對多語句事務進行優先處理排程,能夠及時的釋放出鎖資源。這個優化完成以後, 騰訊雲MySQL的秒殺場景效能提升了50倍,並且支援動態一鍵開啟,可以實現對業務無感知

遷移切換場景優化。 在HA主備切換或常態化的例項遷移的場景中,存在預熱這個突出的問題。新主庫Buffer Pool需要長時間預熱,而預熱期間影響業務執行,QPS長達數十分鐘才能恢復正常,對使用者影響很大。因此,騰訊雲MySQL推出了主備快取同步優化方案,方案如下:

  • 主庫非同步dump buffer pool資訊,獲取Btree熱點資料範圍,生成邏輯快照。

  • 備庫載入快照資訊,通過直接掃描Btree(非SQL方式)非同步預熱備庫buffer pool。

  • 主備buffer pool熱資料邏輯保持一致。

優化完成後,HA切換可以做到業務平滑遷移

想詳細瞭解資源管理監控原理、查詢優化原理及特定業務場景查詢優化的具體內容。點選觀看下方影片,即可獲得完整版張遠講師分享內容。

資料庫智慧調參能力解析及最佳實踐

——程昌明,騰訊雲資料庫高階產品經理

深度學習這個詞已經進入公眾的視線,時至今日,相關技術也比較成熟,騰訊雲資料庫團隊也在思考如何藉助深度學習的方式來提升資料庫的執行效率。第一個想到的就是資料庫的引數調優。這是一個不亞於圍棋的難題。由於業務系統的千差萬別,引數的設定也是一個讓資料庫管理者特別頭疼的難題。往往需要藉助一些經驗,去構築一套相對通用的引數模板。

引數調優其實是專家級資料庫管理者專屬的一個能力。我們以 MySQL 8.0版本為例,提供了接近1000個可配置的引數,常用引數近200個。同時,不同的業務也具備不同的負載特徵。如果我們將每一個引數的可設定範圍相乘,其可能性遠超於3的361次方,是超過可觀測宇宙的原子總數的。如果每驗證一種引數設定的可行性需要花費五分鐘的話,所消耗的時間也遠遠超過了從宇宙大爆炸到現在的時間。

在面對如此複雜的情況,往往只能藉助經驗,然後使用歸納法在有限的引數中,通過有限的變化來提升資料庫執行的效能。由此也產生了一些針對不同規格、不同場景下的引數模板。其實大家在日常使用資料庫的過程當中,也會不斷的去網路上搜索各種各樣場景中的最佳引數的設定方式,而搜尋出來的結果都聚焦於有限幾個引數。其實無法適配不同業務的需求,使得資料庫無法執行在最佳狀態下。

騰訊雲資料庫團隊通過不斷強化學習演算法來解決資料庫引數設定的問題。 在2019至2021年間,騰訊雲資料庫團隊連續發表兩篇頂級論文 。基於論文研究成果研發出了一款落地真實場景的可用系統, CDBTune 。CDB(cloud database),即雲資料庫, CDBTune就是對雲資料庫進行調優的一整套解決方案

在CDBTune方案中,團隊選擇端到端模型。因為不論是基於搜尋的方法還是基於學習的方法來進行引數推薦,都存在弊端。基於搜尋的方式耗時會非常長,基於學習的演算法需要海量的高質量樣本,很難適應工作複雜,隨著時間的變化的業務。

騰訊雲資料庫團隊的目標是使用有限的樣本,構建端到端的模型,輸入為當資料庫當前狀態,輸出為推薦的配置。並且這個過程當中的 時間成本儘可能的短 。團隊構建了一個使用 深度強化學習的雲資料庫調優系統 ,通過設定效能目標獎勵,比如TPS上升,QPS上升或者延遲降低,認為是獲得獎勵,使得AI像玩遊戲一樣來調整引數,最終資料庫獲得更高的一個性能。

整個過程可以看出,資料庫上執行推薦配置資料庫的當前狀態將發生變化。內部指標可用於衡量與強化學習狀態相對應的資料庫的執行時的行為。而外部指標可評估資料庫的效能或獎勵,不斷重複整個過程,直到模型收斂。

基於騰訊雲資料庫深度強化學習的雲資料庫調優系統,調優效果是非常明顯的,如下圖所示。從結果中可以看到,CDBTune在所有的情況下均體現了 更好的效能

通過強化學習模型,將調參的過程當作是獲取最佳效能得分的遊戲,進行迭代學習,最終實現不同工作負載下的資料庫效能提升。實測得到的結果顯示, 在一般情況下效能提升在15%-50%之間 。同時也得益於騰訊雲充沛且完善的硬體基礎設施,以及遺傳演算法、專家經驗、定型價格,使得這一能力得以產品化,不僅僅侷限於理論。

想了解更多智慧調參的最佳實踐內容,點選觀看下方影片,即可獲得。

資料庫備份服務DBS

技術實現原理

——秦君華,騰訊雲資料庫專家工程師 

DBS是為資料庫 提供連續的資料保護,低成本的儲存備份服務 。它可以為多種部署形態的資料庫例項提供資料保護,包括企業自建IDC或第三方雲廠商、混合雲、私有云上的資料庫例項,當然還包括騰訊雲上的,像CVM上自建資料庫、騰訊雲資料庫TDSQL上的例項等。

客戶的資料庫例項經過不同形式的網路連線接入到騰訊雲,通過SSL安全加密通道,把資料備份到騰訊雲內建儲存中。通過客戶設定的KMS金鑰生成資料加密金鑰,保證資料安全儲存在騰訊雲後端儲存中。客戶可以根據自身業務需求選擇備份、恢復的時間點,通過加密通道傳輸恢復到騰訊雲上或雲下資料庫中去。DBS就是這樣一套完整的資料備份和資料恢復解決方案,可以實現實時增量備份、快速資料恢復。

產品功能如下:

全自動備份: 通過預裝置份計劃,備份任務將自動在指定時間週期性地執行。也就是說,客戶可以根據業務特徵,制定備份週期,DBS可週期性的去備份原資料庫上的資料。

全量+增量: 支援資料庫的全量及增量備份,提供秒級RPO;支援全庫或部分庫表的靈活選擇。

加密儲存: 備份檔案託管於雲上,支援AES256加密,資料與金鑰分開託管,支援跨地域託管,保障資料安全。

自動恢復: 支援自動恢復至指定目標資料庫,秒級時間點選擇;支援全庫或者部分庫表選擇以及庫表重新命名;同時也支援下載備份集。

產品優勢如下:

零停機備份: 線上備份,業務系統無需停機。

故障自動恢復: 每一個任務傳輸節點都具備強恢復和自愈能力。

資料安全: 傳輸通道ssl加密,資料AES256加密儲存,資料與金鑰分開託管。

高傳輸效能: 靈活根據客戶業務複雜程度選擇備份鏈路規格,根據不同規格來完成備份需求高規格伺服器來保證每條備份鏈路都能擁有良好的傳輸效能。

視覺化操作: 視覺化介面幾步簡單配置即可開啟資料備份,方便客戶進行配置狀態的檢視。

豐富的告警監控: 監控指標,客戶自定義告警規則。

想了解更多資料備份實現架構、原理及實踐應用內容, 點選觀看下方影片即可。

資料庫統一納管平臺DBhouse技術路線

最佳實踐

—— 陳昊,騰訊雲資料庫產品經理

隨著業務網際網路化發展,越來越多的業務應用選擇使用分散式資料庫解決方案,資料庫的數量在急劇增長。另外隨著資料庫市場的發展,使用的資料庫種類也越來越多,從過去主要使用成熟商業資料庫產品,發展到現在使用越來越多的開源資料庫、國產資料庫、新型分散式資料庫,以及各種針對特定場景的NoSQL資料庫。

這其中面臨著幾大挑戰,首先是 運維架構的複雜性帶來的挑戰 。企業當前面臨的問題是隨著資料庫種類的變多,使用者量也在不斷增多,這對DBA的技術能力和架構設計能力是一個挑戰。第二個 運維挑戰是規範 。不同的資料庫型別會有不同規範,企業一般也會在通用的規範下個性化定製不同規範。其實規範是越來越多的,規範型別也不一樣,針對不同型別的庫規範也不一樣。但是資料庫規範化是很有意義的,能儘可能減少資料冗餘,並且降低資料插入異常的情況,但是資料變更規範如果全靠人工去維護的話,面臨如此多的規範,其實是有一定難度的。第三個挑戰是 開發和運維團隊的互動成本很高 。在企業中,一般都是一個DBA對應著很多應用人員,如果應用人員發現問題時再去反饋DBA,然後DBA再去懷疑資料庫,進機房去看。整體看下來,傳統的開發人員和DBA的互動模式管理起來是比較複雜的。

總結來看,其實就分為兩大痛點, 一個是資料庫運維問題,一個是我們流程管理的複雜度

那怎麼理解自身的複雜度?就是說當開源資料庫和傳統資料庫同時使用的時候就會導致資料庫的數量和種類越來越多,並且執行環境也越來越複雜,架構也越來越豐富,網際網路上線的變更也變得越來越頻繁,流程管理的複雜度也日益增加。

以往的資料庫管理方式主要是以需求驅動,運營團隊一般是被動去為產品和開發部門提供運維操作,如建庫和擴容升級等,比較簡單重複,但又消耗大量工作精力。所以我們就在思考,如何去簡化這樣操作,提升運維效率。

傳統管理方式的另一個特點是屬於事件驅動型的,團隊一般會有一定的事件防禦和檢查機制,但是又不是很全面。當一個數據庫事件發生之後,很多時候都是通過業務部門或者開發部門反饋後運維團隊再介入進來,效率就很難提高。另外,傳統運營模式下對運維人員的技能要求也比較高, DBA的需求量在不斷增加的同時技術門檻也變得越來越高了。

因此,DBhouse應運而生。

簡言之, DBhouse是資料庫統一納管平臺,幫助企業實現資料庫運維自動化、自助化和流程化 。功能如下:

監控能力 。我們會去做一些資料庫探活,包括資料採集,採集完的資料會定義告警。能力包括常用的資料庫巡檢,支援匯出巡檢報表;

安全能力 。包括制定規範、客戶稽核、許可權管理、完善審批流程鏈路、支援審計等。

運維能力 。DBhouse最大的特點是幫助運維人員提高運維效率,通過JDBC和指令碼的方式能夠幫助使用者去做很多運維操作,快速處理故障,比如說去做擴縮容。在交付場景上也能去實現自助化、標準化和自動化。

想詳細瞭解DBhouse架構設計、技術實現路徑及團隊經驗總結的具體內容, 點選觀看下方影片即可。

想要講師ppt的小夥伴,可在騰訊雲資料庫公眾號後臺傳送"3.30 講師 課件" 即可獲得講師 課件哦!

-- 更多精彩 --

資料庫納管平臺DBhouse的技術路線與實踐

快上車!資料庫智慧自治時代已到來,騰訊雲資料庫 X AI 取得新突破

點選 閱讀原文 ,瞭解更多優惠