搜尋
首頁頭條心得分享:趕集網三年DBA總結

2013年初入職趕集,當時處在流量訊猛增長的階段,3年DBA生涯收穫坡多,其實坑更多(淚... 後來在做開發時,慢慢體會到”維運“ 和“開發」 確實存在溝通問題:知識不對稱。如何解決呢?先總結下這三年吧

DBA職責

市面上招聘JD 一大堆,隨變找幾個,馬上能找出共性

市面上招聘JD 一大堆,隨變找幾個,馬上能找出共性

資料庫系統的規劃、設計、管理、遷移

資料庫的日常維護、備份、最佳化與復原

Master-Slave架構搭建、維護

業務系統上線支持,資料庫設計評審,提供架構方案

資料庫不限於MySQL, Oracle, 如果分的不細,還會有Redis, MongoDB 等一系列NoSQL。安全,例如備份及恢復,14年趕集審計,行動端的活躍用戶數就是從備份中恢復來的,可見備份的有效性是重中之重。個人生活被打斷就罷工,有一次剛看電影就被叫回去處理DB報警,罵娘的心都有了。

悲慘案例

先舉一些悲慘案例,讓看官們高興一下~ 由於一下~ 由於公司早就不在了,這裡沒有顧忌。恢復。到位,代碼review 肯定有缺失

2. 大賣家問題

房產在14年開通免費端口,短短幾個月時間房產商業表爆漲到100G,個別中介帳號發貼超過10W,導致數據庫異常抖動,威哥暫時清理過多發貼記錄解決。打跨主庫

主站主庫有一次被子查詢打跨,事後排查,由於RD 大量子查詢導致。不過沒有引起事故而已

反思:趕集DB 典型1 主N 從,沒有proxy 保護的懷況下,經常出現此類問題,只靠規範制度基本解決不了

4. 報表olap 庫問題

RP 庫我和文武背鍋,年底的績效墊底。阻塞,聽說公司因為報表連續問題賠商家300W。

反思:這事故得站在高處去看,免費連接埠開放太突然,專案技術負責人考濾不全。報表系統沒有經過設計,完全由一個新人RD去搞,也就大學畢設水平,回頭再看,hadoop spark 完全搞定。最後 DBA 沒有及時對大表進行跟踪,沒有提前發現。

5. 50G的Redis

房地產業務 Redis 眼看從 20G 爆漲到 50G,我離開後也一直沒優化掉。後來某次故障,資料清空了?

我的工作

大部份時間和開發溝通感情聊人生,後來automan 上線很少有人找我了~ 每個階段都有成長,都有感謝的人和事,趕集讓我有平台去做有興趣的事,很開心。

剛到趕集時,SQL 上線還走的jira,半自動化由維運開發同學做的,經常在技術大群裡被艾特,很簡單的建表或是DML 都要由DBA 人工介入,很煩索。另外很多建表語句不規範,打回讓RD 修改,他們對此很有意見,認為無所謂的修改,這就在RD和DBA之間產生了溝通成本,詩展在的時候還會定期做數據庫開發培訓,然後就沒有然後了。

14年中著手 automan 平台開發,從前台頁面到後端訊息佇列,到 sql parser 解析,從無到有,在劉軍先河同學的幫助下最終上線完成。由平台去審核開發的 SQL,經過 sim 模擬環境,再到線上自動執行備份,比人工高效的多。

這個系統原理和市面上其它工具差不多,扔有很大改進的地方。後來在資料庫大會分享了一次,誠惶誠恐沒有被噴。

DBA 心得

夯實基礎:DB 的基礎自然是穩定,穩定,再穩定。實例數一多,基本上每天都會遇到各種故障。主掛了就用 MHA 切換(最新的有gtid),slave 掛掉就由 lvs 自動摘掉讀流量。還有一個就是備份,全量增量,定期備份有效性檢測,每一塊都需要人力的投入。

硬體優先:DB擴充有 scale up 和 scale out 兩種,一般優先堆硬體。 buffer 不夠加內存,128G 不夠就 192G,磁碟陣列卡效能不行就上 SSD,再不行就上 flash 闆卡。總之優先考濾硬件,爭取架構優化的時間。

未雨綢繆:慢SQL 優化,定期出報表讓RD 調優,一般出問題都是索引沒加,99%的大SQL都是這樣,少部份因為表設計不合理(沒有自增主鍵,或是頻煩修改)。大表監控,該瘦身的瘦身,字段該拆的拆,橫豎兩刀,過期數據定期歸檔,基本上就這些事。

結合業務:有些優化 DBA 累的半死,不如 RD 修改一行程式碼。 DBA 也要多和業務接觸,了解業務實現,不求給業務貢獻多少,不背鍋就好... 開玩笑。了解業務,就能站在更高的角度思考,很有意義。

學會拒絕:這個拒絕不是罷工不干活,而是要分清哪些需求的合理性與緊急性,不合理也不緊急的直接幹掉,緊急但不合理的可以臨時通過,快速解決問題,事後再的確掉也可以。例如 olap 跑在了線上函式庫,count(*) 計數 SQL 完全可以非同步走計數器,Redis 是好東西。

學會溝通:工作也有些年頭了,這一點仍然在學習,也犯過不少錯。溝通好權責,定下時間表。

踏實學習:回頭看當年DBA做的不夠好,有些原因在於沒有開發能力,很多想法止步於此。維運人員一定要有開發功力,並且要比業務 RD 更精,才能做好運維。

運維RD的矛與盾

KPI 不同,關注點自然也不同,一線的同學經驗也都有欠缺,特別是剛工作1~2年的,造成了資訊與知識的不對稱。解決這個問題也不難:

新人要有導師帶,對新人放手不管最不負責。這方面感覺 nice 做的不錯。該誇還是要誇的。

支援團隊要有足夠的 wiki 業務文件說明。

自動化用技術來約束,而不是人工。同比業務介面強約束,現在服務化都用 thrift 了。

對趕集的記憶已經越來越模糊了,唯有...

總結寫了一部分後,原同事都說遺漏了一些,那就一齊追加到後面,版權不歸我:)

