北京金融科技產(chǎn)業(yè)聯(lián)盟-分布式數(shù)據(jù)庫(kù)金融關(guān)鍵業(yè)務(wù)場(chǎng)景應(yīng)急處理研究報(bào)告_第1頁(yè)
北京金融科技產(chǎn)業(yè)聯(lián)盟-分布式數(shù)據(jù)庫(kù)金融關(guān)鍵業(yè)務(wù)場(chǎng)景應(yīng)急處理研究報(bào)告_第2頁(yè)
北京金融科技產(chǎn)業(yè)聯(lián)盟-分布式數(shù)據(jù)庫(kù)金融關(guān)鍵業(yè)務(wù)場(chǎng)景應(yīng)急處理研究報(bào)告_第3頁(yè)
北京金融科技產(chǎn)業(yè)聯(lián)盟-分布式數(shù)據(jù)庫(kù)金融關(guān)鍵業(yè)務(wù)場(chǎng)景應(yīng)急處理研究報(bào)告_第4頁(yè)
北京金融科技產(chǎn)業(yè)聯(lián)盟-分布式數(shù)據(jù)庫(kù)金融關(guān)鍵業(yè)務(wù)場(chǎng)景應(yīng)急處理研究報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩99頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論