真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

直播回顧|數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

騰訊云數(shù)據(jù)庫(kù)國(guó)產(chǎn)數(shù)據(jù)庫(kù)專題線上技術(shù)沙龍正在火熱進(jìn)行中,3月26日郝志剛的分享已經(jīng)結(jié)束,沒(méi)來(lái)得及參與的小伙伴不用擔(dān)心,以下就是直播的視頻和文字回顧。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、蘄春ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的蘄春網(wǎng)站制作公司

關(guān)注“騰訊云數(shù)據(jù)庫(kù)”公眾號(hào),回復(fù)“0326郝志剛”,即可下載直播分享PPT。

瞬間從億條SQL中找到問(wèn)題所在:TDSQL自動(dòng)化運(yùn)營(yíng)體系_騰訊視頻

前言

“赤兔”平臺(tái)是TDSQL提供的產(chǎn)品服務(wù)之一,它從管理員視角提供TDSQL的全部運(yùn)維功能和上百項(xiàng)數(shù)據(jù)庫(kù)狀態(tài)監(jiān)控指標(biāo)的展示,讓數(shù)據(jù)庫(kù)管理員日常90%以上的操作均可通過(guò)界面化完成,同時(shí)更方便定位排查問(wèn)題。

扁鵲系統(tǒng)是TDSQL面向云市場(chǎng)推出的一款針對(duì)數(shù)據(jù)庫(kù)性能/故障等問(wèn)題的自動(dòng)化分析并為用戶提供優(yōu)化/解決方案的產(chǎn)品,它提供包括數(shù)據(jù)采集、實(shí)時(shí)檢測(cè)、自動(dòng)處理、性能檢測(cè)與健康評(píng)估、SQL性能分析、業(yè)務(wù)診斷等多種智能工具的集合。

在數(shù)據(jù)庫(kù)日常應(yīng)用中,常常會(huì)面對(duì)如存儲(chǔ)容量和性能需求急速增長(zhǎng)帶來(lái)的性能等異常問(wèn)題。對(duì)于引起數(shù)據(jù)庫(kù)異常的問(wèn)題SQL,這時(shí)扁鵲可以通過(guò)一鍵診斷分析,幫助用戶快速進(jìn)行智能檢測(cè)和分析,快速將問(wèn)題定位,同時(shí)給出優(yōu)化建議。在扁鵲的幫助下,DBA可以從日常繁雜的數(shù)據(jù)庫(kù)運(yùn)維工作中解脫出來(lái)。在支持騰訊會(huì)議需求量暴漲,數(shù)據(jù)庫(kù)遇到性能問(wèn)題過(guò)程中,扁鵲智能運(yùn)維曾幫助DBA快速在億條SQL中定位到了問(wèn)題SQL,并提供優(yōu)化意見(jiàn),將數(shù)據(jù)庫(kù)的性能問(wèn)題及時(shí)扼殺在萌芽當(dāng)中。系統(tǒng)顯示,經(jīng)過(guò)優(yōu)化,99%的SQL都消除了性能瓶頸。

“扁鵲”在迭代演進(jìn)過(guò)程中沉淀了騰訊數(shù)據(jù)庫(kù)實(shí)踐中積累的海量運(yùn)維規(guī)則知識(shí)庫(kù),可幫助DBA迅速排查日常常見(jiàn)異常,而結(jié)合騰訊云海量數(shù)據(jù)+機(jī)器學(xué)習(xí)能力,扁鵲可對(duì)未知問(wèn)題進(jìn)行主動(dòng)分析檢測(cè),并告知客戶,盡可能將大部分異常在發(fā)生之前就發(fā)出預(yù)警,將風(fēng)險(xiǎn)降到最低,提升DB持續(xù)可靠地服務(wù)各種不同業(yè)務(wù)場(chǎng)景的特性能力。

“赤兔”和“扁鵲”這一套組合拳既滿足高星級(jí)業(yè)務(wù)的精細(xì)化運(yùn)維,又能輕松應(yīng)對(duì)大量的普通數(shù)據(jù)庫(kù)運(yùn)維需求,更好地幫助用戶降低運(yùn)維成本。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

大家好,我是騰訊云TDSQL高級(jí)DBA郝志剛。今天分享的主題是TDSQL自動(dòng)化運(yùn)營(yíng)體系。聽(tīng)過(guò)我們前面系列課程的同學(xué)應(yīng)該對(duì)TDSQL的架構(gòu)原理等有比較詳細(xì)的了解。而回到現(xiàn)實(shí)的工作中處理各種問(wèn)題,還是要埋頭解決各種運(yùn)營(yíng)問(wèn)題。所以今天我們介紹一下TDSQL的自動(dòng)化運(yùn)營(yíng)體系,看TDSQL自動(dòng)化運(yùn)營(yíng)體系能為廣大DBA或者運(yùn)維人員帶來(lái)什么。事實(shí)上TDSQL自動(dòng)化運(yùn)營(yíng)體系可以幫助DBA的工作更放松一點(diǎn)、輕松一點(diǎn),而不是想象中比較苦、比較累的工作,希望對(duì)大家有幫助。

我演講分為四個(gè)章節(jié):

第一個(gè)章節(jié)是TDSQL自動(dòng)化運(yùn)營(yíng)體系,包括架構(gòu)、支持的功能特性等。第二、第三章會(huì)基于DBA的兩大事務(wù)體系——日常處理的事務(wù),以及故障分析類事務(wù),結(jié)合一些典型案例來(lái)介紹TDSQL自動(dòng)化運(yùn)營(yíng)體系是如何幫助大家高效、便捷、自動(dòng)化地解決這些事務(wù)問(wèn)題的。第四章做簡(jiǎn)單的總結(jié)。

TDSQL自動(dòng)化運(yùn)營(yíng)體系

第一章節(jié)主要括三部分內(nèi)容,一方面是對(duì)DBA日常工作進(jìn)行梳理。第二介紹TDSQL自動(dòng)化運(yùn)營(yíng)平臺(tái)“赤兔”。第三介紹數(shù)據(jù)庫(kù)后臺(tái)如何實(shí)現(xiàn)自動(dòng)化運(yùn)營(yíng),介紹背后原理性的東西,幫助大家理解TDSQL是如何怎么實(shí)現(xiàn)自動(dòng)化運(yùn)營(yíng)的。

1.1 DBA的日常工作復(fù)雜繁瑣?赤兔一鍵搞定

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

