對于運維DBA來說,主要的職責(zé)為以下幾點:
1) 監(jiān)控:對數(shù)據(jù)庫服務(wù)運行的狀態(tài)進行實時的監(jiān)控,包括數(shù)據(jù)庫會話、數(shù)據(jù)庫日志、數(shù)據(jù)文件碎片、表空間監(jiān)控、用戶訪問監(jiān)控等,
隨時發(fā)現(xiàn)數(shù)據(jù)庫服務(wù)的運行異常和資源消耗情況;輸出重要的日常數(shù)據(jù)庫服務(wù)運行報表以評估數(shù)據(jù)庫服務(wù)整體運行狀況,發(fā)現(xiàn)數(shù)據(jù)庫隱患;
監(jiān)控對于DBA來說是至關(guān)重要的,是DBA的第三只眼 睛,利于監(jiān)控可以自動處理一些常規(guī)的故障,提前發(fā)現(xiàn)并解決潛在隱患,
監(jiān)控對于運維是必備的技能,如果你不懂監(jiān)控,那么你就不是一個稱職的運維人員。
2)備份:制定和實施數(shù)據(jù)庫備份計劃,災(zāi)難出現(xiàn)時對數(shù)據(jù)庫信息進行恢復(fù),維護適當(dāng)介質(zhì)上的存檔或者備份數(shù)據(jù)。
對數(shù)據(jù)庫的備份策略要根據(jù)實際要求進行更改,數(shù)據(jù)的日常備份情況進行監(jiān)控。備份大概分為兩種:一種是定時、計劃性的備份,
包含全備和增量備份,常用的工具一般為mysqldump以及xtrabackup為代表的第三方備份工具;一種是執(zhí)行DML時更新和刪除的備份,
這種備份一般有以下幾種備份方式:一種為create tablexxx_mmddhhmm select的方式備份到表中,一種是mysqldump加上條件做備份,
還有一種是select into oufile等幾種方式,防止執(zhí)行錯誤時可以快速的恢復(fù)。在日常對數(shù)據(jù)庫的操作中,特別作為一個DBA,
永遠要給自己留一個后手,保證在需要進行數(shù)據(jù)恢復(fù)的時候可以隨手拈來。
4)故障處理:對數(shù)據(jù)庫服務(wù)出現(xiàn)的任何異常進行及時處理,盡可能避免問題的擴大化甚至中止服務(wù)。這之前DBA需要針對各類服務(wù)異常,
如機房/網(wǎng)絡(luò)故障、程序bug等問題制定處理的預(yù)案,問題出現(xiàn)時可以自動或手動執(zhí)行預(yù)案達到止損的目的。
在故障處理中,DBA的反應(yīng)至關(guān)重要,可能在分分鐘鐘的時間內(nèi),小的故障引發(fā)大的故障,對業(yè)務(wù)的影響更大,
對于常見的故障,比如連接數(shù)突然增多、數(shù)據(jù)庫服務(wù)器空間的清理、主從同步延遲、CPU使用過高等,可以和研發(fā)一起制定相應(yīng)的預(yù)案,并且和監(jiān)控結(jié)合,當(dāng)達到一定的閥值,
使用相應(yīng)的腳本自動處理,這樣在一定程度上減少DBA的工作量、提高故障處理效率,更重要的是可以為DBA爭取一定的時間,
防止故障升級對業(yè)務(wù)帶來更大的影響。