20170214 以下內容來自原同事: 李瑞

回憶下趕集的dba生活

總結下就是各種故障多,隨時候命,需要處理,這些直到automan出來,強制rd通過平台上線後,稍微好一點。

因為raid0的問題,至少遇到4-5次master硬碟的問題,需要緊急處理。

tg 遇到1次,ms 切過次,似乎也是磁碟的問題。

其他slave 備份機,硬碟故障更是多,最多一週需要處理4起磁碟的問題。而趕集的mysqldb 一般都大至少100G,資料報表庫的磁碟有2.3T,沒辦法透過備份的方式重架從函式庫,我用了2-3週才搞定

im 的swap 問題

Imm的swap問題,肯定是sql的問題,主要的查詢sql 是透過order by,count 來取得數據,這個問題,從我進去趕集到出來一直是無法解決。只能是手動lvs切割流量,重啟slave,再lvs回切流量 解決swap的問題。 1週幾乎需要1-2次。告訴過im同事幾次im sql問題,希望對count查詢可以自己做個計數器,但最後也沒下文了。關閉swap 又怕伺服器會經常oom。 最後還是趙慎舉同學來了後,開啟了預熱innodb_buffer_pool的參數後,可以直接重啟slave,而不怕因為預熱的問題load突增。其他趙慎舉同學改了numa限制內存,不過im的swap最後也沒解決。

備份

備份的問題,1是磁碟空間的問題,1個還是raid0的問題。 。

最後你們走後,有1個月我獨立支撐,直到畢常奇來了,6台,還是7台備份機,硬碟壞的是此起彼伏。 Log庫,emp,還有王緒峰組,我忘了業務線的名稱了,暴漲到800G的數據,備份機壞了,再加上空間不足。我索性停了備份,最後只保證了ms,hp,tg,tc一些大庫的備份,這個58同事接手後估計會被他們鄙視壞了。

這個其實後來華為32T的備份機來了以後,備份機制應該變通的,怪我

還有異機備份,每2個月4個2T盤就會保存滿了,更換,挪盤,手動做raid掛盤,手動excle做記錄。最後還真有次要用到這些盤來查找資料。

磁碟問題

Hp 兩個大表,需要定期清理資料。 Ms 磁碟每天10G的成長速度,而且ms需要用pcie卡,最後終於可以從800 擴到1200。可以消停幾個月。 Ms 有幾台機器,最後就差10G 左右就要滿了。各種刪日誌,各種挪數據,東牆補西牆,(搞的我知道400G 的ssd 做xfs 要比ext4 能省20G 的空間,剛好夠給ms用),而且磁碟的增長,伴隨著備份機,磁碟空間不足,sim機(提供唯讀服務給開發的我忘記叫什麼了)空間不足。還有report庫,想申請磁碟,伺服器,機櫃沒有位置了,就這樣挺著單庫跑了很久。

還有就是王緒峰組和tc 的透過框架產生的sql

產生多餘的子表,varchar 類型的欄位條件不加單引,再加上上線建表不加索引,定期需要檢查sql,進行最佳化。

痛苦的hp,主庫拆分。

歷時1年多,沒有分拆完整 。最後聽畢常奇說,瓜子二手車從這些柯瑞分拆。自上而下,強行拆分。 1-2天拆分了。

php的短連接,連接數滿

這個最後的最後,你們走了後,偶爾在分析hp全日誌,發現hp每1-2次連接,伴隨著一次空連接。 Connect 什麼都不做 quit。這個問題不知道什麼有的,改了後,hp的連線數問題好了。

總結,在趕集,因為數據的暴漲,只是一味的應對,沒有快刀斬亂麻,進行分拆。還有就是有個dba的平台真是必要,管理監控,提交審核sql,這個直到後來我才能夠模仿著automan勉強寫了個。

文章由php中文網網友澤潤供稿,轉載請註明,本文網址:http://www.php.cn/toutiao-352102.html

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。