大家看到這個(gè)圖會(huì)非常煩躁,這是日常DBA要處理各種問(wèn)題:比如一個(gè)業(yè)務(wù)要上線,需要?jiǎng)?chuàng)造一個(gè)實(shí)例;比如機(jī)器要擴(kuò)容,需要緊急申請(qǐng)權(quán)限;不小心弄錯(cuò)數(shù)據(jù),需要趕緊回檔;或者是表結(jié)構(gòu)需要變更………這張圖里就是DBA日常要面臨的復(fù)雜量大的問(wèn)題處理。從中我們也可以總結(jié)出兩個(gè)特點(diǎn):第一個(gè)每個(gè)DBA對(duì)于處理這些都會(huì)有一套自己的邏輯。比如我做一個(gè)DDL,可能這個(gè)DDL可以這么操作,另外一個(gè)DDL要用另外一個(gè)工具,這些操作的方法不夠標(biāo)準(zhǔn)而且不夠穩(wěn)定;也許今天用的這個(gè)方法明天用就不靈了——它的穩(wěn)定性難以保證。

第二,我們做這個(gè)事情需要很多后臺(tái)操作來(lái)配合,后臺(tái)操作對(duì)于DBA來(lái)說(shuō)非常頻繁。一方面可能習(xí)慣于這種操作,但是這個(gè)方式帶來(lái)的風(fēng)險(xiǎn)會(huì)比較大,我們敲下一條命令的時(shí)候有沒(méi)有感覺(jué)很心慌,它的后果是什么?以往沒(méi)有統(tǒng)一的平臺(tái)來(lái)保證做這個(gè)事情是非常安全的。

所以TDSQL致力于解決這兩個(gè)難點(diǎn):

  • 第一個(gè)是流程要標(biāo)準(zhǔn)化;

  • 另一方面是效率提升。

我們不需要后臺(tái)操作,而是前臺(tái)點(diǎn)一點(diǎn)就可以解決DBA的大部分事務(wù)。

DBA日常工作大致可以分為兩類:一類是日常類事務(wù),另一類是故障類事務(wù)。日常類就是平時(shí)業(yè)務(wù)的各種需求,DBA通過(guò)一些腳本、自動(dòng)化工具可以做的事情;故障類就是比如我們遇到一個(gè)難題,“數(shù)據(jù)庫(kù)連不上”,“數(shù)據(jù)庫(kù)特別慢”,需要看一下為什么。

我們簡(jiǎn)單看一下日常類。除了剛才提到的創(chuàng)建實(shí)例、DDL在線變更,還有實(shí)例下線,這個(gè)雖然不常用,但是數(shù)據(jù)庫(kù)運(yùn)營(yíng)較長(zhǎng)一段時(shí)間中也是可能遇到的。此外還包括業(yè)務(wù)停運(yùn)了將數(shù)據(jù)庫(kù)清掉然后存放其他數(shù)據(jù),還有參數(shù)調(diào)整和調(diào)優(yōu)——我覺(jué)得這個(gè)超時(shí)時(shí)間可能設(shè)得不太合理,業(yè)務(wù)側(cè)要這么設(shè)置更改,等等。而擴(kuò)容更是在所難免——業(yè)務(wù)數(shù)據(jù)量特別大,或者請(qǐng)求量特別多,實(shí)例撐不住了就要擴(kuò)容。還有讀寫(xiě)分離,還有重做備機(jī)、備份手工切換、在線SQL……

故障類指的是問(wèn)題診斷類型:業(yè)務(wù)說(shuō)DB連不上,幫忙看一下為什么;還有監(jiān)控預(yù)警——如果DB有異常我們要自動(dòng)發(fā)現(xiàn)這個(gè)問(wèn)題,不然非常被動(dòng)。系統(tǒng)分析——可能數(shù)據(jù)庫(kù)運(yùn)行慢了,但是還不影響使用性,看一下能不能有優(yōu)化的空間;自動(dòng)容災(zāi)切換就是保證用戶的高可用;數(shù)據(jù)回檔防止數(shù)據(jù)誤刪;日常巡檢是針對(duì)性地發(fā)現(xiàn)一些潛在問(wèn)題。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

以上大概介紹了一些事務(wù),但是這些并不是說(shuō)完全代表TDSQL自動(dòng)化運(yùn)營(yíng)平臺(tái)支持的功能,這只是簡(jiǎn)單列舉了幾個(gè)比較重要的案例。言歸正傳,這些事情T(mén)DSQL是怎么自動(dòng)化完成的?TDSQL把這些功能呈現(xiàn)在數(shù)據(jù)庫(kù)運(yùn)營(yíng)平臺(tái)“赤兔”上,所有用戶包括DBA,在赤兔上就可以完成以上所有的操作,而且全是自動(dòng)化的;赤兔又會(huì)和TDSQL打通,赤兔會(huì)把流程以任務(wù)的形式發(fā)給TDSQL,TDSQL集群會(huì)自動(dòng)幫用戶完成這個(gè)事情,并且反饋給赤兔,然后用戶就可以看到這個(gè)操作的結(jié)果。

所以赤兔平臺(tái)整個(gè)流程就是把每一項(xiàng)日常類事務(wù)、故障分析類事務(wù)封裝成一個(gè)個(gè)自動(dòng)化流程,然后打通用戶的需求和TDSQL后臺(tái)操作的流程,幫助大家能夠利用平臺(tái)高效安全地解決日常工作中遇到的問(wèn)題。

1.2 TDSQL-赤兔自動(dòng)化處理原理

接下來(lái)介紹TDSQL后臺(tái)如何完成自動(dòng)化流程處理,包括介紹其中的自動(dòng)化處理流程以及核心的模塊。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

這個(gè)圖如果大家聽(tīng)過(guò)前面一系列的分享應(yīng)該是有所了解,但是今天這個(gè)圖和之前的架構(gòu)圖稍微有一點(diǎn)不一樣,我們依次看一下:

用戶的請(qǐng)求在赤兔平臺(tái)以任務(wù)的形式發(fā)給后臺(tái)的OSS(OSS是TDSQL對(duì)外的接口),OSS又會(huì)做一個(gè)分發(fā),把一部分的任務(wù)寫(xiě)在MetaCluster里面。MetaCluster寫(xiě)成任務(wù)之后左邊有scheduler和onlineddl兩個(gè)模塊會(huì)監(jiān)控監(jiān)聽(tīng)各自的任務(wù)節(jié)點(diǎn),有新的任務(wù)就進(jìn)行處理。

