




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
分布式數(shù)據(jù)庫金融關(guān)鍵業(yè)務(wù)場景應(yīng)急處理研究報告版權(quán)聲明本報告版權(quán)屬于北京金融科技產(chǎn)業(yè)聯(lián)盟,并受法律保護(hù)。轉(zhuǎn)違反上述聲明者,將被追究相關(guān)法律責(zé)任。I編制委員會主任聶麗琴編委會成員王志剛李振編寫組成員鄧廣俊馮六軍高孝鑫郭智慧胡正策黃小慧黃元霞姜維瑩李博文李國良李蕭蕭路新英王登祎王莉莉王嵩陽吳洪輝許高峰徐雪濤編審周日明黃本濤參編單位:北京金融科技產(chǎn)業(yè)聯(lián)盟秘書處中國光大銀行股份有限公司興業(yè)銀行股份有限公司華為技術(shù)有限公司中興通訊股份有限公司騰訊云計算(北京)有限責(zé)任公司螞蟻科技集團(tuán)股份有限公司北京國家金融科技認(rèn)證中心有限公司飛騰信息技術(shù)有限公司北京奧星貝斯科技有限公司北京萬里開源軟件有限公司成都虛谷偉業(yè)科技有限公司上海愛可生信息技術(shù)股份有限公司上海熱璞網(wǎng)絡(luò)科技有限公司云南南天電子信息產(chǎn)業(yè)股份有限公司近年來,在金融科技的推動下金融服務(wù)和產(chǎn)品不斷推陳出新,數(shù)據(jù)處理呈現(xiàn)出體量巨大、并發(fā)量大、高處理性能、類型繁多等特點。銀行的業(yè)務(wù)系統(tǒng)應(yīng)對新挑戰(zhàn),不斷擴(kuò)容,架構(gòu)在不同數(shù)據(jù)庫和基礎(chǔ)設(shè)施之上,變得更為復(fù)雜,加大了日常運(yùn)維的難度和發(fā)生故障的風(fēng)險。雖然單個數(shù)據(jù)庫產(chǎn)品一般具備一定的故障探測和恢復(fù)能力,但銀行數(shù)據(jù)庫運(yùn)維人員仍需根據(jù)各種異常場景進(jìn)行應(yīng)急處理,在發(fā)生問題時最大程度縮短恢復(fù)時間、減少故障損失。本報告調(diào)研了參編單位現(xiàn)有應(yīng)急處理方案,分析了金融關(guān)鍵業(yè)務(wù)場景中故障產(chǎn)生的原因,提煉出共性應(yīng)急處理思路,形成普適的應(yīng)急處理方案和修復(fù)驗證指導(dǎo),為金融機(jī)構(gòu)進(jìn)行關(guān)鍵業(yè)務(wù)場景的分布式數(shù)據(jù)庫應(yīng)急處置提供參考。 1 1(一)應(yīng)急預(yù)案 1(二)應(yīng)急準(zhǔn)備 5(三)應(yīng)急演練 6(四)應(yīng)急處置 7 8(一)特性分析 8(二)數(shù)據(jù)庫組件故障 10(三)硬件故障 (四)機(jī)房故障 (五)數(shù)據(jù)庫異常操作 38 1一、研究背景近兩年隨著國內(nèi)數(shù)據(jù)庫產(chǎn)業(yè)的蓬勃發(fā)展,銀行中使用的數(shù)據(jù)庫類型逐漸增多,特別是分布式數(shù)據(jù)庫在金融關(guān)鍵業(yè)務(wù)場景的使用變得越來越普遍。數(shù)據(jù)庫是金融業(yè)中金融資產(chǎn)的重要載體。無論哪種數(shù)據(jù)庫,其穩(wěn)定性、可靠性及可用性都是整個系統(tǒng)平穩(wěn)運(yùn)行的關(guān)鍵。雖然現(xiàn)有分布式數(shù)據(jù)庫產(chǎn)品一般具備故障的自動探測、自動恢復(fù)能力,但不同分布式數(shù)據(jù)庫的特性和操作方式不相同,銀行數(shù)據(jù)庫運(yùn)維人員仍需根據(jù)各種異常場景做好應(yīng)急處理,在發(fā)生問題時最大程度縮短恢復(fù)時間、減少故障損失。為了業(yè)務(wù)連續(xù),運(yùn)維人員需要在最短時間內(nèi)判斷及處理數(shù)據(jù)庫異常,控制故障不進(jìn)一步擴(kuò)大,避免數(shù)據(jù)庫停止服務(wù),保證業(yè)務(wù)正常開展。其次,一些常見的人為誤操作可能會對業(yè)務(wù)數(shù)據(jù)、數(shù)據(jù)庫系統(tǒng)的狀態(tài)及性能會造成較大的影響,運(yùn)維人員還需對常見誤操作進(jìn)行規(guī)范的應(yīng)急處置,減少對業(yè)務(wù)及系統(tǒng)帶來的負(fù)面影響。本課題通過調(diào)研參與單位現(xiàn)有應(yīng)急處理方案,分析金融關(guān)鍵業(yè)務(wù)場景中故障產(chǎn)生原因,總結(jié)統(tǒng)一的應(yīng)急處理思路,形成普適的應(yīng)急處理方案和修復(fù)驗證指導(dǎo),為金融關(guān)鍵業(yè)務(wù)場景的分布式數(shù)據(jù)庫應(yīng)急處置提供參考。二、應(yīng)急處理思路(一)應(yīng)急預(yù)案分布式數(shù)據(jù)庫在銀行、證券、保險等金融機(jī)構(gòu)生產(chǎn)環(huán)境運(yùn)行時,都存在發(fā)生故障、停止服務(wù)的風(fēng)險。保障生產(chǎn)系統(tǒng)2數(shù)據(jù)安全、確保服務(wù)穩(wěn)定是金融機(jī)構(gòu)科技部門最重要的工作之一。為了快速響應(yīng)故障,保障分布式數(shù)據(jù)庫生產(chǎn)系統(tǒng)數(shù)據(jù)安全、服務(wù)穩(wěn)定,需要提前分析可能產(chǎn)生風(fēng)險的原因,并事先制定應(yīng)急處置方案。分布式數(shù)據(jù)庫系統(tǒng)技術(shù)棧包括分布式數(shù)據(jù)庫組件,操作系統(tǒng)、服務(wù)器及服務(wù)器運(yùn)行環(huán)境,服務(wù)器運(yùn)行環(huán)境又包括機(jī)房環(huán)境和地域環(huán)境。分布式數(shù)據(jù)庫生產(chǎn)系統(tǒng)主要面臨的風(fēng)險1.系統(tǒng)故障指支撐分布式數(shù)據(jù)庫運(yùn)行的系統(tǒng)(或子系統(tǒng))發(fā)生故障、停止服務(wù)。系統(tǒng)棧每一層中的系統(tǒng)都存在發(fā)生故障的概率。分布式數(shù)據(jù)庫組件可能在運(yùn)行過程中出現(xiàn)bug導(dǎo)致停止服務(wù);操作系統(tǒng)在運(yùn)行過程中可能會出現(xiàn)故障;服務(wù)器硬盤可能出現(xiàn)壞道,無法讀取數(shù)據(jù),內(nèi)存可能部分失效,讀取出錯誤內(nèi)容等;機(jī)房環(huán)境可能出現(xiàn)供電故障,空調(diào)故障等情況;地區(qū)環(huán)境可能出現(xiàn)地震、臺風(fēng)等影響數(shù)據(jù)中心機(jī)房運(yùn)行的災(zāi)難。任何系統(tǒng)都存在發(fā)生故障的概率,數(shù)據(jù)庫高可靠方案和系統(tǒng)及運(yùn)維應(yīng)急方案都是為在一定約束條件下降低故障發(fā)生的概率。當(dāng)故障發(fā)生的概率足夠小時,系統(tǒng)運(yùn)行的安全就得到了保障。一般可以從以下三方面考慮,降低故障發(fā)生的概率:一是要選擇故障率低的系統(tǒng)。比如選擇經(jīng)過檢驗的、故障率低的分布式數(shù)據(jù)庫、操作系統(tǒng)、服務(wù)器、機(jī)房供電設(shè)備、空調(diào)等系統(tǒng),建設(shè)機(jī)房時所選地區(qū)環(huán)境避免在地震帶上,避3免歷史上經(jīng)常受到臺風(fēng)侵襲的地區(qū)等。二是準(zhǔn)備冗余資源,確保系統(tǒng)棧中不存在單點故障。同等條件下如果準(zhǔn)備兩個或多個系統(tǒng),其同時發(fā)生故障的概率將遠(yuǎn)遠(yuǎn)低于單個系統(tǒng)發(fā)生故障的概率。三是及時發(fā)現(xiàn)系統(tǒng)異常,并且一旦發(fā)生故障,能立刻自動或手動啟動備用系統(tǒng)保持/恢復(fù)線上服務(wù),快速處理故障系統(tǒng),恢復(fù)故障系統(tǒng)的服務(wù)。故障和故障處理,需要關(guān)注如下幾點問題:(1)各個系統(tǒng)在設(shè)計階段要考慮預(yù)設(shè)屏蔽故障子系統(tǒng)的能力,單一系統(tǒng)(或子系統(tǒng))發(fā)生故障時,該系統(tǒng)不再接收請求、提供服務(wù)。這種機(jī)制可使故障被限制在對服務(wù)影響最小的范圍內(nèi),防止故障蔓延。(2)分布式數(shù)據(jù)庫最重要的資產(chǎn)是數(shù)據(jù),必須著力避免因局部系統(tǒng)故障造成數(shù)據(jù)丟失。例如硬盤損壞時不能造成硬盤上的所有數(shù)據(jù)丟失。需要詳細(xì)制定數(shù)據(jù)備份及恢復(fù)策略,在恢復(fù)系統(tǒng)服務(wù)時,保障數(shù)據(jù)不丟失。(3)雖然所有技術(shù)冗余資源同時發(fā)生故障的概率很小,但仍需要制定相應(yīng)的故障應(yīng)急處理預(yù)案,包括業(yè)務(wù)處理方法或手動處理方法。2.系統(tǒng)資源耗盡指系統(tǒng)資源耗盡,不能提供更多的服務(wù),主要有兩種場(1)由于任務(wù)繁重,系統(tǒng)資源已全部投入服務(wù),系統(tǒng)處理能力達(dá)到峰值,新的任務(wù)只能排隊等待處理。此時系統(tǒng)4處于滿負(fù)荷持續(xù)服務(wù)的狀態(tài),比如CPU滿負(fù)載、網(wǎng)絡(luò)帶寬資源耗盡等。這種情況需要先排除是其他系統(tǒng)(子系統(tǒng))故障(2)資源耗盡后,系統(tǒng)運(yùn)行出現(xiàn)故障,造成停止服務(wù)。比如硬盤已滿,但日志記錄系統(tǒng)仍要寫日志文件。對于此類資源耗盡風(fēng)險,需要采取如下兩類策略:一是事先預(yù)防策略。系統(tǒng)需要具備足夠的橫向擴(kuò)展能力,通過增加服務(wù)器等資源增加峰值處理能力。二是監(jiān)控應(yīng)對策略。系統(tǒng)需要具備強(qiáng)大的監(jiān)控告警能力,一旦某種特定資源使用率超過閾值就進(jìn)行告警,以便運(yùn)維人員果斷的啟動增加部署資源流程。3.操作風(fēng)險指生產(chǎn)運(yùn)維人員在分布式數(shù)據(jù)庫系統(tǒng)棧中進(jìn)行系統(tǒng)操作時,發(fā)生操作失誤,從而造成數(shù)據(jù)丟失或者系統(tǒng)停止服務(wù)的風(fēng)險。主要應(yīng)對措施包括以下幾個方面:(1)做好培訓(xùn)。通過培訓(xùn)可使運(yùn)維操作人員充分理解分布式數(shù)據(jù)庫系統(tǒng)棧中相應(yīng)系統(tǒng)的運(yùn)作原理,熟練進(jìn)行操作。(2)做好權(quán)限管理。通過權(quán)限設(shè)置,指定專項人員進(jìn)行風(fēng)險操作。(3)制定操作規(guī)程。完善數(shù)字化運(yùn)維工具,通過支持雙人操作的工具,操作規(guī)程等降低誤操作的概率。(4)做好系統(tǒng)數(shù)據(jù)備份。在執(zhí)行風(fēng)險操作前先對相關(guān)數(shù)據(jù)進(jìn)行備份。(5)及時恢復(fù)。一旦出現(xiàn)誤操作,按照操作規(guī)程及時恢5復(fù)數(shù)據(jù)、恢復(fù)服務(wù)。分布式數(shù)據(jù)庫在金融關(guān)鍵業(yè)務(wù)場景的應(yīng)急處理并不僅僅指系統(tǒng)棧中系統(tǒng)突然發(fā)生故障后進(jìn)行的處理工作,還包括系統(tǒng)設(shè)計及故障處理能力。完備的應(yīng)急處理需要從系統(tǒng)規(guī)劃建設(shè)階段開始重視并落實。分布式數(shù)據(jù)庫系統(tǒng)運(yùn)行風(fēng)險的處理思路也對系統(tǒng)棧中的各個系統(tǒng)的廠商、應(yīng)用系統(tǒng)開發(fā)商及運(yùn)維系統(tǒng)開發(fā)商都提出了要求,所以需要建立和各廠商及開發(fā)商的溝通渠道。高效、及時、可達(dá)的溝通渠道,能夠把需求和問題反饋到各廠商及開發(fā)商,并得到順利解決。此外,建議在分布式數(shù)據(jù)庫上線前,針對各種運(yùn)行風(fēng)險事先準(zhǔn)備應(yīng)急預(yù)案,并為預(yù)案順利執(zhí)行創(chuàng)造條件,包括完成應(yīng)急預(yù)案制定、應(yīng)急演練、應(yīng)急培訓(xùn)等事宜。保證從分布式數(shù)據(jù)庫上線開始,應(yīng)急預(yù)案就是真實可用的。一旦出現(xiàn)任何系統(tǒng)故障或報警,能根據(jù)應(yīng)急預(yù)案進(jìn)行處置。(二)應(yīng)急準(zhǔn)備應(yīng)急準(zhǔn)備工作指系統(tǒng)故障或風(fēng)險事件發(fā)生前,為防范風(fēng)險進(jìn)行的所有工作,包括以下內(nèi)容:1.組織層面有效處置突發(fā)事件,快速恢復(fù)重要業(yè)務(wù)應(yīng)進(jìn)一步完善應(yīng)急組織架構(gòu)中的應(yīng)急指揮層、應(yīng)急執(zhí)行層、應(yīng)急保障層設(shè)置。根據(jù)事件影響程度及持續(xù)時間等因素對突發(fā)事件進(jìn)行風(fēng)險等級劃分,并根據(jù)不同等級的風(fēng)險事件制定突發(fā)事件應(yīng)急處理流程,依據(jù)其可能造成的危害程序、緊急程度和發(fā)展態(tài)勢,6劃分預(yù)警級別并且建立相應(yīng)的預(yù)警信息發(fā)布機(jī)制,這是應(yīng)急準(zhǔn)備的重要部分。2.實施層面上線分布式數(shù)據(jù)庫系統(tǒng)及運(yùn)維管理系統(tǒng)、組織安排運(yùn)維團(tuán)隊等系統(tǒng)上線前所做的工作都是應(yīng)急準(zhǔn)備工作的一部分。在系統(tǒng)上線后仍有應(yīng)急準(zhǔn)備工作需要處理,包括系統(tǒng)日常運(yùn)行監(jiān)控、系統(tǒng)定期巡檢、系統(tǒng)運(yùn)行情況分析、應(yīng)急預(yù)案更新升級、日常數(shù)據(jù)備份、定期驗證備份數(shù)據(jù)的可用性、定期應(yīng)急演練,等。此外,金融機(jī)構(gòu)應(yīng)根據(jù)應(yīng)急演練實際情況完善應(yīng)急預(yù)案及操作規(guī)程等合規(guī)操作,并進(jìn)行操作合規(guī)性審(三)應(yīng)急演練數(shù)據(jù)中心所在地區(qū)發(fā)生地震、臺風(fēng),機(jī)房火災(zāi)、機(jī)房長時間停電;一個數(shù)據(jù)中心中的所有服務(wù)器同時故障;服務(wù)器硬盤同時故障等事件都屬于極低概率事件。這類極低概率事件在幾年,甚至分布式數(shù)據(jù)庫對外提供服務(wù)的整個生命周期中可能都不會發(fā)生一次。但是,應(yīng)急預(yù)案的內(nèi)容需包括對這類事件的處置應(yīng)對。應(yīng)急準(zhǔn)備工作在組織層面、實施層面、其他方面包括了處置應(yīng)對這類極低概率事件的工作。由于缺少實際事件的檢驗,一旦發(fā)生這類極低概率事件,相關(guān)領(lǐng)導(dǎo)、業(yè)務(wù)人員、技術(shù)人員、廠商/合作方人員,處理故障、問題的資源是否就位,處置是否有序、高效,排除故7障、解決問題、恢復(fù)服務(wù)是否迅速及時,整體應(yīng)急準(zhǔn)備工作是否完備,都需要通過定期的應(yīng)急演練來檢驗、完善。分布式數(shù)據(jù)庫涉及的極低概率事件的應(yīng)急演練,可以納入災(zāi)備切換、信息科技相關(guān)等應(yīng)急演練中一并考慮,統(tǒng)一組織。應(yīng)急演練工作應(yīng)在應(yīng)急準(zhǔn)備工作完成后安排實施。組織安排應(yīng)急演練工作實際上是對應(yīng)急預(yù)案的實施落地。首先要做好組織動員工作,建議成立行領(lǐng)導(dǎo)牽頭,相關(guān)業(yè)務(wù)部門、技術(shù)部門參與的應(yīng)急演練小組,協(xié)調(diào)相關(guān)廠商、合作方安排相關(guān)人員參與應(yīng)急演練工作。次之是做好應(yīng)急演練方案,明確崗位職責(zé),細(xì)化演練流程,保障方案可行性。其次是保障支撐應(yīng)急演練的各項資源就位,包括備品備件、通訊線路等。再次是做好業(yè)務(wù)合作方、技術(shù)產(chǎn)品/服務(wù)合作方等的溝通協(xié)調(diào)工作,提前通知對方本單位的應(yīng)急演練計劃,請合作方做好支持安排。最后是完善應(yīng)急演練組織的溝通機(jī)制,工具。應(yīng)急演練應(yīng)嚴(yán)格按照應(yīng)急預(yù)案,應(yīng)急演練方案來落實實施。且應(yīng)制定持續(xù)改進(jìn)的機(jī)制和方案,在應(yīng)急演練完成后,全面總結(jié)應(yīng)急演練過程中的經(jīng)驗和教訓(xùn),完善應(yīng)急預(yù)案和其他應(yīng)急準(zhǔn)備工作。(四)應(yīng)急處置當(dāng)有系統(tǒng)發(fā)生故障或者存在風(fēng)險時,需要啟動應(yīng)急風(fēng)險處置預(yù)案。風(fēng)險處置最重要的原則之一是在保障數(shù)據(jù)安全和操作合規(guī)的前提下,采用最短的時間恢復(fù)生產(chǎn),并按照應(yīng)急預(yù)案演練的情況推進(jìn)其他步驟。如果出現(xiàn)應(yīng)急預(yù)案沒有覆蓋的風(fēng)險,應(yīng)根據(jù)風(fēng)險影響范8圍進(jìn)行匯報,同時按照審慎的原則進(jìn)行處理,比如盡量確保在分析和處置風(fēng)險的過程中,獲得應(yīng)用開發(fā)商和具體系統(tǒng)廠商的參與和支持。在完成問題處置后應(yīng)梳理處置過程,并將風(fēng)險及處置情況納入應(yīng)急預(yù)案中,以防范之后的風(fēng)險。三、關(guān)鍵場景應(yīng)急處理(一)特性分析數(shù)據(jù)庫系統(tǒng)是按照特定數(shù)據(jù)結(jié)構(gòu)組織、存儲和管理數(shù)據(jù)的基礎(chǔ)軟件,根據(jù)架構(gòu)不同可分為集中式數(shù)據(jù)庫和分布式數(shù)據(jù)庫。分布式數(shù)據(jù)庫是物理上分散而邏輯上集中的數(shù)據(jù)庫系統(tǒng),利用分布式事務(wù)處理、數(shù)據(jù)自動分片、數(shù)據(jù)多副本存儲等技術(shù),將分散在計算機(jī)網(wǎng)絡(luò)的多個邏輯相關(guān)的節(jié)點連接起來共同對外提供服務(wù)。如圖1所示,分布式數(shù)據(jù)庫比較典型的技術(shù)架構(gòu)包括管理模塊、計算模塊和存儲模塊3個部分。9計算模塊負(fù)責(zé)解析應(yīng)用程序查詢請求、生成查詢計劃,并將查詢計劃自動分配到各計算節(jié)點并行執(zhí)行。存儲模塊負(fù)責(zé)執(zhí)行計算層數(shù)據(jù)操作請求,并實現(xiàn)數(shù)據(jù)在硬件層面的持久化保存,確保數(shù)據(jù)不丟失。存儲層將數(shù)據(jù)按分片進(jìn)行多副本存儲,保障數(shù)據(jù)可靠性。管理模塊負(fù)責(zé)協(xié)調(diào)分布式時鐘和維護(hù)元數(shù)據(jù),并提供數(shù)據(jù)庫參數(shù)配置和運(yùn)行監(jiān)控。分布式數(shù)據(jù)庫具有天然復(fù)雜性,產(chǎn)品自身組件、操作系統(tǒng)、磁盤和服務(wù)器等故障,都可能導(dǎo)致集群的少量節(jié)點實例不可用。且分布式數(shù)據(jù)庫在金融業(yè)的架構(gòu)形態(tài)通常有單中心、同城互備、同城雙活、兩地三中心等,當(dāng)網(wǎng)絡(luò)設(shè)備發(fā)生故障,除了導(dǎo)致部分節(jié)點實例不可用外,還可能出現(xiàn)集群分裂情況等。因此集群中任何節(jié)點的軟硬件故障或者任何節(jié)點之間的網(wǎng)絡(luò)連接故障都需要被妥善處理。分布式數(shù)據(jù)庫需要建立應(yīng)付各種異常場景的處理方案應(yīng)對金融業(yè)數(shù)據(jù)零丟失和業(yè)務(wù)高連續(xù)性的要求。較為典型的故障場景包括:數(shù)據(jù)庫自身組件故障、操作系統(tǒng)故障、硬件故障、機(jī)房故障、數(shù)據(jù)庫操作異常等。在每個場景下,應(yīng)急處理流程都包括通知相關(guān)人員、嘗試修復(fù)、備份數(shù)據(jù)、恢復(fù)數(shù)據(jù)庫和測試驗證等步驟。建立和執(zhí)行有效的應(yīng)急處理流程,可以幫助金融機(jī)構(gòu)最大限度地減少數(shù)據(jù)庫故障和安全事件對業(yè)務(wù)運(yùn)營的影響,保障金融行業(yè)的數(shù)據(jù)安全和運(yùn)營穩(wěn)定。下面將針對典型異常場景故障進(jìn)行應(yīng)急處理方案介紹。(二)數(shù)據(jù)庫組件故障1.管理節(jié)點宕機(jī)在分布式數(shù)據(jù)庫集群中,管理節(jié)點為集群提供各類管理服務(wù),所以總控服務(wù)需要高可用的設(shè)計,一般使用多副本一通過對分布式數(shù)據(jù)庫集群進(jìn)行配置來指定管理節(jié)點的副本副本上任后為集群提供總控服務(wù),當(dāng)管理節(jié)點當(dāng)前l(fā)eader發(fā)生故障卸任時,其他的副本重新選舉產(chǎn)生新的leader,并繼續(xù)提供總控服務(wù),從而實現(xiàn)總控服務(wù)的高可用。所以任何一個管理節(jié)點的故障對分布式數(shù)據(jù)庫集群整體業(yè)務(wù)沒有影響,但當(dāng)超過半數(shù)的服務(wù)異常后,分布式數(shù)據(jù)庫集群將無法提供服務(wù),此時需要依賴備集群恢復(fù)業(yè)務(wù)。當(dāng)人為原因、機(jī)器的故障、內(nèi)部選舉機(jī)制等,數(shù)據(jù)庫運(yùn)行異常,導(dǎo)致某節(jié)點無法正常工作時,產(chǎn)生了管理節(jié)點宕機(jī)時,解決方法是:可采用高可用架構(gòu)設(shè)置管理節(jié)點,為管理節(jié)點提供多副本保障,某節(jié)點宕機(jī)時,其他節(jié)點可接管故障節(jié)點的工作,保障數(shù)據(jù)庫正常工作。如果是數(shù)據(jù)問題,其他的副本重新選舉產(chǎn)生新的leader,并繼續(xù)提供總控服務(wù),從協(xié)議對故障節(jié)點進(jìn)行數(shù)據(jù)修復(fù),進(jìn)行數(shù)據(jù)同步,保證管理節(jié)點集群數(shù)據(jù)的一致性。如果是機(jī)器故障,可重啟或檢查機(jī)器故障原因進(jìn)行問題排除,機(jī)器正常重啟后,可通過Paxos協(xié)議對故障節(jié)點修復(fù)數(shù)據(jù),然后進(jìn)行數(shù)據(jù)同步,保證管理節(jié)點集群數(shù)據(jù)的一致性。進(jìn)行修復(fù)驗證時,人為切換至原故障管理節(jié)點(已經(jīng)修復(fù)正常),如數(shù)據(jù)庫操作結(jié)果與其他目前在運(yùn)行的管理節(jié)點操作結(jié)果一致,則修復(fù)成功。管理節(jié)點故障,主要可能原因如下:(1)機(jī)器報警。(2)無法正常保障數(shù)據(jù)庫工作。(3)返回結(jié)果異常。(4)數(shù)據(jù)丟失或損壞。(5)主副本數(shù)據(jù)不一致。2.計算節(jié)點和數(shù)據(jù)節(jié)點宕機(jī)計算節(jié)點和數(shù)據(jù)節(jié)點是分布式數(shù)據(jù)庫的核心,分布式數(shù)據(jù)庫在每個節(jié)點上只存儲部分?jǐn)?shù)據(jù),使用多副本一致性協(xié)議來保證分區(qū)的數(shù)據(jù)在多個節(jié)點上的一致性。任何一個節(jié)點故障,其他節(jié)點上的分區(qū)副本依然會構(gòu)成多數(shù)派,可以重新選舉出新的主副本來提供服務(wù),這個切換過程需要在保證RPO=0的同時盡量縮短自動切換時間。但如果分區(qū)多個副本所在的節(jié)點發(fā)生故障,那么剩下的節(jié)點將無法合法的選舉出主副本,這些分區(qū)將無法正常提供服務(wù),但其他正常分區(qū)依然可以提供服務(wù)。當(dāng)人為原因、機(jī)器故障、內(nèi)部選舉機(jī)制等導(dǎo)致數(shù)據(jù)庫運(yùn)行異常,此類節(jié)點無法正常工作時產(chǎn)生計算節(jié)點和數(shù)據(jù)節(jié)點宕機(jī)時,解決方法是:計算節(jié)點和數(shù)據(jù)節(jié)點都采用高可用架構(gòu),有多副本保障。當(dāng)某計算節(jié)點宕機(jī)時,其他計算節(jié)點可接管故障節(jié)點的工作,保障計算節(jié)點正常工作;當(dāng)某數(shù)據(jù)節(jié)點宕機(jī)時,其他數(shù)據(jù)節(jié)點中的副本可轉(zhuǎn)正為主本,保障數(shù)據(jù)節(jié)點正常工作。如果是計算節(jié)點數(shù)據(jù)問題,其他的計算節(jié)點重新選舉產(chǎn)生新的主節(jié)點,并繼續(xù)提供總控服務(wù),從而實現(xiàn)總控服務(wù)的高可用,保障數(shù)據(jù)庫正常工作。然后通過一致性協(xié)議對故障計算節(jié)點進(jìn)行數(shù)據(jù)修復(fù),進(jìn)行數(shù)據(jù)同步,保證計算節(jié)點集群數(shù)據(jù)的一致性。如果是數(shù)據(jù)節(jié)點數(shù)據(jù)問題,可切換到其他有該故障節(jié)點副本的數(shù)據(jù)節(jié)點,其副本會轉(zhuǎn)正為主本,進(jìn)行數(shù)據(jù)庫操作,保障數(shù)據(jù)庫正常工作。然后通過一致性協(xié)議對故障數(shù)據(jù)節(jié)點進(jìn)行數(shù)據(jù)修復(fù),進(jìn)行數(shù)據(jù)同步,保證數(shù)據(jù)節(jié)點集群數(shù)據(jù)的一致性。如果是機(jī)器問題,可重啟或檢查機(jī)器故障原因進(jìn)行解決,機(jī)器正常重啟后,可通過一致性協(xié)議對故障節(jié)點進(jìn)行數(shù)據(jù)修復(fù),進(jìn)行數(shù)據(jù)同步,保證計算和數(shù)據(jù)節(jié)點集群數(shù)據(jù)的一致性。進(jìn)行修復(fù)驗證時,人為切換到原故障計算和數(shù)據(jù)節(jié)點(已經(jīng)修復(fù)正常),如數(shù)據(jù)庫操作結(jié)果與其他目前在運(yùn)行的計算和數(shù)據(jù)節(jié)點操作結(jié)果一致,則修復(fù)成功。計算和數(shù)據(jù)節(jié)點故障,主要可能原因如下:(1)機(jī)器報警。(2)無法正常保障數(shù)據(jù)庫工作。(3)返回結(jié)果異常。(4)數(shù)據(jù)丟失或損壞。(5)主副本數(shù)據(jù)不一致。3.數(shù)據(jù)代理節(jié)點宕機(jī)分布式數(shù)據(jù)庫集群一般會提供數(shù)據(jù)庫代理組件以便準(zhǔn)確地將SQL請求路由至合適的計算和數(shù)據(jù)節(jié)點上。代理組件從而減少跨越節(jié)點的遠(yuǎn)程事務(wù)。數(shù)據(jù)庫代理節(jié)點一般是無狀態(tài)的,不記錄事務(wù)的狀態(tài)。當(dāng)一個節(jié)點故障后,業(yè)務(wù)應(yīng)用可以訪問新的數(shù)據(jù)庫代理節(jié)點來獲得數(shù)據(jù)庫服務(wù)。業(yè)務(wù)系統(tǒng)和數(shù)據(jù)庫代理節(jié)點之間可以部署負(fù)載均衡服務(wù)來保障更高的可用性。當(dāng)人為原因或機(jī)器的故障,數(shù)據(jù)庫運(yùn)行異常,數(shù)據(jù)代理節(jié)點無法正常工作發(fā)生宕機(jī)時,解決方案為:數(shù)據(jù)庫代理節(jié)點采用高可用架構(gòu),某節(jié)點宕機(jī)時其他代理節(jié)點可接管故障節(jié)點的工作,保障數(shù)據(jù)庫正常工作。如果是硬件或軟件的問題,需要重啟或檢查機(jī)器故障原因進(jìn)行解決,業(yè)務(wù)應(yīng)用可以訪問新的數(shù)據(jù)庫代理節(jié)點來獲得數(shù)據(jù)庫服務(wù)。業(yè)務(wù)系統(tǒng)和數(shù)據(jù)庫代理節(jié)點之間可以部署負(fù)載均衡服務(wù)來保障更高的可用性。修復(fù)驗證時,人為切換到原故障管理節(jié)點(已經(jīng)修復(fù)正常進(jìn)行數(shù)據(jù)庫操作,代理組件接收用戶發(fā)出的SQL請求,并將SQL請求轉(zhuǎn)發(fā)至最佳目的地,如果操作一些正常,則表示已經(jīng)修復(fù)成功。數(shù)據(jù)庫代理節(jié)點故障,主要可能原因可能是機(jī)器報警,無法正常保障數(shù)據(jù)庫工作,返回結(jié)果異常,時間延遲較長等4.GTS/GTM全局事務(wù)服務(wù)異常為保證全局的事務(wù)順序,分布式數(shù)據(jù)庫集群一般會提供一個全局時間戳服務(wù)(簡稱GTS)或者全局事務(wù)管理器(簡稱GTM),事務(wù)提交時候通過時間戳服務(wù)獲取事務(wù)版本號。因此GTS/GTM是分布式數(shù)據(jù)庫的核心,需要保證高可用。GTS/GTM服務(wù)默認(rèn)也是多副本的,因此其高可用能力跟普通表的能力一樣,在下述異常場景下依然能夠保證時間戳的正確性。(1)有主改選:原Leader主動發(fā)起改選的場景稱為有主改選。新leader上任之前先獲取舊leader的最大已經(jīng)授權(quán)的時間戳作為新leader時間戳授權(quán)的基準(zhǔn)值。因此該場景下,GTS提供的時間戳不會回退。等lease過期之后,原follower會重新選主,這一個過程稱為無主選舉。選舉服務(wù)保證了無主選舉場景下,新舊Leader的lease是不重疊的,因此能夠保證本地時鐘一定大于舊主提供的最大時間戳。因此新leader能夠保證GTS提供的時間戳不回退。當(dāng)人為原因、機(jī)器的故障、內(nèi)部選舉機(jī)制等,數(shù)據(jù)庫運(yùn)行異常,GTS或者GTM節(jié)點無法正常工作產(chǎn)生宕機(jī)時,解決方法是:GTS/GTM全局事務(wù)服務(wù)采用高可用架構(gòu),某節(jié)點宕機(jī)時,其他節(jié)點通過選舉接管故障節(jié)點的工作,保障數(shù)據(jù)庫正常工作。新leader上任之前先獲取舊leader的最大已經(jīng)本地時鐘一定大于舊主提供的最大時間戳。修復(fù)后進(jìn)行檢查,預(yù)期是當(dāng)前的GTS本地時鐘一定大于舊主提供的最大時間戳或者當(dāng)前GTM提供的全局事務(wù)號大于舊主提供的最大全局事務(wù)號。GTS/GTM全局事務(wù)服務(wù)故障,主要可能原因如下:機(jī)器報警、無法正常保障數(shù)據(jù)庫工作或返回結(jié)果異常。5.操作系統(tǒng)故障分布式事務(wù)數(shù)據(jù)庫服務(wù)運(yùn)行在操作系統(tǒng)中,操作系統(tǒng)中核心資源(如:CPU、磁盤、內(nèi)存、I/0、網(wǎng)絡(luò)等)是數(shù)據(jù)庫服務(wù)正常運(yùn)行的基礎(chǔ)保障。為保障分布式事務(wù)數(shù)據(jù)庫在不同資源占用比場景下服務(wù)的穩(wěn)定性和可靠性,需提前準(zhǔn)備各項核心資源的階梯占用以及資源匱乏等場景下的預(yù)案。通常情況下,在磁盤空間(包括inode耗盡)、內(nèi)存占用以及以上組合場景時,數(shù)據(jù)庫服務(wù)均會出現(xiàn)異常。解決方法是對系統(tǒng)資源進(jìn)行日常容量監(jiān)控和預(yù)警。6.文件系統(tǒng)為只讀模式現(xiàn)象為數(shù)據(jù)庫服務(wù)異常退出,重啟過程中無錯誤日志輸出,且重啟過程不斷報錯,并帶有“Read-onlyfilesystem”解決方案為:確認(rèn)問題原因是否為文件系統(tǒng)被設(shè)置為只讀情況,以及被設(shè)置為只讀模式原因。解決文件系統(tǒng)被設(shè)置為只讀模式原因后,重啟服務(wù)器,進(jìn)行修復(fù)確認(rèn),查看文件系統(tǒng)模式及數(shù)據(jù)庫服務(wù)運(yùn)行是否正常。故障產(chǎn)生的原因是:一般情況文件系統(tǒng)被設(shè)置為只讀模式是由于系統(tǒng)發(fā)現(xiàn)磁盤硬件(Riad卡,硬盤)故障或文件系統(tǒng)中文件被損壞后而采取的保護(hù)機(jī)制導(dǎo)致的,比如文件系統(tǒng)錯誤、磁盤壞道、RAID卡故障、inode資源耗盡、IO繁忙、硬盤背板故障、硬盤線纜故障、HBA卡故障、內(nèi)核相關(guān)硬件驅(qū)動bug、FW固件類問題以及系統(tǒng)沒有正常關(guān)機(jī),也會導(dǎo)致磁盤出現(xiàn)文件系統(tǒng)錯誤。為了保護(hù)數(shù)據(jù)不破壞分區(qū)中已有內(nèi)容,Linux在掛載文件系統(tǒng)時會以read-only只讀方式加載。7.總體CPU資源占用過高業(yè)務(wù)系統(tǒng)通常上線后資源使用率較為穩(wěn)定,此場景下CPU使用率相比較日常表現(xiàn)突然變高或者不斷攀升,導(dǎo)致系統(tǒng)運(yùn)行速度變慢或運(yùn)行異常。解決方案為:觀察CPU使用率分布,確認(rèn)具體導(dǎo)致CPU突然飆高的原因是軟件還是硬件。軟件層面問題通常可以確定為某一個程序引起,可通過觀察確認(rèn)具體引發(fā)CPU繁忙的操作,采取關(guān)閉不必要的進(jìn)程或操作即可恢復(fù)CPU使用率;如判定為硬件問題,則需要升級硬件進(jìn)行處理。進(jìn)行修復(fù)確認(rèn),預(yù)期是解決CPU飆高的軟件原因或硬件原因后,CPU使用率恢復(fù)至正常水平。此種故障分為軟件原因和硬件原因。軟件原因通常會存在新增應(yīng)用程序占用(如挖礦、測試軟件等)、有語法錯誤的SQL(如簡單SQL因連接符號或標(biāo)點符號等寫錯導(dǎo)致變?yōu)橐粋€超大的復(fù)雜SQL)、中毒等情況;硬件原因主要來自機(jī)房散熱、驅(qū)動故障、CPU壽命等情況。8.單核CPU跑滿現(xiàn)象為總體沒有明顯的資源瓶頸,查看進(jìn)程實時動態(tài)信息時發(fā)現(xiàn)單核跑滿,且磁盤調(diào)入內(nèi)存跑滿。解決方案為:進(jìn)入BIOS查看網(wǎng)卡隊列情況,如為單隊列網(wǎng)卡則需要升級或者更換為多隊列網(wǎng)卡;如為多隊列網(wǎng)卡,則需要設(shè)置多隊列,并且進(jìn)入系統(tǒng)后進(jìn)行多隊列的CPU中斷綁定處理。進(jìn)行修復(fù)確認(rèn),預(yù)期是解決上述問題后,CPU使用率分散到所有核,且磁盤調(diào)入內(nèi)存較為均勻。故障原因通常為多隊列網(wǎng)卡未開啟多個隊列、多隊列處理未綁定到多個CPU上或者網(wǎng)卡本身為單隊列等等。9.I/O資源占用過高通常,業(yè)務(wù)系統(tǒng)上線后資源使用率較為穩(wěn)定,如I/O使用率相比較日常突然變高、I/O卡頓或進(jìn)程實時動態(tài)信息中I/O等待所占用的CPU時間百分比數(shù)值變大,產(chǎn)生系統(tǒng)運(yùn)行速度變慢或運(yùn)行異常甚至操作系統(tǒng)卡頓的問題。解決方案是:觀察磁盤I/O的使用情況,判斷是否軟件進(jìn)程或線程存在I/O使用頻繁,如判定為非軟件系統(tǒng)問題,則需要進(jìn)一步排查硬盤故障類硬件問題或其他偶發(fā)性情況,偶發(fā)性問題需要進(jìn)一步排查操作系統(tǒng)bug、異常操作等,綜合考慮并確認(rèn)I/O繁忙的原因。軟件層面問題通??梢源_定為某一個程序引起,并通過觀察可確認(rèn)具體引發(fā)I/O繁忙的操作,此時關(guān)閉不必要的進(jìn)程或操作即可恢復(fù)I/O使用率;如判定為硬盤故障類硬件問題,則需要升級硬件進(jìn)行處理,如為其他偶發(fā)性問題,則需要進(jìn)一步排查操作系統(tǒng)bug、異常操作等并進(jìn)行對應(yīng)升級修復(fù)。進(jìn)行修復(fù)確認(rèn),預(yù)期是解決I/O飆高、卡頓的軟件原因或硬件原因后,I/O使用率恢復(fù)至正常水平。故障原因分為軟件原因和硬件原因。軟件原因通常會存在新增應(yīng)用程序占用(讀寫壓力高的測試軟件、系統(tǒng)級別頻全表掃描等)、操作系統(tǒng)bug等;硬件原因主要來自磁盤損10.內(nèi)存消耗過大數(shù)據(jù)庫使用過程中,通常會占用較多的內(nèi)存,一般不影響數(shù)據(jù)庫服務(wù)。而當(dāng)內(nèi)存溢出、內(nèi)存碎片泄漏等情況導(dǎo)致服務(wù)被異常關(guān)閉時,可能出現(xiàn)內(nèi)存消耗過大的問題。解決方案為:服務(wù)正常情況下,內(nèi)存偶發(fā)性增加大概率是因為業(yè)務(wù)系統(tǒng)中存在高消耗內(nèi)存SQL語句;出現(xiàn)服務(wù)異常關(guān)閉情況下,通過分布式事務(wù)數(shù)據(jù)庫日志以及操作系統(tǒng)日志等信息進(jìn)行分析,確認(rèn)退出原因,大概率存在啟動內(nèi)存參數(shù)不合理、內(nèi)存占用過高被操作系統(tǒng)誤殺等情況。如為SQL操作,則需要優(yōu)化SQL或者數(shù)據(jù)庫支持情況;如為內(nèi)存參數(shù)等內(nèi)容則需要采取調(diào)整數(shù)據(jù)庫啟動內(nèi)存參數(shù)設(shè)置、優(yōu)化內(nèi)存碎片回收機(jī)制等對應(yīng)措施。進(jìn)行修復(fù)確認(rèn),預(yù)期試運(yùn)行一段時間后觀察內(nèi)存使用率情況以及服務(wù)運(yùn)行情況,均穩(wěn)定運(yùn)行。故障原因大多為軟件問題,主要原因有高消耗內(nèi)存的SQL操作、內(nèi)存參數(shù)設(shè)置不合理及內(nèi)存碎片回收待優(yōu)化。11.磁盤占用滿現(xiàn)象為磁盤突然使用率增加,直至占滿,導(dǎo)致數(shù)據(jù)庫服務(wù)異常退出。解決方案為:查看磁盤占用(du-Sh*等)命令,了解占用磁盤的文件,從而分析具體磁盤快速寫滿的原因。清理出部分空間后,按照磁盤用滿的原因做對應(yīng)處理,然后啟動數(shù)據(jù)庫服務(wù)。進(jìn)行修復(fù)確認(rèn),在數(shù)據(jù)庫服務(wù)啟動后,觀察磁盤寫入情況,預(yù)期是占用情況恢復(fù)正常。故障原因通常為壓測過程中不斷寫入數(shù)據(jù)和日志,數(shù)據(jù)庫異常報錯不斷進(jìn)行錯誤日志寫入,操作系統(tǒng)異常不斷寫入操作系統(tǒng)錯誤日志,缺乏監(jiān)控手段導(dǎo)致正常數(shù)據(jù)和日志寫入刷滿磁盤等情況。12.網(wǎng)絡(luò)負(fù)載過高現(xiàn)象是網(wǎng)絡(luò)流量過大引發(fā)丟包、重傳、網(wǎng)絡(luò)延遲過大,從而導(dǎo)致系統(tǒng)服務(wù)響應(yīng)變慢、報錯。解決方案為:通過觀察網(wǎng)卡進(jìn)出流量、網(wǎng)卡本身負(fù)載能力及相關(guān)硬件配置情況,確認(rèn)具體網(wǎng)絡(luò)負(fù)載過高的原因,確認(rèn)是否為存在大量寫入和讀取數(shù)據(jù)操作導(dǎo)致網(wǎng)絡(luò)流量增加,或?qū)嶋H流量較高但網(wǎng)卡或者交換機(jī)等硬件性能不足情況。如為軟件層面操作問題,等待業(yè)務(wù)執(zhí)行完成并及時監(jiān)控即可;如為硬件性能不足情況,則需要升級或者更新硬件設(shè)備。進(jìn)行修復(fù)確認(rèn),預(yù)期是修復(fù)后觀察網(wǎng)絡(luò)流量及丟包率、重傳率、網(wǎng)絡(luò)延遲等參數(shù)均正常。故障原因分為軟件原因和硬件原因。軟件原因通常為大量寫入和讀取數(shù)據(jù)操作,需確認(rèn)是否為業(yè)務(wù)正常行為;硬件層面通常為網(wǎng)卡及交換機(jī)等設(shè)備性能不足或損壞情況,需要更新或升級硬件。(三)硬件故障1.服務(wù)器宕機(jī)服務(wù)器宕機(jī)通常是指應(yīng)用的服務(wù)器處于一種非正常運(yùn)行的狀態(tài),例如服務(wù)器假死、停止使用或者關(guān)閉,系統(tǒng)無法從錯誤中恢復(fù)過來或系統(tǒng)硬件層面出問題,以致系統(tǒng)長時間無響應(yīng)無法對外部指令進(jìn)行響應(yīng),服務(wù)器的宕機(jī)會給用戶的正常使用帶來較大的影響。在排查時需要判斷服務(wù)器宕機(jī)的嚴(yán)重程度,可在宕機(jī)發(fā)生后等待一段時間,此時宕機(jī)系統(tǒng)若恢復(fù)即常說的假死,若仍未恢復(fù)則需要查詢系統(tǒng)日志,分析宕機(jī)前后系統(tǒng)日志的報錯情況,其次查看監(jiān)控數(shù)據(jù)是否有指標(biāo)異常,例如資源的消耗異常,最后可查看服務(wù)器硬件故障情況。服務(wù)器宕機(jī)故障預(yù)防可以從以下幾方面著手:一是從軟件出發(fā),查看程序設(shè)計是否合理,數(shù)據(jù)查詢是否有死循環(huán)。二是從硬件出發(fā),配置分布式軟件,從而形成冗余硬件資源。針對高并發(fā)或存在大量計算、海量存儲的情況,升級服務(wù)器硬件配置,加大網(wǎng)絡(luò)帶寬、升級服務(wù)器CPU、提高服務(wù)器內(nèi)存、擴(kuò)展存儲服務(wù)器。三是在系統(tǒng)的設(shè)計中考慮合理的警報和監(jiān)控框架,盡早發(fā)現(xiàn)和診斷故障問題,縮短排查與處理時故障處理時,對于訪問量過高超出系統(tǒng)承載能力的短暫性突增或者異常的訪問可等待一段時間或手動殺死進(jìn)程或重啟,排查異常訪問來源。對于早期建設(shè)的不能滿足需求的傳統(tǒng)集群需要對系統(tǒng)的軟硬件進(jìn)行升級與優(yōu)化。對于系統(tǒng)設(shè)計的不合理之處,需要對業(yè)務(wù)的支撐資源重新劃分調(diào)配,優(yōu)化業(yè)務(wù)系統(tǒng)的查詢或多線程的處理。當(dāng)系統(tǒng)內(nèi)部參數(shù)配置不合理時進(jìn)行參數(shù)的優(yōu)化和調(diào)整。存在系統(tǒng)內(nèi)核故障或錯誤時需要升級內(nèi)核。對于人為的誤操作,則需要提高操作人員的宕機(jī)恢復(fù)后系統(tǒng)進(jìn)行修復(fù)驗證步驟為:(1)檢查系統(tǒng)日志,是否有報錯;(2)檢查系統(tǒng)各項功能是否正常,并檢查對應(yīng)日志;(3)檢查應(yīng)用各項功能是否正常,并檢查對應(yīng)日志。金融關(guān)鍵業(yè)務(wù)場景下,分布式數(shù)據(jù)庫,可能出現(xiàn)宕機(jī)的原因主要包括:(1)訪問量過高超出系統(tǒng)的承載能力,包括正常的短暫性突增,或者異常的訪問,如非法攻擊的情況。(2)早期建設(shè)的傳統(tǒng)集群,部分已不能滿足現(xiàn)今的系統(tǒng)需求,服務(wù)器配置過低,導(dǎo)致即便訪問量不算太高也超出了系統(tǒng)承載能力的情況。(3)系統(tǒng)的應(yīng)用程序設(shè)計存在不合理的異?;蚵┒矗鐚I(yè)務(wù)支撐的系統(tǒng)資源不合理,或例如死循環(huán)或多線程造成死鎖,消耗系統(tǒng)資源的邏輯導(dǎo)致資源耗盡。(4)系統(tǒng)內(nèi)部參數(shù)配置不合理,例如允許連接數(shù)過低。(5)存在系統(tǒng)內(nèi)核程序錯誤或故障,包括軟死鎖等情(6)在一定環(huán)境中,人為的誤操作也可能導(dǎo)致服務(wù)器宕機(jī)情況的發(fā)生。為了盡可能減少服務(wù)器宕機(jī)故障的發(fā)生頻率,維護(hù)系統(tǒng)穩(wěn)定運(yùn)行。要減少運(yùn)行環(huán)境的負(fù)荷過載,因此要監(jiān)控運(yùn)行環(huán)境中的操作系統(tǒng)、網(wǎng)絡(luò)以及各類硬件資源的使用,當(dāng)有軟件正在大量占用服務(wù)器內(nèi)存、CPU、磁盤或網(wǎng)絡(luò),或者網(wǎng)站的并發(fā)訪問數(shù)超過帶寬資源,系統(tǒng)資源出現(xiàn)暫時性不足,例如磁盤空間耗盡、內(nèi)存耗盡等情況時,及時進(jìn)行告警,然后進(jìn)行干預(yù)。2.電源故障服務(wù)器電源按照通用標(biāo)準(zhǔn)可以分為ATX電源和SSI電源兩種。ATX主要用于臺式機(jī)、低端服務(wù)器或工作站,該標(biāo)準(zhǔn)使用較為普遍;隨著服務(wù)器技術(shù)的發(fā)展,適用于各種檔次的服務(wù)器標(biāo)準(zhǔn)SSI標(biāo)準(zhǔn)誕生。系統(tǒng)服務(wù)器電源(power)與用于個人的PC服務(wù)器電源都是一種開關(guān)電源。作為硬件服務(wù)器的能量源發(fā)揮著無形的巨大作用,目前服務(wù)器的電源模塊種類較多,不同服務(wù)器產(chǎn)品的輸入/輸出電壓、功率、功能及拓?fù)浣Y(jié)構(gòu)都有可能不同。電源故障可能導(dǎo)致系統(tǒng)運(yùn)行不穩(wěn)定,當(dāng)磁盤出現(xiàn)壞磁道、CPU超頻工作不穩(wěn)定、主機(jī)莫名重新啟動、服務(wù)器運(yùn)行時噪音較大等情況。故障產(chǎn)生原因通常包括電源模塊質(zhì)量較低、電源的功率不足、電源的穩(wěn)定性較差等原因。比如電源模塊在電壓輸出偏低或偏高的轉(zhuǎn)換過程有能量損耗,從而造成模塊發(fā)熱嚴(yán)重、輸出噪音大,電源模塊啟動困難且反應(yīng)較慢、電源啟動后迅速燒毀冒煙或短路、電源模塊損壞較快等情況。不同的應(yīng)用對服務(wù)器電源的要求不同,在分布式數(shù)據(jù)庫的金融業(yè),尤其強(qiáng)調(diào)數(shù)據(jù)的安全性和系統(tǒng)的穩(wěn)定性,因而要求服務(wù)器電源要具有很高的可靠性。因此分布式數(shù)據(jù)庫需要考慮到服務(wù)器電源故障問題,需具備在電源故障情況下的數(shù)據(jù)保障能力。在分布式數(shù)據(jù)庫的金融關(guān)鍵業(yè)務(wù)場景下,為了預(yù)防服務(wù)器電源故障,大部分服務(wù)器均采用冗余電源。也就是服務(wù)器采用高質(zhì)量的冗余電源模塊組件,并在機(jī)柜內(nèi)提供冗余電源,一方面,具有均流、故障切換等功能,另一方面,能有效避免電源故障對系統(tǒng)的影響,實現(xiàn)長時間不間斷運(yùn)行。N+1冗余即運(yùn)行系統(tǒng)所需的N個額定容量的組件數(shù)量再增加一臺,一個電源發(fā)生故障,系統(tǒng)仍能持續(xù)運(yùn)行。除了服務(wù)器電源冗余、機(jī)柜電源冗余,還有機(jī)房的UPS冗余。也就是說任何一提高系統(tǒng)可靠性,同時依靠均流技術(shù)并行運(yùn)行。通過冗余電源和熱插拔技術(shù)配合,可實現(xiàn)熱插拔冗余電源,從而提高服務(wù)器系統(tǒng)的穩(wěn)定性和可靠性。發(fā)現(xiàn)電源故障,可以通過更換電源組件或檢查電源狀態(tài)來進(jìn)行故障檢查,最終通過更換電源組件解決出現(xiàn)的電源故障問題,保證系統(tǒng)穩(wěn)定性。修復(fù)后,可通過檢查電源狀態(tài)、服務(wù)器狀態(tài)、操作系統(tǒng)狀態(tài)、應(yīng)用狀態(tài)來進(jìn)行修復(fù)確認(rèn),修復(fù)完成后,系統(tǒng)現(xiàn)象為磁盤磁道正常讀寫、CPU超頻工作穩(wěn)定、主機(jī)開關(guān)啟動正常,服務(wù)器運(yùn)行時噪音較小。3.磁盤損壞磁盤損壞主要有以下場景:(1)故障提示。即磁盤自我監(jiān)測、分析錯誤報告其磁頭、磁盤、電路等部件與預(yù)存的安全值發(fā)生沖突,自動發(fā)生警告信息。(2)磁盤無法識別。啟動時顯示磁盤無法識別,或系統(tǒng)無法顯示磁盤。(3)系統(tǒng)運(yùn)行出錯。服務(wù)器運(yùn)行不斷出現(xiàn)程序錯誤且磁盤掃描停滯甚至死機(jī)。(4)運(yùn)行報錯。掃描磁盤發(fā)現(xiàn)錯誤或顯示壞道。(5)初始化死機(jī)。包含其他部件與磁盤故障的可能。故障產(chǎn)生的可能原因包括:(1)磁盤系統(tǒng)故障,發(fā)生系統(tǒng)中斷、跳出、停滯等現(xiàn)象。這些現(xiàn)象的發(fā)生可能存在磁盤或系統(tǒng)的故障。(2)磁盤物理故障,一般表現(xiàn)為無法識別磁盤存儲數(shù)據(jù),或者是無法讀取數(shù)據(jù),導(dǎo)致用戶無法使用磁盤。(3)磁盤運(yùn)行故障,主要表現(xiàn)在掃描磁盤的時候發(fā)現(xiàn)錯誤。磁盤運(yùn)行故障一般發(fā)生在壞道的產(chǎn)生,需要對磁盤進(jìn)行隔離,保障磁盤的正常使用。在分布式數(shù)據(jù)庫的金融關(guān)鍵業(yè)務(wù)場景下,為了預(yù)防服務(wù)器磁盤故障,大部分服務(wù)器采用冗余磁盤,并做磁盤陣列,來預(yù)防磁盤故障。也就是N+1冗余,即運(yùn)行系統(tǒng)所需N個磁盤,再增加一塊或多塊磁盤。多塊磁盤做磁盤陣列后,一個硬盤發(fā)生故障,系統(tǒng)仍能持續(xù)正常運(yùn)行。對于磁盤故障,首先確認(rèn)業(yè)務(wù)在分布式數(shù)據(jù)庫保有數(shù)據(jù)備份情況下的穩(wěn)定運(yùn)行,備份數(shù)據(jù)啟動承載切換的業(yè)務(wù)后,再進(jìn)行故障磁盤的更換。磁盤系統(tǒng)故障在排除系統(tǒng)故障后對磁盤進(jìn)行檢修,磁盤物理故障需要保證備份數(shù)據(jù)的可用,或?qū)ΜF(xiàn)有數(shù)據(jù)進(jìn)行轉(zhuǎn)移后對磁盤進(jìn)行檢查維修。磁盤運(yùn)行故障則需要對磁盤進(jìn)行隔離,查看壞道分布情況。對于少量壞道,可以嘗試軟件修復(fù),對于大量集中的壞道,可以對磁盤進(jìn)行分區(qū),然后把分區(qū)隔離,避免壞道擴(kuò)散。對于分布均勻或壞道較多的情況則需要更換磁盤。更換故障硬盤后,往往需要重新做磁盤陣列的同步,從而把數(shù)據(jù)恢復(fù)到新磁盤中。分布式數(shù)據(jù)庫需要在磁盤的存儲中保證數(shù)據(jù)存儲的分布式策略,確保數(shù)據(jù)在集群的磁盤中存在不止一份可用的相同數(shù)據(jù),在集群中一個磁盤的損壞可自動切換到備份數(shù)據(jù)的磁盤,單個磁盤的故障不影響系統(tǒng)數(shù)據(jù)的安全可用性。磁盤修復(fù)后,應(yīng)表現(xiàn)為不再出現(xiàn)磁盤損壞場景描述現(xiàn)象,在系統(tǒng)運(yùn)行中可查詢該磁盤的完整數(shù)據(jù),分布式數(shù)據(jù)庫的數(shù)據(jù)分布策略在磁盤修復(fù)后完成磁盤數(shù)據(jù)分布初始狀態(tài),磁盤數(shù)據(jù)與備份數(shù)據(jù)具備一致性。4.內(nèi)存條故障內(nèi)存條故障常見開機(jī)報警、讀取出錯、解壓出錯、內(nèi)存短路主機(jī)無法加電、藍(lán)屏死機(jī)、無法啟動等場景。內(nèi)存損壞導(dǎo)致系統(tǒng)注冊表報錯情況較為常見,系統(tǒng)在正常啟動進(jìn)入桌面后,系統(tǒng)提示注冊表讀取錯誤,需重新啟動電腦修復(fù)該錯誤,再次啟動電腦后,仍舊提示注冊表讀取錯誤,其次在主機(jī)使用環(huán)境惡劣,如濕度過大在長時間使用過程后,內(nèi)存金手指表面氧化,造成內(nèi)金手指與插槽接觸電阻增大對電流通過的阻礙,形成內(nèi)存自檢錯誤,表現(xiàn)為開機(jī)內(nèi)存報警。內(nèi)存故障產(chǎn)生原因如下:(1)內(nèi)存故障導(dǎo)致注冊表讀取錯誤情況,包括安全模式的設(shè)置原因、長時間未進(jìn)行磁盤碎片整理及錯誤檢查,以及則存在于機(jī)器內(nèi)存損壞的硬件故障。(2)出現(xiàn)內(nèi)存損壞安裝系統(tǒng)提示解壓縮文件出錯故障的原因,一般是內(nèi)存的質(zhì)量不良或穩(wěn)定性差造成的,無法正常讀取某一文件或系統(tǒng)安裝文件損壞。(3)在內(nèi)存短路導(dǎo)致主機(jī)無法加電的情況下,可能存在電源質(zhì)量不穩(wěn)定或其他部件接觸或需要更換的問題。(4)若出現(xiàn)藍(lán)屏死機(jī)或無法啟動的情況,根據(jù)藍(lán)屏?xí)r的出錯提示或無法提示則應(yīng)是內(nèi)存中某種虛擬文件出錯,可能存在接觸不良、內(nèi)存插槽腳短路、內(nèi)存條安裝不正確或內(nèi)存插槽變形等問題。內(nèi)存條故障預(yù)防首先應(yīng)保證使用環(huán)境符合國家機(jī)房標(biāo)準(zhǔn),如溫度、濕度、靜電等等,避免因為溫度、濕度、靜電等原因?qū)е聝?nèi)存條故障。其次,嚴(yán)格控制操作人員具備相關(guān)技術(shù)能力,從而避免內(nèi)存條安裝接觸不良、安裝不正確等問題。采用帶有ECC校驗的內(nèi)存條,從而能夠發(fā)現(xiàn)錯誤,自動糾正錯誤。內(nèi)存條故障檢查主要考慮接觸不良、安裝不正確、插槽變形等問題。具備相關(guān)技術(shù)能力的安裝人員首先仔細(xì)檢查機(jī)器安裝環(huán)境,然后按照標(biāo)準(zhǔn)步驟進(jìn)行,并細(xì)化安裝后的檢查流程,減少人為操作造成的故障。對于電路短路或斷路問題,需要技術(shù)人員確保安裝運(yùn)行環(huán)境的電源導(dǎo)線正確連接。對存在于機(jī)器內(nèi)存損壞的硬件故障需要使用替換法。首先備份重要資料,換上性能良好的內(nèi)存條,進(jìn)行重新安裝。同理,在金融關(guān)鍵業(yè)務(wù)場景中,內(nèi)存條的質(zhì)量不良或穩(wěn)定性差極大的影響系統(tǒng)的整體性能,建議使用高質(zhì)量的內(nèi)存條硬件。更換內(nèi)存條后,檢驗是否存在同樣的故障,能否讀取系統(tǒng)文件。更換高質(zhì)量的內(nèi)存條后,應(yīng)有響應(yīng)速度的提升及系統(tǒng)穩(wěn)定性的提升。5.主板故障主板故障通常表現(xiàn)為主板無法啟動、系統(tǒng)不能識別鍵盤和鼠標(biāo)、外連接的如打印機(jī)不能正常工作、顯卡提示警告或發(fā)出非正常的報警聲等與主板有關(guān)的問題。主板故障產(chǎn)生原因:(1)主板無法啟動的故障原因包括安裝問題中的接觸不良、主板及主板上各元件的制作工藝質(zhì)量問題。(2)對于連接外設(shè)鍵盤、鼠標(biāo)、打印機(jī)出現(xiàn)不支持或不能正常工作的故障,存在連接接口松動、接觸不良、線路故障、連接外設(shè)硬件故障及主板線路或主板故障問題。(3)主板的電源安全故障,主板電源是否通過穩(wěn)壓器過濾和是否具有濾波功能的電容來穩(wěn)定供電電流保護(hù)主板的正常使用;(4)顯卡與主板的松動導(dǎo)致故障,或顯卡與主板非正金融關(guān)鍵業(yè)務(wù)集群出現(xiàn)主板故障對于系統(tǒng)來說有較大風(fēng)險,在集群建設(shè)之初應(yīng)選用高質(zhì)量的主板硬件,確保主板及主板上各元件的制作工藝優(yōu)良,具備承載金融核心業(yè)務(wù)或關(guān)鍵業(yè)務(wù)的能力,不出現(xiàn)質(zhì)量問題。軟件診斷法。如觀察主板及電容等是否有燒毀跡象、是否接觸不良,清潔因灰塵過多造成的故障,使用插拔交換的排除法確定故障所在元件如主板或I/O設(shè)備,通過診斷程序或測試軟件對主板進(jìn)行輔助硬件維修,讀線路及芯片狀態(tài)識別故障部位如接口等。系統(tǒng)安裝中由專業(yè)技術(shù)員進(jìn)行操作,為防止主板電源故障問題,應(yīng)確保主板電容上的電壓不超過額定值,確保供電電源通過穩(wěn)壓器過濾。計算機(jī)主板不宜在長期高負(fù)載的情況下工作,易導(dǎo)致電容過熱。出現(xiàn)主板異常的情況下,及時聯(lián)系硬件廠商進(jìn)行處理。應(yīng)用方在工作狀態(tài)可利用萬用表來檢測CPU周圍的三極管、二極管是否工作正常,以便檢查CPU供電的正常情況;出現(xiàn)斷針或斷裂現(xiàn)象,須及時聯(lián)系分布式數(shù)據(jù)庫廠家做好數(shù)據(jù)備份及應(yīng)用業(yè)務(wù)的切換,由硬件廠商更換新配件。主板故障恢復(fù)后,需要對系統(tǒng)進(jìn)行驗證,首先可查看硬件故障指示燈是否熄滅,然后檢查服務(wù)器硬件錯誤日志、操作系統(tǒng)啟動日志、應(yīng)用日志等。6.陣列卡故障陣列卡全稱為磁盤陣列卡,主要用來做RAID,把所有硬盤整合成一個大磁盤,再在這個大磁盤上做分區(qū)。陣列卡故障特征:(1)RAID磁盤陣列中物理硬盤指示燈告警。(2)顯示多塊硬盤呈離線狀態(tài)或丟失狀態(tài)。(4)無法進(jìn)入RAID管理界面或查看RAID相關(guān)信息時死機(jī)。磁盤陣列卡故障原因:(1)服務(wù)器硬件故障導(dǎo)致的陣列卡故障,如電路板損壞、磁頭損壞、盤面損壞以及其他固件損壞等。(2)斷電、電壓不穩(wěn)導(dǎo)致的陣列卡故障。(3)管理員在維護(hù)過程中由于誤操作導(dǎo)致硬盤盤序出現(xiàn)錯誤或在配置RAID陣列信息時出錯誤導(dǎo)致數(shù)據(jù)丟失均有可能造成陣列卡故障。(4)RAID在同步數(shù)據(jù)或者重建過程中,同組RAID陣列中有其他硬盤掉線導(dǎo)致同步失敗。磁盤陣列卡故障檢查時,由于陣列卡的特殊性,處理不當(dāng)可能造成數(shù)據(jù)丟失,所以對于陣列卡的處理方式應(yīng)該更加的謹(jǐn)慎,針對不同的故障產(chǎn)生原因,采取恰當(dāng)?shù)奶幚矸绞剑海?)若是由電源原因造成的陣列卡故障,為了防止數(shù)據(jù)丟失,需要先將系統(tǒng)電源關(guān)閉,再依次檢查硬盤,處理電源問題。(2)若是服務(wù)器硬件導(dǎo)致的陣列卡故障,先要確認(rèn)數(shù)據(jù)是否丟失,若無數(shù)據(jù)丟失則修復(fù)對應(yīng)的硬件之后再行處理。(3)若有數(shù)據(jù)丟失,則要將情況報告給磁盤陣列廠商或者專業(yè)的磁盤陣列數(shù)據(jù)恢復(fù)公司進(jìn)行處理。值得注意的是,謹(jǐn)慎選擇初始化或者ReBuild等可能導(dǎo)致數(shù)據(jù)丟失的處理方式。在陣列卡故障修復(fù)后,首先查看硬件故障指示燈是否熄滅,然后進(jìn)入陣列卡bios中查看陣列卡是否正常,若顯示online和protected則代表陣列卡故障修復(fù)成功,可正常使7.網(wǎng)卡故障網(wǎng)卡是局域網(wǎng)或互聯(lián)網(wǎng)中連接計算機(jī)和傳輸介質(zhì)的接口,是電腦與網(wǎng)絡(luò)的一道橋梁,一旦網(wǎng)卡發(fā)生故障,便不能上網(wǎng)。網(wǎng)卡故障一般會出現(xiàn)如下幾種癥狀:(1)在“設(shè)備管理器”里無“網(wǎng)絡(luò)適配器”。正常情況下,打開“設(shè)備管理器”時,里面有一排像“RealtekRTL8139/8111”的英文,此英文就是我們的網(wǎng)卡設(shè)備。如果沒有此“網(wǎng)絡(luò)適配器”及英文就表示網(wǎng)卡沒有識別到,或網(wǎng)卡損壞。(2)在“設(shè)備管理器”中有“網(wǎng)絡(luò)適配器”,并且也上面有個感嘆號。并且無論我們?nèi)绾伟惭b驅(qū)動,重裝系統(tǒng)等,此感嘆號都無法消失,也就是說網(wǎng)卡都無法正常工作,此種現(xiàn)象也表示網(wǎng)卡故障。(3)當(dāng)插上網(wǎng)線時,電腦右下角提示“網(wǎng)絡(luò)電纜沒有插好”,若無論如何插拔網(wǎng)線,或者更換全新網(wǎng)線,排除網(wǎng)線及網(wǎng)絡(luò)故障時,電腦依然提示“網(wǎng)絡(luò)電纜沒有插好”時,此時也為網(wǎng)卡故障。(4)一般網(wǎng)卡正常工作時,網(wǎng)卡綠色指示燈會亮,如果插上網(wǎng)線,網(wǎng)卡指示燈完全不亮,也可以斷定為網(wǎng)卡故障。(5)在排除網(wǎng)絡(luò)本身故障以及電腦系統(tǒng)問題的情況下,若網(wǎng)卡只有發(fā)送包而無收到包,也可以確定為網(wǎng)卡故障。網(wǎng)卡故障原因如下:(1)外部原因有可能是雷電、靜電原因等,特別是雷電,是導(dǎo)致網(wǎng)卡故障的最主要原因之一,尤其是夏天雷雨季(2)電源輸出電壓異常也有可能導(dǎo)致網(wǎng)卡故障。(3)網(wǎng)線有短路情況或路由器、交換機(jī)故障也可能導(dǎo)致網(wǎng)卡故障。(4)自身原因則有可能是網(wǎng)卡本身的元件質(zhì)量問題。在分布式數(shù)據(jù)庫的金融關(guān)鍵業(yè)務(wù)場景下,為了預(yù)防服務(wù)器網(wǎng)卡故障,大部分服務(wù)器采用雙網(wǎng)卡綁定,來預(yù)防網(wǎng)卡故障。也就是采用兩塊網(wǎng)卡,虛擬成一塊網(wǎng)卡來使用,當(dāng)一塊網(wǎng)卡出現(xiàn)故障,另一塊網(wǎng)卡依然能正常運(yùn)行,系統(tǒng)仍能持續(xù)正常運(yùn)行。網(wǎng)卡故障排查的幾種處理方式:(1)首先把系統(tǒng)置于非正常工作的狀態(tài)(2)將網(wǎng)卡重新進(jìn)行插拔。(3)將網(wǎng)卡驅(qū)動卸載后再重新安裝。(4)將網(wǎng)卡換到別的插槽上。(5)若以上幾種處理方式都無法使網(wǎng)卡正常工作,則證明網(wǎng)卡已損壞,此時需要更換新的網(wǎng)卡。Windows環(huán)境下,在處理完畢網(wǎng)卡故障后,可以通過下面幾步判斷網(wǎng)卡是否正常。(1)“WIN+R”打開運(yùn)行窗口,輸入“CMD”命令。(2)在命令行窗口中輸入ipconfig,點擊確定。若能成功查看到網(wǎng)絡(luò)信息,如網(wǎng)關(guān)、ip地址等則證明網(wǎng)卡故障修復(fù)成功。8.網(wǎng)絡(luò)設(shè)備故障網(wǎng)絡(luò)交換設(shè)備是服務(wù)器之間網(wǎng)絡(luò)通訊的必備要素,分為路由器、交換機(jī)(二層和三層)等。網(wǎng)絡(luò)設(shè)備一般會進(jìn)行高可用部署,比如雙機(jī)并行,并采用“聚合鏈路”等解決方案,預(yù)防網(wǎng)絡(luò)設(shè)備故障:(1)電源故障產(chǎn)生的故障。因為極端天氣、人為影響、設(shè)備老化等原因引起的故障。其預(yù)防方式也和大多數(shù)電源故障一致,即采用UPS進(jìn)行容災(zāi)和引入穩(wěn)壓器進(jìn)行防控。(2)端口故障。因為不規(guī)范的水晶頭插拔時間長了引起端口的破壞的故障。預(yù)防策略除了規(guī)范插拔網(wǎng)線的動作外,還可以采用更加合適尺寸的水晶頭讓插拔動作更平滑。(3)模塊故障。網(wǎng)絡(luò)設(shè)備內(nèi)部模塊出現(xiàn)故障,預(yù)防方式是對網(wǎng)絡(luò)設(shè)備輕拿輕放,避免潮濕等。(4)線纜故障。線纜與網(wǎng)絡(luò)設(shè)備連接的不規(guī)范導(dǎo)致的各類故障,例如接口不緊導(dǎo)致脫落、交叉直連混用等。對此類故障的預(yù)防是在日常巡檢過程中和布網(wǎng)階段進(jìn)行反復(fù)確(5)背板故障。對背板故障的預(yù)防,除了保持機(jī)房干燥外,還需要考慮散熱問題,不要在出風(fēng)口進(jìn)行遮擋或者布線混亂導(dǎo)致散熱降低。網(wǎng)絡(luò)設(shè)備的故障檢測方式是查看狀態(tài)指示燈和錯誤日志。還可以通過統(tǒng)一的監(jiān)控運(yùn)維平臺查看。網(wǎng)絡(luò)設(shè)備故障排除后的確認(rèn)方式是查看網(wǎng)絡(luò)設(shè)備的狀態(tài)指示燈和錯誤日志。還可以通過統(tǒng)一的監(jiān)控運(yùn)維平臺查看網(wǎng)絡(luò)設(shè)備的狀態(tài)。(四)機(jī)房故障數(shù)據(jù)庫的高可用和強(qiáng)一致貫穿數(shù)據(jù)庫的整個生命周期。在數(shù)據(jù)庫尤其是核心數(shù)據(jù)庫在構(gòu)建的時候,采用高可用架構(gòu),能夠避免在災(zāi)難的時候,降低數(shù)據(jù)庫容災(zāi)做的不充分對業(yè)務(wù)響應(yīng)時長的影響。在常見災(zāi)難下,主節(jié)點選擇,一般采用分布式協(xié)調(diào)組件來實現(xiàn),通過選舉產(chǎn)生新的主,避免業(yè)務(wù)恢復(fù)過程中出現(xiàn)過長時間的中斷。分布式數(shù)據(jù)的容災(zāi)架構(gòu),包括同城互備、同城雙活、兩地三中心。此處介紹遇到機(jī)房級災(zāi)難情況下系統(tǒng)的應(yīng)對措施。以兩地三中心架構(gòu)為例,可劃分為:同城互備、同城雙活、兩地三中心。此處介紹遇到機(jī)房級災(zāi)難情況下系統(tǒng)的應(yīng)對措施。以兩地三中心架構(gòu)為例,可劃分為:本地或同城機(jī)房故障、異地機(jī)房故障兩個災(zāi)難場景。1.本地或同城機(jī)房故障應(yīng)用于金融領(lǐng)域的分布式數(shù)據(jù)庫產(chǎn)品應(yīng)具備自動或手動災(zāi)難恢復(fù)能力,災(zāi)備方案包括在與主生產(chǎn)中心同城的數(shù)據(jù)中心部署具備計算能力的節(jié)點并保存數(shù)據(jù)副本的同城多中心部署架構(gòu)。如圖2所示,分布式數(shù)據(jù)庫采用同城雙中心部署架構(gòu),在region1中建1、2兩個同城數(shù)據(jù)中心,同城主中心發(fā)生火災(zāi)、電力中斷等災(zāi)難時產(chǎn)生本地或同城機(jī)房故障。此故障可采取跨中心強(qiáng)同步,使管理節(jié)點或協(xié)調(diào)節(jié)點多數(shù)派部署在備中心。方案的優(yōu)勢是主中心宕掉之后能自動切換到備中心,實現(xiàn)跨IDC容災(zāi)切換下具備兩套的數(shù)據(jù)一致性。方案的劣勢是備中心故障會引起主中心只讀。圖2同城雙中心-多數(shù)派在備機(jī)房如圖3所示,管理節(jié)點或協(xié)調(diào)節(jié)點的多數(shù)派在主機(jī)房,此方案跨中心強(qiáng)同步。方案的優(yōu)勢是可將管理節(jié)點或協(xié)調(diào)節(jié)點多數(shù)派放到主機(jī)房,當(dāng)備機(jī)房不可用之后,系統(tǒng)退化成主機(jī)房強(qiáng)同步模式。方案的劣勢是主機(jī)房故障后,切換到備機(jī)房時,備機(jī)房會變成只讀模式,需要手動操作,才能恢復(fù)備機(jī)房的讀寫。圖3同城雙中心-多數(shù)派在主機(jī)房對于兩個數(shù)據(jù)中心來說,沒有很完美的數(shù)據(jù)中心異常自動切換方案,需要做一些權(quán)衡。上面兩種方案做了跨IDC強(qiáng)同步,但是都不能做到任意IDC異常系統(tǒng)自動切換,因此并不是完美的跨IDC容災(zāi)方案。進(jìn)行修復(fù)驗證的步驟為:(1)驗證實例手動切換到同機(jī)房和同城機(jī)房對數(shù)據(jù)讀寫的影響時長。(2)驗證新的主節(jié)點自動建立起到其他備節(jié)點的同步任務(wù);新的備節(jié)點自動建立起到新的主節(jié)點的同步任務(wù),主備復(fù)制不受影響。(3)驗證系統(tǒng)產(chǎn)生的業(yè)務(wù)數(shù)據(jù)或與其他應(yīng)用的交互數(shù)據(jù)是否一致,包括日間產(chǎn)生的交易數(shù)據(jù)和日終報表產(chǎn)生的匯總數(shù)據(jù),針對發(fā)出交易指令但未收到確認(rèn)的存疑事務(wù)進(jìn)行人工校驗處置。2.異地機(jī)房故障應(yīng)用于金融領(lǐng)域的分布式數(shù)據(jù)庫產(chǎn)品應(yīng)具備自動或手動災(zāi)難恢復(fù)能力,災(zāi)備方案包括在與生產(chǎn)中心處于不同地理區(qū)域的城市建立異地數(shù)據(jù)中心,形成兩地三中心或多地多中心的多集群災(zāi)備部署架構(gòu)。分布式數(shù)據(jù)庫采用兩地三中心部署架構(gòu),在region1中建1、2兩個同城數(shù)據(jù)中心為主集群,region2災(zāi)備機(jī)房搭建電力中斷等災(zāi)難。兩地三中心的架構(gòu)方案的優(yōu)勢是,在兩地三中心的場景中能做到數(shù)據(jù)中心異常的時候自動切換。劣勢是,如果采用強(qiáng)同步模式,則因為延遲過長,易導(dǎo)致事務(wù)執(zhí)行緩慢。異地之間采用的異步模式,當(dāng)異地(region1)整個可用區(qū)不可用的時候,可能會出現(xiàn)部分?jǐn)?shù)據(jù)丟失的可能。因此建議異地之間(region1和region2)數(shù)據(jù)同步采用異步模式。圖4兩地三中心架構(gòu)示意圖修復(fù)驗證步驟如下:(1)主集群機(jī)房級故障后,備集群可以接管業(yè)務(wù)。(2)對生產(chǎn)主集群和災(zāi)備集群進(jìn)行數(shù)據(jù)一致性、完整性、可用性驗證。(3)主集群恢復(fù)后可以自動恢復(fù)同步關(guān)系,并在生產(chǎn)系統(tǒng)正常恢復(fù)后切回原主集群。(五)數(shù)據(jù)庫異常操作為了避免或減少數(shù)據(jù)庫的異常操作(如異常刪庫、安全問題導(dǎo)致被拖庫、SQL注入、事務(wù)操作等),在數(shù)據(jù)庫使用過程中,就要通過備份、安全審計、業(yè)務(wù)壓測等場景,避免出現(xiàn)此類問題或者出現(xiàn)此類問題后能快速的恢復(fù)。1.異常刪庫應(yīng)用于開發(fā)或運(yùn)維人員誤操作,導(dǎo)致正常數(shù)據(jù)丟失。針對異常刪庫的場景,有三個方案。(1)通過備份邏輯日志和物理備份的方式,從備份恢圖5異常刪庫恢復(fù)示意圖(2)制作延遲備機(jī)。圖6異常刪庫恢復(fù)示意圖-制作延遲備機(jī)(3)回收站機(jī)制。通過將數(shù)據(jù)庫的元數(shù)據(jù)上移到接入層,對drop、truncate等高位場景,做回收站機(jī)制,不實際的刪除庫里面的內(nèi)容。方案一成本低廉,恢復(fù)時間較長,適用于對恢復(fù)時間不敏感的業(yè)務(wù)。方案二成本較高,通過延遲備機(jī)的場景,可以迅速的將數(shù)據(jù)庫恢復(fù)到對應(yīng)的時間點。方案三能針對特殊命等無效,成本低廉,適用場景有限。修復(fù)驗證:修復(fù)后需對恢復(fù)后的數(shù)據(jù)進(jìn)行驗證對比并對業(yè)務(wù)進(jìn)行驗證,看是否存在異常。此類故障產(chǎn)生原因為誤操作導(dǎo)致數(shù)據(jù)丟失。2.異常拖庫現(xiàn)象是外部利用信息漏洞進(jìn)行惡意攻擊,導(dǎo)致數(shù)據(jù)庫拖庫。拖庫是由于數(shù)據(jù)庫的不合理的網(wǎng)絡(luò)策略,權(quán)限策略,存儲策略導(dǎo)致數(shù)據(jù)庫被非法或者不合理的使用。處理方案為進(jìn)行數(shù)據(jù)庫上線前檢查訪問數(shù)據(jù)庫的網(wǎng)絡(luò)策略、業(yè)務(wù)賬號的權(quán)限是否設(shè)置合理,關(guān)鍵敏感數(shù)據(jù)是否是密文存儲,并保證有完整日志。數(shù)據(jù)庫上線后定期分析數(shù)據(jù)的訪問日志,發(fā)現(xiàn)是否有非授權(quán)的IP訪問或者越界的訪問行為。將數(shù)據(jù)庫執(zhí)行日志接入到審計系統(tǒng)。拖庫后審視受影響的數(shù)據(jù)庫,檢查敏感信息,評估是否有更大的業(yè)務(wù)損失。例如數(shù)據(jù)庫中如果存儲了用戶名和密碼,則評估該表的業(yè)務(wù)系統(tǒng)是否有泄露的風(fēng)險,及時針對此措施添加安全策略。進(jìn)行修復(fù)驗證,步驟如下:(1)數(shù)據(jù)庫數(shù)據(jù)對比,評估數(shù)據(jù)受損情況。(2)進(jìn)行數(shù)據(jù)恢復(fù)挖掘,減少數(shù)據(jù)損失。故障產(chǎn)生原因是:(1)WEB應(yīng)用漏洞導(dǎo)致拖庫。(2)漏洞注入。(3)利用網(wǎng)站惡意掛馬拖庫。(4)內(nèi)部信息泄露。(5)遠(yuǎn)程下載數(shù)據(jù)文件。在數(shù)據(jù)交互中,前端的數(shù)據(jù)傳入到后臺處理時,沒有做嚴(yán)格的判斷,導(dǎo)致其傳入的“數(shù)據(jù)”拼接到SQL語句中后,被當(dāng)作SQL語句的一部分執(zhí)行,從而導(dǎo)致數(shù)據(jù)庫受損(被拖庫、被刪除等)。SQL注入是一種攻擊方式,在這種攻擊方式中,在字符串中插入惡意代碼,然后將該字符串傳遞到SQLServer的實例以進(jìn)行分析和執(zhí)行。構(gòu)成SQL語句的任何過程都應(yīng)進(jìn)行注入漏洞審閱,因為SQLServer將執(zhí)行其接收到的所有語法有效的查詢。處理方案是:(1)進(jìn)行sql預(yù)編譯,防止sql注入攻擊代碼層,當(dāng)傳入?yún)?shù)4or1=1時,被當(dāng)作是一個純字符串參數(shù),所(2)確認(rèn)每種數(shù)據(jù)的類型,比如是數(shù)字,數(shù)據(jù)庫則必(3)規(guī)定數(shù)據(jù)長度,從一定程度上防止sql注入。(4)嚴(yán)格限制數(shù)據(jù)庫權(quán)限,能最大程度減少sql注入(6)過濾參數(shù)中含有的一些數(shù)據(jù)庫關(guān)鍵詞。修復(fù)驗證時,需進(jìn)行數(shù)據(jù)恢復(fù)挖掘,減少數(shù)據(jù)損失。故障產(chǎn)生原因為:(1)代碼層面沒有對SQL進(jìn)行預(yù)處理,導(dǎo)致SQL執(zhí)行(2)網(wǎng)絡(luò)傳輸請求類型。(3)數(shù)據(jù)庫設(shè)計的字符類型。(4)網(wǎng)絡(luò)漏洞。4.大事務(wù)操作維護(hù)性質(zhì)大事務(wù)操作比如常規(guī)的數(shù)據(jù)庫表結(jié)構(gòu)變更等操作。該操作可以在變更窗口期,通過制作鏡像表的過程等數(shù)據(jù)同步完畢后,切換對應(yīng)的原目的表。MySQL使用常規(guī)PT工具來實現(xiàn)自動化操作。處理方案為確定變更的表結(jié)構(gòu)信息,借助PT工具功能進(jìn)行onlineddl任務(wù)發(fā)起。在onlineddl操作成功后需進(jìn)行修復(fù)驗證,查驗表結(jié)構(gòu)變更是否正常。一般這種故障是由于表結(jié)構(gòu)變更產(chǎn)生的。事務(wù)長時間不提交。在業(yè)務(wù)處理中可能存在查詢數(shù)據(jù)量大、執(zhí)行時間長的復(fù)雜事務(wù)導(dǎo)致事務(wù)長時間不提交或數(shù)據(jù)庫異常發(fā)生主備切換未通知應(yīng)用切斷連接,線程僵死而導(dǎo)致活躍內(nèi)存或連接池資源被長期占用??赏ㄟ^數(shù)據(jù)庫的系統(tǒng)工具,監(jiān)控事務(wù)的狀態(tài),及時發(fā)現(xiàn)未提交的事務(wù),及時報警。修復(fù)驗證時檢查:數(shù)據(jù)庫連接使用是否正常,應(yīng)用操作是否異常,獲取的數(shù)據(jù)量級大或SQL存在性能問題,事物長時間不進(jìn)行提交,數(shù)據(jù)庫異常僵死或卡住,資源長時間占用不被釋放,異常發(fā)生主備切換等。單個事務(wù)操作過大指在業(yè)務(wù)處理中可能存在涉及跨多個分片/分區(qū)表數(shù)據(jù)交互的復(fù)雜事務(wù)導(dǎo)致事務(wù)執(zhí)行時間長,長期占用計算和內(nèi)存資源,造成性能堵塞??蓪⒋笫聞?wù)合理的拆分成單個較小的事務(wù),分多批進(jìn)行處理。因為該故障主要發(fā)生在大數(shù)據(jù)向數(shù)據(jù)庫灌入數(shù)據(jù)的場景中,所以適當(dāng)?shù)靥岣叽髷?shù)據(jù)的入庫并發(fā)度,將單個大事務(wù)入庫改成多個子任務(wù)入庫,可一定程度上避免此類問題。處理后需驗證拆解事務(wù)后業(yè)務(wù)執(zhí)行效率是否改善,調(diào)整優(yōu)化數(shù)據(jù)庫并發(fā)后執(zhí)行效率是否改善。故障可能是由業(yè)務(wù)邏輯,數(shù)據(jù)庫整體運(yùn)行性能,底層硬件架構(gòu)性能造成的。單個事務(wù)操作過多指在業(yè)務(wù)處理中可能存在同一個事務(wù)中進(jìn)行多個增刪改操作或在查詢操作中涉及多層嵌套查詢、聚合查詢導(dǎo)致事務(wù)執(zhí)行占用資源較大,影響事務(wù)的原子性、一致性。處理時需合理的評估該事務(wù)是否影響數(shù)據(jù)庫性能,可以通過監(jiān)控每個SQL的耗時,來評估是否將單個或者批量不合理的小事務(wù)合并進(jìn)行。修復(fù)后需檢查整體資源的下降情況,確保業(yè)務(wù)邏輯整合后,效率有所提升。此故障可能是因業(yè)務(wù)邏輯復(fù)雜未進(jìn)行合理拆解或數(shù)據(jù)庫表設(shè)計與業(yè)務(wù)邏輯需求不匹配而產(chǎn)生。應(yīng)急止損措施指在業(yè)務(wù)運(yùn)行中,某個新增業(yè)務(wù)的SQL未經(jīng)過測試評估,直接下發(fā)數(shù)據(jù)庫,導(dǎo)致整個數(shù)據(jù)庫性能達(dá)到瓶頸,影響其他業(yè)務(wù)運(yùn)行。處理時需通過定位慢SQL,與業(yè)務(wù)側(cè)及時溝通,通過評估SQL重要性、SQL的大小,選擇將對應(yīng)的事務(wù)kill。并在業(yè)務(wù)上線前做好SQL審計及環(huán)境壓測測試。修復(fù)后需關(guān)注業(yè)務(wù)運(yùn)行的性能情況,排除其他性能問題。此故障一般是因為業(yè)務(wù)壓力大底層資源性能跟不上、業(yè)務(wù)邏輯及SQL復(fù)雜或前期的業(yè)務(wù)預(yù)估不合理導(dǎo)致。5.連接數(shù)超出閥值連接池占滿,主備切換異常指在互聯(lián)網(wǎng)背景下金融業(yè)務(wù)也存在業(yè)務(wù)擠兌、固定時段交易頻發(fā),客戶端連接數(shù)據(jù)庫數(shù)量激增引起瞬時壓力,連接池耗盡從而影響整個系統(tǒng)業(yè)務(wù)連續(xù)性。比如某歷史業(yè)績穩(wěn)定的投資經(jīng)理新發(fā)理財產(chǎn)品,加之重點宣傳,客戶爭相通過各零售代銷渠道申購,在開放申購時點客戶端連接會話數(shù)激增,造成數(shù)據(jù)庫連接池占滿,發(fā)生主備切換等異常處理操作影響客戶申購體驗。解決這類問題需在上線前合理的評估業(yè)務(wù)的連接數(shù)量是否會超過整個數(shù)據(jù)庫的連接池。如果業(yè)務(wù)建立的連接池超過數(shù)據(jù)庫的連接池。則針對性能要求比較高的業(yè)務(wù)場景,強(qiáng)制建議使用連接池,合理的設(shè)置連接池的資源,避免總連接池超過數(shù)據(jù)庫的連接池。針對短連接的業(yè)務(wù)場景,通過業(yè)務(wù)測的壓測,評估要達(dá)到業(yè)務(wù)容量的QPS,數(shù)據(jù)庫的連接池是否設(shè)置合理。需壓測評估后才上線。處理后通過業(yè)務(wù)高峰期查看數(shù)據(jù)庫使用情況是否達(dá)到預(yù)估,完成修復(fù)驗證。此類故障產(chǎn)生原因可能是業(yè)務(wù)并發(fā)預(yù)估不合理、業(yè)務(wù)并發(fā)突增、業(yè)務(wù)邏輯優(yōu)化欠缺或數(shù)據(jù)庫底層環(huán)境整體性能不足??赡軐?dǎo)致連接不釋放,沒有多余的空余連接提供使用,后續(xù)連接業(yè)務(wù)出現(xiàn)等待異常。處理時可合理的設(shè)置操作系統(tǒng)的keepalive參數(shù),加快非活躍連接的回收,能做到在應(yīng)急場景下,有效的使用數(shù)據(jù)庫連接數(shù)。業(yè)務(wù)側(cè)可以根據(jù)業(yè)務(wù)重要性,將非核心業(yè)務(wù),削峰處理。臨時停掉非核心業(yè)務(wù),給核心業(yè)務(wù)提供足夠的鏈接。修復(fù)后需檢查連接回收后,是否滿足業(yè)務(wù)并發(fā)需求以及業(yè)務(wù)削峰后,是否得到緩解。此類故障一般是業(yè)務(wù)連接不釋放或業(yè)務(wù)連接方式使用不正確造成。6.并發(fā)數(shù)過高在互聯(lián)網(wǎng)背景下金融業(yè)務(wù)也存在業(yè)務(wù)擠兌、固定時段交數(shù)據(jù)庫資源無法合理應(yīng)用從而影響部分用戶業(yè)務(wù)連續(xù)性。場景描述:某歷史業(yè)績穩(wěn)定的投資經(jīng)理新發(fā)理財產(chǎn)品,加之重點宣傳,客戶爭相通過各零售代銷渠道申購,在開放申購時點并發(fā)數(shù)激增,熱點節(jié)點,發(fā)生主備切換等異常處理操作影響客戶申購體驗。處理方案:并發(fā)數(shù)過多主要原因是業(yè)務(wù)對數(shù)據(jù)庫資源評估不合理導(dǎo)致的。針對并發(fā)數(shù)過多場
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地瓜種苗購銷合同協(xié)議
- 工地購買柴油合同協(xié)議
- 大堤維修施工合同協(xié)議
- 工程家具訂購合同協(xié)議
- 創(chuàng)新實驗室的智慧化空間布局設(shè)計
- 人工智能在病理診斷中的應(yīng)用與發(fā)展趨勢
- 保險科技助力醫(yī)療健康與社區(qū)服務(wù)一體化
- 辦公自動化與區(qū)塊鏈打造高效能企業(yè)的創(chuàng)業(yè)路徑
- 人工智能在商業(yè)智能分析中的倫理和法律問題
- 供應(yīng)鏈管理的未來趨勢區(qū)塊鏈技術(shù)的應(yīng)用探討
- 2024-2029年中國物業(yè)管理行業(yè)發(fā)展分析及發(fā)展戰(zhàn)略研究報告
- 2023年新高考生物江蘇卷試題真題答案解析版
- 刑法學(xué)教全套課件(完整)-2024鮮版
- 專題16.7 二次根式章末八大題型總結(jié)(拔尖篇)-八年級數(shù)學(xué)下冊(人教版)(解析版)
- 三級電梯安全教育
- 醫(yī)院物資采購管理暫行規(guī)定
- 如何提高調(diào)查研究能力
- 2024年同等學(xué)力申碩-同等學(xué)力(政治學(xué))筆試歷年真題薈萃含答案
- 初三勵志、拼搏主題班會課件
- 城市軌道交通的智能調(diào)度與運(yùn)營優(yōu)化
- 放射性金屬礦的輻射事故案例與防范
評論
0/150
提交評論