網際網路資料庫管理員需要做些什麼?

chenfeng發表於2016-05-31
1、強有力的監控系統(監+控):
監控是我們的眼睛,我們不可能7*24個小時盯著我們的DB,所以,我們需要監控系統來幫我們盯著,一旦異常,監控不僅僅通知我們,而必須要有控制,例如:MySQL 從庫當機了我們透過監控自動讓其下線;
從庫同步狀態失效了,可以自動修復同步等;並且,隨著機器的增加、例項daemon的增加,我們會發現我們的手機報警會急劇增加,為了我們自己晚上能睡一個安穩覺,我們怎麼去降低我們的報警,
例如:哪些該簡訊,哪些該郵件;所有機器的磁碟空間報警是否可以整合後在報呢?這就是我們監控系統必須考慮的。


2、自動稽核系統:
開發很多,專案很多,但是開發的習慣都不一致,可能會導致我們稽核表結構的時頭都看大了,為了保證線上的統一,為了保證不被開發的神奇SQL搞傷,不被N多的專案稽核壓垮,我們必須有一個自動建表稽核
系統,我們定義一些規則,如:不能用預留欄位、主鍵必須為INT,BIGINT等,然後開發填寫準備上線的表結構,透過系統自動稽核,稽核透過的,自動上線,稽核不透過的,給出建議;


3、慢日誌分析系統:
隨著自動稽核系統的上線,我們可能會漏掉一些索引使用不太好的SQL,那麼我們就需要慢日誌分系統幫助我們,在設計該系統時候,我們需要考慮是實時抓取慢日誌,還是每天定期推送慢日誌、慢日誌抓取後
是立即推送給開發還是自動分析完以後給出建議給開發、慢日誌還要考慮一些SQL是否需要過濾,因為他可能是每天的統計,當然這些都是自動的,設計完後,不需要人工介入;


4、統計系統:
我們必須清晰的知道線上DB的整體執行情況,訪問量的變化、寫入量的變化、圖是死的,他不會欺騙任何人;我們能透過訪問統計知道是否有惡意訪問、是否需要最佳化,是否需要增加節點抗住更大的壓力;


5、備份系統:
不管你信不信,我是信了,冷備份總是我們的救命草,不管我們做的多麼好,故障總會有,drop database也會發生,所以,一個完整的備份系統,勢在必行,我們的備份是否正常,備份的資料是否能恢復,恢復
需要多少時間,都是我們備份系統需要考慮的;


6、管理系統:
我們機器少則上百臺,多則可能好幾千,如何清晰知道每臺機器跑了多少daemon,DB Proxy下面有哪些機器,如何能對主庫機器、從庫機器進行指令碼分別分發等;都需要管理系統來幫我們完成;


7、中間層:
是把雙刃劍,他能給我們帶來好的擴充套件,例如:動態新增從庫、主庫失效檢測等;但是他帶來了DBA管理的複雜性、帶來了更多的故障點、帶來了更多的bug、如果DB Proxy效能不好的話,那就更糟了,並且為了
解決client透明,我們必須考慮很多,例如:連線保持,如:字符集、last_insert_id、use dbname等;如果我們有人力開發維護,那麼我相信Proxy會帶給我們歡樂;


以上各個系統都是為我們管理DB提供支援,如果沒有這些系統支援,那麼資料庫管理就談不上平臺,談不上批次管理,談不上承載百億訪問量,百T資料量的資料庫;當然在涉及這樣的系統時候,我們也要考慮
新技術的引進,例如:如果能快速的打造NoSQL 平臺等;當然在部署這些模組的時候,我們時時刻刻記得,所有的模組都是會變的,我們需要不停的學習,不停的改進,才會打造當機時間更低的資料庫服務;
【三天不讀書、智商輸給豬】

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2109858/,如需轉載,請註明出處,否則將追究法律責任。

相關文章