OSS把問(wèn)題分析類型的任務(wù)會(huì)直接發(fā)到扁鵲——TDSQL自動(dòng)化運(yùn)營(yíng)體系中的智能分析平臺(tái)。扁鵲負(fù)責(zé)問(wèn)題智能分析,它利用監(jiān)控采集的數(shù)據(jù)——比如DBA的狀態(tài)、主備切換等TDSQL監(jiān)控?cái)?shù)據(jù),以及扁鵲還會(huì)實(shí)際訪問(wèn)數(shù)據(jù)節(jié)點(diǎn),采集它認(rèn)為需要支撐分析實(shí)例的數(shù)據(jù)。扁鵲在TDQSL框架里是一個(gè)新的模塊。另外還有一個(gè)模塊是onlineddl,它專門(mén)獨(dú)立處理DDL請(qǐng)求。除了這兩種請(qǐng)求類型,其他的任務(wù)基本由scheduler模塊完成。

右下角有一條線是Agent——每個(gè)節(jié)點(diǎn)都由Agent進(jìn)程模塊來(lái)監(jiān)控甚至完成輔助性動(dòng)作,scheduler無(wú)法直接接觸所以Agent也會(huì)輔助完成剛才提到的流程。它也是通過(guò)MetaCluster獲取自己需要的信息進(jìn)行處理,處理完之后響應(yīng)反饋給scheduler甚至其他模塊。

所以這個(gè)圖有三個(gè)核心模塊來(lái)處理日常的流程:一個(gè)是扁鵲,這個(gè)是問(wèn)題分析模塊。onlineddl處理DDL請(qǐng)求,以及TDSQL各個(gè)模塊后面的角色以及任務(wù)的處理。TDSQL自動(dòng)化運(yùn)營(yíng)流程和框架就介紹到這里。

TDSQL日常事務(wù)處理自動(dòng)化

接下來(lái)講第二章,TDSQL日常事物處理自動(dòng)化。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

剛才講過(guò)我們把DBA任務(wù)分成兩類,一類是日常類,一類是故障類。先講日常類的處理自動(dòng)化,這個(gè)章節(jié)會(huì)選取兩個(gè)日常非常常見(jiàn)的場(chǎng)景分析,分享TDSQL是如何解決這些問(wèn)題的。

第一是重做DB節(jié)點(diǎn)功能,第二個(gè)是在線DDL功能,第三是TDSQL在自動(dòng)化流程里如何做安全保障。

2.1 重做DB節(jié)點(diǎn)功能

第一節(jié)重做DB節(jié)點(diǎn)。大家可能會(huì)想為什么重做DB節(jié)點(diǎn)?這個(gè)場(chǎng)景比較常見(jiàn),雖然它不是每天都發(fā)生,但是它隔一段時(shí)間就會(huì)發(fā)生,而且這個(gè)事情也是比較重要的。比如機(jī)器故障了機(jī)器修復(fù)可能需要一點(diǎn)時(shí)間,機(jī)器修復(fù)之后需要重新加入集群,數(shù)據(jù)可能就丟失;或者數(shù)據(jù)非常舊,已經(jīng)追不上了,我們需要對(duì)這個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行重做;另外,如果卡頓無(wú)法恢復(fù)了我們就需要對(duì)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行重做,恢復(fù)節(jié)點(diǎn)的功能。

這個(gè)怎么做呢?我們可以看到這樣一張圖:

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

首先系統(tǒng)會(huì)發(fā)起重做流程——這個(gè)流程在赤兔上進(jìn)行完成,赤兔會(huì)把任務(wù)發(fā)給TDSQL集群。TDSQL集群針對(duì)這個(gè)任務(wù)有四個(gè)步驟:

1. 為什么要重做DB節(jié)點(diǎn)呢?因?yàn)闄C(jī)器上可能殘留一些數(shù)據(jù),我們需要清掉,刪除限速。2. 拉取鏡像。無(wú)論是邏輯上還是物理上,都需要拉過(guò)來(lái)到節(jié)點(diǎn)上,作為數(shù)據(jù)的基準(zhǔn)。3. 然后是加載鏡像。4. 最后是恢復(fù)同步。

可能大家在日常的運(yùn)維或者是處理事情的時(shí)候都是這個(gè)流程,它基本比較符合大家的習(xí)慣。不同的是可能以往較多的是手工處理,而赤兔在這里一鍵就可以發(fā)下去。

整個(gè)流程做了非常好的優(yōu)化:

赤兔提供了主節(jié)點(diǎn)保護(hù),因?yàn)榧偃缡?主2備架構(gòu),為了防止出錯(cuò),系統(tǒng)限制了不能直接在主節(jié)點(diǎn)實(shí)施重做。此外還形成了實(shí)時(shí)節(jié)點(diǎn)信息,例如這個(gè)節(jié)點(diǎn)是不是故障狀態(tài)?延遲多少?……通過(guò)這個(gè)優(yōu)化我們可以實(shí)時(shí)判斷是不是正確的節(jié)點(diǎn)。

再看重裝DB步驟。第一步會(huì)刪除限速,而且這個(gè)數(shù)據(jù)往往是非常大的,幾百G甚至上T,所以我們要控制速度,如果快速刪除會(huì)導(dǎo)致IO較高,而且一臺(tái)機(jī)器上是多租戶的架構(gòu),可能會(huì)影響其他實(shí)例的正常運(yùn)行,所以要限速刪除。另一方面,刪除之后要把數(shù)據(jù)進(jìn)程重新安裝,安裝的時(shí)候會(huì)自動(dòng)拉取DB參數(shù)。因?yàn)镈B在運(yùn)行過(guò)程中可能很多參數(shù)已經(jīng)被改動(dòng),安裝之后的參數(shù)要保持和原來(lái)的參數(shù)一致,所以安裝過(guò)程要自動(dòng)拉取。而且,有時(shí)候參數(shù)列表會(huì)很長(zhǎng)有十幾個(gè),手動(dòng)操作是一個(gè)容易失誤且工作量極大的事情。

