一個機構(gòu)在生產(chǎn)系統(tǒng)上直接輸入數(shù)據(jù)庫命令進行維護的場合越多,就越能證明該機構(gòu)的運維能力薄弱,應用系統(tǒng)的功能不完備。
筆者在實踐中發(fā)現(xiàn)一些中小銀行機構(gòu)因為系統(tǒng)不完善,在出現(xiàn)業(yè)務(wù)差錯時經(jīng)常在生產(chǎn)數(shù)據(jù)庫中用SQL命令進行數(shù)據(jù)修改,這是一種非常危險的做法,一旦失誤就會造成災難。
如果非要在生產(chǎn)系統(tǒng)上輸入命令進行管理時,不要指望運維人永遠不犯錯,應該進行雙人操作,一人輸入命令,一人進行審核,檢查執(zhí)行命令的設(shè)備和操作對象是否安全,在審核者同意后再執(zhí)行命令。
最好的做法是把系統(tǒng)管理維護操作程序化,以技術(shù)手段托底,把事情交給經(jīng)過測試的程序來做,這些程序的測試就在平時的應急演練中進行,通過應急演練驗證維護程序的功能是否完備。統(tǒng)維護是高強度的工作,是否能確保在緊急狀態(tài)下有后備維護人員來接替疲勞的維護人員?
2.進行危險操作(對生產(chǎn)數(shù)據(jù)庫直接輸入命令進行數(shù)據(jù)變動或者變更配置等)時系統(tǒng)管理人員工作的精神狀態(tài)是否良好?
3.是否帶病工作或者服用了會導致精神狀態(tài)不佳的藥物?是否飲酒后工作?
4.運維人員是否有刪庫跑路的動機?
有些機構(gòu)的備份機制很多,但是華而不實,造成了三個和尚沒水吃的尷尬狀況。
千招會不如一招精,能把一兩種備份恢復機制在應急演練中練精摸透,揚長避短,在數(shù)據(jù)庫出現(xiàn)問題時真正解決問題,遠比華而不實的備份機制有效。
企業(yè)的運維團隊應考慮這幾個問題:
1.在緊急狀況下進行系
很多機構(gòu)的應急預案,大多數(shù)是針對自然災害等不可抗力和設(shè)備損壞及網(wǎng)絡(luò)中斷而制定。
對于因系統(tǒng)管理失誤造成的數(shù)據(jù)庫損壞,是否制定了應急預案,應急預案是否可行,平時的應急演練是真演實練還是走過程都要進行深入地思考。
對于生產(chǎn)環(huán)境下的“rm-rf”類的命令,應改造,例如把rm命令改個名字,再寫個腳本替換,腳本里面做判斷,如果有人執(zhí)行“rm -rf”命令,就調(diào)用rmdir去刪除等。
一般來說,開發(fā)人員是不允許操控生產(chǎn)數(shù)據(jù)庫的,順豐科技數(shù)據(jù)中心的開發(fā)人員擁有刪除數(shù)據(jù)庫生產(chǎn)數(shù)據(jù)庫權(quán)限,說明負責機構(gòu)的數(shù)據(jù)庫權(quán)限管理有很大的缺陷。
筆者認為,目前實現(xiàn)運維自動化有些操之過急,其原因是運維自動化目前缺乏成功的案例,可靠性不得而知,基于目前在的狀況,先實現(xiàn)運維程序化,再考慮運維自動化,是一種比較保險的策略。