最近整體的風(fēng)向都朝著不好的方向在走,或許到底了就好了,根據(jù)一些專家和經(jīng)濟(jì)學(xué)家判斷,我們還能壞到哪里去。當(dāng)然今天說的不是經(jīng)濟(jì),而是DBA到底應(yīng)不應(yīng)該當(dāng)背鍋俠,或者誰是DBA當(dāng)背鍋俠的幕后黑手。
最近有幾個朋友和我私下訴說工作的一些不順心,大部分可以總結(jié)出幾點:
1 工作中的數(shù)據(jù)庫使用的太單一,導(dǎo)致技術(shù)能力提升慢,尤其金融領(lǐng)域中部分抑郁的DBA2 工作中遇到口諭就是圣旨的領(lǐng)導(dǎo),工作根本沒法開展,天天郁悶之極的DBA3 工作中因為整體的項目架構(gòu)設(shè)計有重大的問題,最終由數(shù)據(jù)庫DBA買單的正在掉頭發(fā)的DBA
4 工作流程有問題,導(dǎo)致DBA的工作過程不暢,導(dǎo)致的各種溝通成本太高的問題,導(dǎo)致DBA有苦說不出,苦瓜臉DBA
最終總結(jié)出來一句話,不懂裝懂的人,害死個人呀下面我們就用傳統(tǒng)相聲八扇屏來說說, 想當(dāng)初我說說你聽聽,在想當(dāng)初 !話說在一個大型項目初始的時候,有一群“專家” ,架構(gòu)師,高級開發(fā),項目經(jīng)理等一大堆。1 外鍵,必須有外鍵,否則如何通過程序來標(biāo)定,表和表之間的關(guān)系,約束數(shù)據(jù),保證兩個表之間數(shù)據(jù)的關(guān)系2 必須大量使用存儲過程,通過存儲過程來削減,程序和數(shù)據(jù)庫之間的交互,提高整體應(yīng)用的系統(tǒng)的效率3 項目必須使用三范式,嚴(yán)格要求表中不會有重復(fù)的字段,通過嚴(yán)格遵守三范式保證數(shù)據(jù)庫表設(shè)計的正確性4 DBA負(fù)責(zé)數(shù)據(jù)庫的,運行維護(hù)的穩(wěn)定性,正確性,出現(xiàn)數(shù)據(jù)庫問題,都是DBA 的責(zé)任
這個大項目的一些海內(nèi)外專家,項目管理專家一致的意見下,項目轟隆隆的開工了。此間DBA小嘍啰們,提出了各種建議,如這個項目并發(fā)高,要不要使用物理分庫的方式,同時基于數(shù)據(jù)經(jīng)常頻繁更改,項目里面也沒有設(shè)計redis等緩存式數(shù)據(jù)庫,全部用傳統(tǒng)的單體數(shù)據(jù)庫來進(jìn)行支撐,后期可能會陷入垂直硬件升級的陷阱,同時存儲過程將限制整體項目的擴(kuò)展性和靈活性,以及項目在高并發(fā) ,高訪問量下使用存儲過程的不可控的問題,可能會導(dǎo)致性能瓶頸出現(xiàn)在數(shù)據(jù)庫層面,導(dǎo)致整體系統(tǒng)CRASH的可能性增加的問題。當(dāng)然在基于整體項目由海龜博士作為系統(tǒng)架構(gòu)師總負(fù)責(zé)項目和有著多年大型國有項目管理經(jīng)驗的項目管理專家的把持下,DBA的言語,輕如鴻毛,在大師的眼里,DBA就是一個打雜的小蝦米。項目啟動后,進(jìn)展順利,此時只有DBA在項目里面天天擔(dān)心,杞人憂天。最終項目上線順利,架構(gòu)師,項目管理,開發(fā)小哥哥,都得到大大的贊賞,并和領(lǐng)導(dǎo)表示,我們設(shè)計的系統(tǒng)萬無一失,后面就看運維和DBA的工作情況了,希望這些人,能好好守護(hù)好,24K純金打造的偉岸系統(tǒng)。系統(tǒng)上線前,DBA就之初一些問題,如這個系統(tǒng)日志系統(tǒng)使用了BLOB數(shù)據(jù)類型,并且每天產(chǎn)生的系統(tǒng)日志都存在業(yè)務(wù)數(shù)據(jù)庫里面,傳統(tǒng)數(shù)據(jù)庫作為唯一的項目的數(shù)據(jù)庫,為什么就不能與時俱進(jìn),用mongodb來進(jìn)行存儲和解耦, 得到的答復(fù)是,你在教我做事咯 !同時在系統(tǒng)運行一段時間,經(jīng)常有因為前端數(shù)據(jù)控制輸入不規(guī)范,導(dǎo)致頻繁數(shù)據(jù)庫對于數(shù)據(jù)進(jìn)行,主鍵沖突,鍵值沖突,唯一索引沖突,check值沖突,以及主外鍵約束級聯(lián)等方面的工作,導(dǎo)致數(shù)據(jù)庫只要并發(fā)一大,就出現(xiàn)性能問題,而架構(gòu)師和項目管理者,不以為然,提出這就是硬件的問題,提高硬件內(nèi)存到2個T ,CPU加到200核的,問題就解決了,這不是系統(tǒng)設(shè)計的問題,這是我們業(yè)務(wù)訪問量大的問題,仔細(xì)一問,每天并發(fā)訪問不足50。最后,沒有辦法,領(lǐng)導(dǎo)只能責(zé)問DBA ,你們怎么干的活,人家架構(gòu),開發(fā)和項目經(jīng)理都投訴你們1 OXXX數(shù)據(jù)庫沒有維護(hù)好,為什么每天業(yè)務(wù)數(shù)據(jù)量才1G ,日志就100G,讓系統(tǒng)運行的性能都耗費在日志的插入上,你們要優(yōu)化,你們必須整改
2 項目工作中,表設(shè)計索引為什么不早添加,當(dāng)然SQL語句沒有給你們,表設(shè)計邏輯說明文檔也沒有給你們,你們怎么就這么沒有主動性嗎,非要人家都給你這些你們才能干活 ,不會猜嗎 ?3 系統(tǒng)備份要恢復(fù)幾條數(shù)據(jù),讓你們用全備50多個T的備份恢復(fù),找這幾條日志數(shù)據(jù),有那么難嗎,為什么推脫,雖然項目我們都花在了研發(fā)上,硬件是差了點,磁盤是不夠,但是你們不能拿出主人翁的精神?不要和我說,巧婦難為無米之炊,你們是DBA不是巧婦,天天給我在這里打嘴仗,不會恢復(fù)一點,看看有沒有,刪除在恢復(fù)一點,在看看嗎 ?有那么難嗎?你們要學(xué)會溝通,學(xué)會檢討,學(xué)會反思,提高服務(wù)意識,提高技術(shù)水平,我作為這個項目的領(lǐng)導(dǎo)對你們很不滿意