另外,拉取鏡像步驟,這是耗時(shí)最長(zhǎng)而且是比較重要的一步,這里面做了三個(gè)優(yōu)化:第一是選擇最優(yōu)的數(shù)據(jù)源,比如像一主幾備的情況下,每個(gè)備機(jī)都有延遲狀況,我們可能會(huì)選擇延遲最小的,這個(gè)數(shù)據(jù)是最新的,如果是一備的情況則優(yōu)先選擇備機(jī)。而這個(gè)過(guò)程可能會(huì)對(duì)業(yè)務(wù)的讀寫(xiě)有影響,所以要選擇最優(yōu)的數(shù)據(jù)。第二拉取進(jìn)程——比如同時(shí)做了很多流程不能同時(shí)拉取,一個(gè)是網(wǎng)卡流量會(huì)跑滿,另外是由于有大量數(shù)據(jù)寫(xiě)入,就是IO負(fù)載比較重。所以要互斥,這樣影響是最小的。第三是做壓縮加速——這個(gè)地方主要是在于數(shù)據(jù)源,系統(tǒng)會(huì)把數(shù)據(jù)拉取的鏡像進(jìn)行優(yōu)化壓縮,壓縮之后傳到做的節(jié)點(diǎn)上;這樣做的好處一方面是減輕網(wǎng)絡(luò)的壓力,壓縮比大約是三分之一到四分之一。同時(shí),我們可以加速,畢竟傳輸比較小,比如壓縮四分之一傳100兆就是傳過(guò)去400兆的數(shù)據(jù),對(duì)提升效率非常有幫助。

最后步驟是建立同步,這里主要是確認(rèn)同步點(diǎn)以及恢復(fù)同步,這里TDSQL會(huì)幫助你自動(dòng)去做。

所以大家看到,整個(gè)流程對(duì)用戶來(lái)說(shuō)只需要在赤兔上點(diǎn)擊“發(fā)起重做”就可以自動(dòng)完成整個(gè)流程,不需要過(guò)度介入。

我們來(lái)看一個(gè)重做DB的例子。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

上面的圖是一個(gè)實(shí)錄:可以看到DB節(jié)點(diǎn)有三個(gè),重做節(jié)點(diǎn)就在右下角,點(diǎn)“重做備機(jī)”按鈕進(jìn)入流程,這個(gè)頁(yè)面可以實(shí)時(shí)顯示兩個(gè)備節(jié)點(diǎn)狀態(tài),我們可以看到第一個(gè)備節(jié)點(diǎn)延遲非常大,這個(gè)就是我們需要重做的異常節(jié)點(diǎn),防止大家誤操作選錯(cuò)節(jié)點(diǎn)。提交完之后過(guò)一段時(shí)間會(huì)告訴你“重做成功”。整個(gè)流程就結(jié)束了。

2.2 在線DDL

我們?cè)倏丛诰€DDL功能。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

操作DDL非常常見(jiàn)的應(yīng)用,尤其是在業(yè)務(wù)變化非常頻繁、表結(jié)構(gòu)頻繁變化的場(chǎng)景中。為什么要提在線DDL?如果是面對(duì)一個(gè)普通的小表,那么可以直接做DDL,但是如果面對(duì)的是一個(gè)數(shù)據(jù)量比較大的表,比如幾十G甚至幾百G,要做一個(gè)表結(jié)構(gòu)變更怎么辦?這個(gè)時(shí)候很有可能影響業(yè)務(wù)請(qǐng)求,所以我們提出要做在線DDL。

在赤兔上,在線DDL也非常簡(jiǎn)單:我們?cè)诔嗤蒙咸峤徽?qǐng)求,然后傳輸?shù)絋DSQL模塊實(shí)施,一共兩步—熟悉數(shù)據(jù)庫(kù)的應(yīng)該比較了解,這兩個(gè)步驟一個(gè)負(fù)責(zé)拷貝數(shù)據(jù),隨后表數(shù)據(jù)同步完之后再進(jìn)行切表——新老表進(jìn)行切換。

TDSQL在這個(gè)流程里做了哪些事情?赤兔可以自定義DDL的開(kāi)始時(shí)間。那為什么要做這個(gè)事情?DDL雖然是在線,但是也會(huì)涉及到拷貝數(shù)據(jù),特別是在業(yè)務(wù)負(fù)載比較高的時(shí)候會(huì)對(duì)業(yè)務(wù)有影響,我們希望在業(yè)務(wù)不繁忙的時(shí)候——業(yè)務(wù)一天里的周期一般是固定的,即在業(yè)務(wù)低谷的時(shí)候做這個(gè)事情,因此平臺(tái)支持可以自定義時(shí)間,比如白天發(fā)起任務(wù),晚上一點(diǎn)鐘業(yè)務(wù)低估時(shí)再正式運(yùn)行任務(wù)。

拷貝數(shù)據(jù)。剛才提了拷貝數(shù)據(jù)可能會(huì)對(duì)業(yè)務(wù)有時(shí)耗影響,所以TDSQL會(huì)檢測(cè)這兩個(gè)指標(biāo):備機(jī)延遲檢測(cè)與活躍鏈接檢測(cè)——超過(guò)了會(huì)暫停,直到恢復(fù)正常時(shí)再繼續(xù)。這兩個(gè)指標(biāo)在前臺(tái)也可以自定義,不過(guò)系統(tǒng)有推薦的默認(rèn)值,一般不需要更改。

另外是切表流程。這個(gè)流程涉及到新老表的切換——把新表切成老表的名字。

切表流程涉及兩個(gè)功能應(yīng)用:切表加鎖檢測(cè)和保護(hù),以及切表模式自由選擇。第一個(gè),日常中我們很常見(jiàn)的場(chǎng)景是,切表前有一個(gè)大的事務(wù)在訪問(wèn)這張表,查詢了半個(gè)小時(shí)還沒(méi)有跑出來(lái)。這個(gè)時(shí)候要做切表操作就獲取不到元數(shù)據(jù)鎖,同時(shí)又阻塞了后面的業(yè)務(wù)請(qǐng)求,后面的業(yè)務(wù)請(qǐng)求會(huì)等前面的切表流程才能繼續(xù)。所以TDSQL根據(jù)這個(gè)場(chǎng)景做了一個(gè)切表加鎖保護(hù)——就是說(shuō),我們?cè)谥酪斜碇埃瓤匆幌抡?qǐng)求里有沒(méi)有這表的大查詢,有的話就暫時(shí)不切,先讓它完成,我們不會(huì)把它直接殺掉。開(kāi)始切的話時(shí)間非常短,對(duì)用戶最多影響一秒鐘。如果正要發(fā)生切表時(shí),正好有個(gè)請(qǐng)求搶在前面讓切表無(wú)法執(zhí)行,那系統(tǒng)就自動(dòng)超時(shí),不影響后面的業(yè)務(wù)SQL?;氐綌?shù)據(jù)同步狀態(tài)隔一段時(shí)間又會(huì)發(fā)起切表,而且間隔時(shí)間會(huì)越來(lái)越長(zhǎng),直到可以完成整個(gè)DDL操作。

另一個(gè)自由選擇功能意味著,切表模式可以選擇手動(dòng)和自動(dòng)切表:自動(dòng)完成也有加鎖保護(hù);手動(dòng)切表就是拷貝數(shù)據(jù)完成之后不立即切表,而是DBA可以手工在前臺(tái)發(fā)起切表操作。

我們看一個(gè)在線DDL的例子:

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

左圖就是在線DDL頁(yè)面,通過(guò)頁(yè)面可以看到表結(jié)構(gòu),大家點(diǎn)擊“編輯”按鈕就可以修改字段和索引。右圖的頁(yè)面里面我們可以看到,剛才提到的參數(shù)設(shè)置都可以自定義,也可以選擇默認(rèn)值,點(diǎn)擊“確認(rèn)”后整個(gè)過(guò)程自動(dòng)完成。如果選擇手動(dòng)切表,可以選擇合適的時(shí)間完成切表操作。

2.3 TDSQL自動(dòng)化運(yùn)營(yíng)體系的安全性保障

我們看一下安全保護(hù)機(jī)制,流程自動(dòng)化了,我們更要保證這里面每一個(gè)流程都是安全合理的。

安全性保障不僅限于這些,PPT里選取了部分常見(jiàn)的場(chǎng)景。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

權(quán)限申請(qǐng)非常常見(jiàn):如果有用戶已申請(qǐng)了密碼A,而且程序已經(jīng)使用這個(gè)賬戶在運(yùn)行中,如果再申請(qǐng)這個(gè)用戶而使用不同密碼,系統(tǒng)會(huì)自動(dòng)檢查,所以不讓老的密碼被覆蓋掉。

第二類是onlineddl自動(dòng)保護(hù)。

第三個(gè)是實(shí)例下線,這個(gè)我們做了一個(gè)隔離定時(shí)刪除功能。我們可以先進(jìn)行隔離,隔離之后訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求都會(huì)被拒掉,但是隔離狀態(tài)是可以及時(shí)恢復(fù)的,所以我們相當(dāng)于放在一個(gè)回收站里,數(shù)據(jù)還沒(méi)有清掉,但業(yè)務(wù)訪問(wèn)不了。過(guò)一段時(shí)間定時(shí)清理,比如7天之后(這個(gè)時(shí)間長(zhǎng)度是可以自定義的)沒(méi)有業(yè)務(wù)反饋,則可以清掉,安全下線。

重做DB節(jié)點(diǎn),在這個(gè)環(huán)節(jié)TDSQL提供了主節(jié)點(diǎn)保護(hù)的功能機(jī)制。擴(kuò)容,會(huì)涉及到TDSQL擴(kuò)容:把數(shù)據(jù)切換到另一個(gè)數(shù)據(jù)節(jié)點(diǎn),新數(shù)據(jù)節(jié)點(diǎn)在做數(shù)據(jù)的過(guò)程中是沒(méi)有影響的,因?yàn)闃I(yè)務(wù)的請(qǐng)求還是訪問(wèn)老的實(shí)例節(jié)點(diǎn),但是在最后一步路由切換,是在擴(kuò)容流程里唯一會(huì)對(duì)業(yè)務(wù)有影響的,因此TDSQL對(duì)這個(gè)流程做了保護(hù)——可以自主選擇切換模式,就是可以手動(dòng)切換或者自動(dòng)切換。手動(dòng)切換業(yè)務(wù)可以實(shí)時(shí)觀察,有問(wèn)題可以及時(shí)反饋;路由切換可能要經(jīng)過(guò)幾個(gè)步驟,中間流程如果有失敗會(huì)自動(dòng)回滾,不對(duì)業(yè)務(wù)有什么影響,所以也是對(duì)擴(kuò)容的保護(hù)。

備份:不需要干預(yù),TDSQL會(huì)自動(dòng)備份,備份過(guò)程中也有互斥檢測(cè)。最后也會(huì)有加鎖機(jī)制,雖然比較短,但是有業(yè)務(wù)請(qǐng)求比較長(zhǎng)的也會(huì)加鎖失敗,這里加鎖時(shí)間如果超過(guò)一定時(shí)間會(huì)自動(dòng)停止備份,備份會(huì)擇機(jī)再次發(fā)起,不對(duì)業(yè)務(wù)有影響。也就是說(shuō),備份不影響備機(jī)的正常運(yùn)行。

總結(jié)來(lái)說(shuō),TDSQL對(duì)自動(dòng)化運(yùn)營(yíng)提供了很多安全性保障措施,保證每一個(gè)流程在關(guān)鍵節(jié)點(diǎn),特別是在流程里可能會(huì)對(duì)業(yè)務(wù)的請(qǐng)求、訪問(wèn)有影響的環(huán)節(jié),都做了很多的保障。這個(gè)也是TDSQL運(yùn)營(yíng)這么長(zhǎng)時(shí)間各種經(jīng)驗(yàn)的總結(jié),和不斷優(yōu)化的結(jié)果,所以大家可以放心使用。

TDSQL智能化故障分析平臺(tái)

下面我們進(jìn)入第三章節(jié):TDSQL故障分析自動(dòng)化。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

剛才我們分析到,DBA日常遇到的第二類問(wèn)題主要是發(fā)現(xiàn)問(wèn)題的時(shí)候如何定位分析。

3.1 TDSQL “扁鵲”如何幫助DBA提升故障定位能力

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

DBA在面對(duì)故障的時(shí)候往往非常煩躁,各種問(wèn)題非常多。大家在定位問(wèn)題的時(shí)候歸根結(jié)底有幾個(gè)難點(diǎn):第一個(gè)是DBA的經(jīng)驗(yàn)?zāi)芰?duì)問(wèn)題定位影響非常大,很多優(yōu)秀的DBA都是通過(guò)不斷的故障積累經(jīng)驗(yàn)才能成為優(yōu)秀的DBA。第二個(gè),我們定位的時(shí)候往往要通過(guò)各種認(rèn)證登錄后臺(tái),查看各種指標(biāo)綜合分析,這樣效率非常低。其實(shí)很多的問(wèn)題都是重復(fù)發(fā)生、重復(fù)發(fā)現(xiàn),但是我們要重復(fù)定位和解決。

所以我們希望通過(guò)“扁鵲”平臺(tái)把DBA故障分析經(jīng)驗(yàn)沉淀下來(lái),沉淀到赤兔智能運(yùn)營(yíng)平臺(tái),讓它來(lái)自動(dòng)分析、發(fā)現(xiàn)這些問(wèn)題,為數(shù)據(jù)庫(kù)用戶和DBA帶來(lái)高效便捷的體驗(yàn)。如果有新的思路、新的問(wèn)題出現(xiàn)包括新的原因,我們都會(huì)持續(xù)沉淀到這個(gè)平臺(tái)來(lái)做循環(huán),這個(gè)平臺(tái)會(huì)逐漸變得非常強(qiáng)大。

3.2 TDSQL故障自動(dòng)化分析平臺(tái)“扁鵲”

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

扁鵲主要有四個(gè)主要功能:可用性分析、可靠性分析、性能分析和其他分析,其他分析也是在不斷強(qiáng)化??捎梅治鲋饕獓@主備切換場(chǎng)景展開(kāi);可靠性分析主要以較大范圍場(chǎng)景的體檢報(bào)告來(lái)分析數(shù)據(jù)庫(kù)目前的問(wèn)題,可以對(duì)DB狀態(tài)進(jìn)行了如指掌的分析。

性能分析針對(duì)的場(chǎng)景就是數(shù)據(jù)庫(kù)運(yùn)行變慢了。我們可以大概總結(jié)為這幾類,比如熱點(diǎn)表、大事務(wù)、鎖等待、長(zhǎng)事務(wù)等,下面一層可以分析SQL事務(wù)時(shí)耗,包括對(duì)SQL的檢查優(yōu)化等,來(lái)看SQL有沒(méi)有問(wèn)題。

下面這一層就依賴數(shù)據(jù)層,上面的模塊是數(shù)據(jù)的采集方式,最下面是數(shù)據(jù)的存儲(chǔ)方式,比如審計(jì)日志對(duì)TDSQL的數(shù)據(jù)都有采集,而DB的狀態(tài)包括DB的快照、事務(wù)信息、隱藏狀態(tài)等;同步信息包括表結(jié)構(gòu)信息等,例如表結(jié)構(gòu)不合理要先摘出來(lái)看看哪不合理。

還有是負(fù)責(zé)監(jiān)控DB的模塊,包括赤兔前臺(tái)能看到的各種指標(biāo)都在里面,還可以看到慢查詢、主備切換的流程等,包括切換成功與否、切換點(diǎn),切換時(shí)間點(diǎn)等關(guān)鍵指標(biāo)。

右下角就是操作系統(tǒng)狀態(tài),包括IO內(nèi)存、CPU等的狀態(tài)。

這張圖從上往下看,首先是可以分析可用性由哪些原因造成,然后有個(gè)邏輯分析層。最后是新增數(shù)據(jù)接入層。通過(guò)這個(gè)圖大家可以直觀了解到扁鵲工作方式以及內(nèi)部邏輯。

接下來(lái)針對(duì)扁鵲的三大功能舉例看一下它怎么做故障分析。

3.3 扁鵲數(shù)據(jù)庫(kù)智能分析平臺(tái)之DB可用性分析

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

TDSQL分布式數(shù)據(jù)庫(kù)通常是一主兩備的架構(gòu),TDSQL的Agent會(huì)周期性地對(duì)DB做探活。探活是指模擬用戶的請(qǐng)求,建立TCP連接后然后執(zhí)行查詢和寫(xiě)入,比如監(jiān)控表的查詢,模擬用戶的請(qǐng)求看是否正常。TDSQL的可用性在于探活異常,如果認(rèn)為DB發(fā)生異常,就會(huì)自動(dòng)發(fā)起切換流程。

這是一個(gè)自動(dòng)化流程,但是切完之后我們要看一下為什么引發(fā)了這次切換。這個(gè)可歸結(jié)為為什么切換時(shí)間點(diǎn)發(fā)生了探活失敗。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

可用性問(wèn)題歸結(jié)為主DB Agent探活失敗,大致可以分為三類:磁盤(pán)故障、DB重啟和資源耗盡。我們分別看這三類故障的原因:

  • 磁盤(pán)故障運(yùn)行時(shí)間長(zhǎng)會(huì)有故障,我們要分析日志信息來(lái)看磁盤(pán)在主備切換的時(shí)間點(diǎn)以及切換有沒(méi)有發(fā)生異常。一可以通過(guò)分析IO性能來(lái)判斷——磁盤(pán)在故障特別是SSD性能耗盡的時(shí)候會(huì)導(dǎo)致IO異常,IO非常高但是讀寫(xiě)性非常差,每秒都執(zhí)行不了幾次讀寫(xiě),而且服務(wù)響應(yīng)時(shí)間非常長(zhǎng)。
  • DB重啟依托于實(shí)時(shí)上報(bào)DB啟動(dòng)時(shí)間。只要啟動(dòng)時(shí)間發(fā)生變化我們認(rèn)為DB發(fā)生了重啟,這個(gè)也可作為DB重啟故障原因。
  • 資源耗盡這一類故障分析中,磁盤(pán)IO分析和剛才的IO是有區(qū)別的,磁盤(pán)故障IO是因?yàn)榇疟P(pán)故障,由正常請(qǐng)求引起,這個(gè)可能是因?yàn)樽隽舜蟮母虏樵?;此外還包括線程池狀態(tài)和大事務(wù)狀態(tài)等場(chǎng)景分析。

3.3.1 DB可用性分析:大事務(wù)問(wèn)題

接下來(lái)看大事務(wù)引起的可用性分析問(wèn)題。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

我們分析主DB的請(qǐng)求,剛才提到了有Agent負(fù)責(zé)探活心跳周期性,同時(shí)也會(huì)有業(yè)務(wù)的請(qǐng)求——假設(shè)這個(gè)地方一個(gè)大表刪除了1000W行……這些問(wèn)題TDSQL結(jié)合成一個(gè)組提交。提交后可想而知會(huì)產(chǎn)生很大的binlog,據(jù)我們了解的可能會(huì)產(chǎn)生5G、10G甚至幾十G。因?yàn)橐粋€(gè)事務(wù)必須在一個(gè)binlog里,所以非常大的binlog。產(chǎn)生大的binlog又會(huì)產(chǎn)生哪些因素呢?整個(gè)流程下來(lái)會(huì)發(fā)現(xiàn)耗時(shí)非常長(zhǎng)。而探活的時(shí)候會(huì)有時(shí)間頻率限制,超過(guò)時(shí)間就會(huì)認(rèn)為失敗,探活失敗提交了一分鐘必然會(huì)發(fā)生主備切換,因?yàn)榭赡芎芏嘈奶呀?jīng)上報(bào)仲裁主DB已經(jīng)故障。

我們通過(guò)分析可以看這種故障類型有幾個(gè)特征:心跳寫(xiě)入超時(shí)、產(chǎn)生大binlog文件、Innodb影響行數(shù)突增,以及事務(wù)處理prepared狀態(tài)。

通過(guò)提取出的這四個(gè)特征——四個(gè)特征都是符合的,我們可以認(rèn)為是由大事務(wù)引起的,從而導(dǎo)致切換。TDSQL自動(dòng)運(yùn)營(yíng)平臺(tái)針對(duì)主備切換的故障流程做分析,可以一鍵分析生成一個(gè)分析報(bào)告。

3.4 DB性能分析

接下來(lái)講一下DB性能分析。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

非常直觀就是執(zhí)行慢。我們可以根據(jù)經(jīng)驗(yàn)大概分成四類,網(wǎng)絡(luò)問(wèn)題、TDSQL本身問(wèn)題、資源性問(wèn)題和鎖。網(wǎng)絡(luò)問(wèn)題比較容易理解,網(wǎng)卡流量、網(wǎng)絡(luò)波動(dòng)性;SQL問(wèn)題包括索引分析、SQL分析;系統(tǒng)資源比如CPU、IO、Swap活躍度和鎖等待的問(wèn)題。需要分析的內(nèi)容也是依托于采集數(shù)據(jù)來(lái)完成操作。

3.4.1 DB性能智能分析:鎖等待

接下來(lái)看鎖等待引起的DB性能問(wèn)題設(shè)計(jì)思路。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

右邊這個(gè)看似有兩個(gè)對(duì)話,這是典型的鎖沖突對(duì)話:首先是begin開(kāi)啟事務(wù)。在第一秒的時(shí)候會(huì)話1開(kāi)始更新,在第二秒的時(shí)候會(huì)話2也要更新。又過(guò)了一段時(shí)間對(duì)話1完成了——鎖可能停留在兩個(gè)時(shí)間點(diǎn),這個(gè)時(shí)間點(diǎn)極有可能出現(xiàn)的情況是DB處于鎖的狀態(tài)。這里簡(jiǎn)單舉了兩個(gè)會(huì)話,幾千個(gè)同時(shí)在等待某人執(zhí)行SQL的時(shí)候給鎖住了,現(xiàn)場(chǎng)DB分析的話,可能會(huì)經(jīng)歷這樣一個(gè)流程:

第二個(gè)時(shí)間點(diǎn),會(huì)話已經(jīng)提交了,會(huì)話2時(shí)間比較久,在提交的一瞬間SQL就執(zhí)行成功了。會(huì)話2整個(gè)已經(jīng)超時(shí),時(shí)間點(diǎn)二業(yè)務(wù)場(chǎng)景下1個(gè)小時(shí)之前會(huì)話超時(shí)了,趕緊看一下當(dāng)時(shí)是什么情況。時(shí)間點(diǎn)1非常簡(jiǎn)單,熟悉DB的比較了解這種方法,底下有表就是事務(wù)表、鎖等待表,通過(guò)關(guān)系我們可以查出來(lái)會(huì)話1沒(méi)有提交,把會(huì)話2給堵塞了,所以這種場(chǎng)景最容易分析。平常做把三個(gè)表的關(guān)系記錄一下去查詢,看看到底是哪個(gè)會(huì)話有問(wèn)題然后把會(huì)話1殺掉,在業(yè)務(wù)看一下是不是有問(wèn)題。

而如果在赤兔平臺(tái),這些可以一鍵完成,在赤兔上點(diǎn)“實(shí)時(shí)分析”可以看到現(xiàn)場(chǎng)案例是什么,我們有建議把會(huì)話殺掉然后可以恢復(fù)正常,當(dāng)然這個(gè)之后要找業(yè)務(wù)看一下事務(wù)為什么這么長(zhǎng)時(shí)間而不釋放。

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

第二個(gè)場(chǎng)景,會(huì)話1已經(jīng)提交了,事后分析沒(méi)有故障現(xiàn)場(chǎng)怎么辦?我們可以看一下這邊的故障特征,這類的故障特征是會(huì)話2更新的表超時(shí)了,或者結(jié)余時(shí)間比較久。它的時(shí)間超時(shí)在T1,或者很久在T1執(zhí)行完了都有可能。

我們的目標(biāo)是找出來(lái)會(huì)話X,到底是哪個(gè)會(huì)話把會(huì)話2堵塞了,首先會(huì)話X在時(shí)間點(diǎn)是持有T表的行鎖,只有它具備這個(gè)條件才有可能把會(huì)話2堵塞住。我們可以通過(guò)SQL日志分析怎么把會(huì)話找出來(lái)。剛才提到了SQL有所有信息,其中就是客戶端IP,由于SQL日志有很多請(qǐng)求是交錯(cuò)在一起的,比如開(kāi)啟一條事務(wù)執(zhí)行一條SQL,又開(kāi)始另外一條執(zhí)行SQL,是很多事務(wù)連接的請(qǐng)求交錯(cuò)在一起的,我們很難分析出來(lái)一個(gè)事務(wù)的關(guān)系。所以我們第一步要做的是先要根據(jù)客戶端的ip port聚合還原事物,按照維度做聚合然后可以知道ip port所有的執(zhí)行數(shù)據(jù)。我們會(huì)對(duì)SQL進(jìn)行依法解析然后提交時(shí)間。

另外,我們還想提取事務(wù)中間可能有各種查詢更新操作,這些SQL到底是持有哪個(gè)表的鎖,它沒(méi)有鎖的話肯定對(duì)會(huì)話2沒(méi)有影響。緊接著我們得出這樣的結(jié)論:首先是事務(wù)的執(zhí)行時(shí)間,什么時(shí)候開(kāi)始、什么時(shí)候結(jié)束。事務(wù)的持鎖列表有沒(méi)有可能造成會(huì)話2的鎖堵塞,還有SQL的間隔時(shí)間,這個(gè)也是幫助業(yè)務(wù)去看兩個(gè)事務(wù)之間間隔這么長(zhǎng)時(shí)間,中間到底發(fā)生了什么把會(huì)話2鎖了,是否合理。

還有SQL的耗時(shí),這里面也包括每個(gè)SQL的耗時(shí),有個(gè)SQL執(zhí)行時(shí)間非常長(zhǎng),確實(shí)把會(huì)話2鎖了,我們要找出來(lái)看看為什么執(zhí)行時(shí)間這么長(zhǎng)。

通過(guò)這些信息表T1時(shí)間點(diǎn)可以得出來(lái)是由會(huì)話X對(duì)會(huì)話2造成的鎖定,然后再看會(huì)話X為什么要執(zhí)行得不合理,至少看一下業(yè)務(wù)是否正常。我們?cè)倏匆粋€(gè)案例,在時(shí)間點(diǎn)包括鎖來(lái)看是哪個(gè)會(huì)話引起了鎖的等待,然后我們會(huì)看間隔時(shí)間包括信息,用來(lái)定位的會(huì)話引起了鎖等待。

3.4.2 DB可靠性智能分析

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

DB可用性分析,是指對(duì)數(shù)據(jù)庫(kù)的狀態(tài)可以提前了解,包括:系統(tǒng)狀態(tài)、表空間分布、索引、死鎖診斷、鎖等待診斷、慢查詢分析、DB狀態(tài)檢查等等。我們可以看到這樣的案例:數(shù)據(jù)庫(kù)評(píng)分非常低,做了分析之后看到它是哪些問(wèn)題——CPU空間過(guò)度?任務(wù)非常多?下面的狀態(tài)信息都可以幫助大家來(lái)看DB到底有沒(méi)有問(wèn)題,是否可以提前發(fā)現(xiàn)問(wèn)題并解決。

平時(shí)對(duì)重要DB覺(jué)得運(yùn)營(yíng)狀態(tài)不太了解就可以做一次診斷。當(dāng)然這個(gè)系統(tǒng)也可以做自動(dòng)診斷,也支持每天針對(duì)重要DB每天出一個(gè)預(yù)報(bào)。這個(gè)是DB的可靠性分析介紹。

總結(jié)

今天主要分享了幾部分內(nèi)容:

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)

總結(jié)而言,TDSQL自動(dòng)化運(yùn)營(yíng)體系可以幫助大家把日常中非常煩瑣、需要手動(dòng)操作的事情進(jìn)行標(biāo)準(zhǔn)化、自動(dòng)化、智能化,一鍵完成,減輕大家的負(fù)擔(dān)。因?yàn)槲覀冏隽藰?biāo)準(zhǔn)化沉淀,很多需求不需要DBA自己做,基于TDSQL運(yùn)營(yíng)平臺(tái),業(yè)務(wù)也可以直接解決。日常的一些操作可以通過(guò)赤兔的權(quán)限管理放開(kāi)給業(yè)務(wù)。

今天的內(nèi)容大概就介紹到這里,謝謝大家。

Q&A

Q:是否有多活機(jī)制?

A:我們有多活機(jī)制,并且有強(qiáng)同步復(fù)制機(jī)制,保證數(shù)據(jù)一致。。

Q:online ddl是否保持兩個(gè)數(shù)據(jù)一致?

A:online ddl是基于工具進(jìn)行改造。簡(jiǎn)單而言就是會(huì)實(shí)時(shí)把更新類操作寫(xiě)進(jìn)新表,然后分批把原本的數(shù)據(jù)覆蓋到新表里。數(shù)據(jù)覆蓋完之后兩個(gè)表的數(shù)據(jù)一致,觸發(fā)器可以把業(yè)務(wù)請(qǐng)求的數(shù)據(jù)實(shí)時(shí)同步,直到切表流程結(jié)束。

Q:對(duì)于大事務(wù)如果剛開(kāi)始執(zhí)行沒(méi)有注意到等過(guò)了十分鐘才發(fā)現(xiàn)事務(wù)沒(méi)有執(zhí)行完,這個(gè)時(shí)候可以做哪些處理?

A:如果終止會(huì)話事務(wù)也會(huì)持續(xù)比較長(zhǎng)的時(shí)間,如果一直等事務(wù)持續(xù)也是一個(gè)比較長(zhǎng)的時(shí)間。這個(gè)時(shí)候我建議把它殺掉,如果不放心,剛才提到的有大事務(wù)極有可能觸發(fā)主備切換。我們會(huì)強(qiáng)制做切換來(lái)保證高可用。

Q:死鎖檢測(cè)是通過(guò)定位嗎?

A:這里不是死鎖,是鎖等待,是兩個(gè)事務(wù)都無(wú)法執(zhí)行,我們剛才的例子是可以提交,只是長(zhǎng)時(shí)間未提交的事務(wù)。會(huì)話2一直在等,在某個(gè)時(shí)間點(diǎn)超時(shí)了,這個(gè)時(shí)間點(diǎn)2之前肯定是有會(huì)話把表鎖住了,我們的目標(biāo)是要找出來(lái)在會(huì)話2之前某個(gè)時(shí)間點(diǎn)的某個(gè)會(huì)話是否持有表的鎖。我們根據(jù)表信息和時(shí)間點(diǎn)通過(guò)引擎日志,這個(gè)日志里記錄了所有用戶SQL執(zhí)行信息,可以通過(guò)這個(gè)表的信息來(lái)分析鎖超時(shí)的前后,主要是前有沒(méi)有會(huì)話持有。當(dāng)然這是一個(gè)篩選的過(guò)程,在那個(gè)時(shí)間點(diǎn)會(huì)有多個(gè)會(huì)話,這個(gè)會(huì)話就是做一個(gè)篩選,然后看會(huì)話是否合理。因?yàn)闆](méi)有DB故障現(xiàn)場(chǎng)只能通過(guò)發(fā)生的事務(wù)信息來(lái)看。

往期推薦

直播回顧 | 隨意遷移,無(wú)損遷移,其實(shí)很簡(jiǎn)單

特惠體驗(yàn)云數(shù)據(jù)庫(kù)

直播回顧 | 數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)


網(wǎng)站標(biāo)題:直播回顧|數(shù)據(jù)庫(kù)運(yùn)維不再難,數(shù)據(jù)庫(kù)“自動(dòng)駕駛”技術(shù)已到來(lái)
瀏覽地址:http://weahome.cn/article/pihdgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部