****欧欧美毛片4,国产午夜精品视频,97视频在线观看免费视频,久久七国产精品

數據恢復咨詢熱線:400-666-3702??

歡迎訪問南京兆柏數據恢復公司,專業數據恢復15年

兆柏數據恢復公司

?行業新聞

?當前位置: 主頁 > 行業新聞

【技術頭條】京東數據庫演變及MySQL運維自動化

瀏覽量: 次 發布日期:2023-08-17 21:48:51

【技術頭條】京東數據庫演變及MySQL運維自動化

個人簡介 李京生,從事互聯網運維管理、數據庫管理16年,京東開源數據庫運營部總監,全面負責京東開源數據庫相關工作。2005~2011任百度首席DBA,推動百度數據庫技術持續發展;2011年底加入京東,積極發展京東數據庫技術,進行技術創新,帶領團隊平穩護航2012~2015年8次6.18、11.11大促。致力于電商數據庫設計、優化、多中心多活交易、分布式數據庫開發、超大規模下數據庫運維自動化、自助化工作。個人榮獲京東年度最佳舵手、優秀總監、優秀個人、金牌講師等多項獎項。主題簡介 京東數據庫從收費數據庫為主到現在以MySQL等開源數據庫為主的演變;京東MySQL數據庫在多交易中心部署、超大規模下如何進行管理:涉及自動化部署、自動化切換、監控智能分析、故障自動處理、性能優化處理等。精彩實錄 技術頭條將定期和大家分享技術大咖們的精彩演講實錄,為互聯網從業者提供更多精彩的技術干貨,打造技術圈前沿技術交流的平臺。京東數據庫演變及MySQL運維自動化 演講實錄1、京東數據庫發展演變

2012年,是京東數據庫發展的一個重要時刻,2012年之前數據庫主要以sql server、ORACLE為主,MySQL作為邊緣系統,從2012年春節開始MySQL迅速在京東崛起,以爆炸式的方式增長,到2013年618,MySQL的使用就占了京東一半的核心交易系統,發展到2014年MySQL已經成為京東的主流數據庫,為京東95%以上的業務提供百分百安全、高效、穩定的服務。

2013年3月28日正式發布了MySQL數據庫分布式數據庫“藍海豚”,它主要解決的是數據庫自動拆庫拆表問題,提供透明代理,同時解決了性能、擴展性和空間問題,這個系統也預示著京東MySQL會有非常好的發展;對于研發和DBA的工作,也得到了很大的提升和改善。這是我們團隊用了不到半年時間開發出來的,后續又有多次版本升級、提升。

京東MySQL的幾個大事記:2012年春節MySQL的數量突破了一百臺,同年618訂單中心使用MySQL;2013年移動、價格、促銷、庫存等一半以上的核心交易數據庫使用MySQL;2014年使用更為廣泛,特別是2014年11.11最核心的訂單中間件數據庫正式使用了MySQL,正式宣布了MySQL在京東的主流地位;2015年進行了一系列創新性項目,如諾亞方舟數據庫大遷移項目和多中心多活交易項目,對數據庫資源、架構、高可用等進行優化、改造。

縱觀京東數據庫的發展趨勢,從2012年開始以MySQL為主,其他多種開源數據庫并存,包括:MongoDB、MariaDB、PerconaDB等;同時還有ORACLE、SQL SERVER等商業數據庫同時為京東提供服務,不同的業務特性滿足不同的需求。2、京東MySQL發展方向

對于京東MySQL的發展方向,主要包含以下六個方面:數據庫設計優化、數據庫架構、數據庫安全、數據庫災備、數據庫技術研究和創新、以及數據庫運維自動化。前四個方面決定了數據庫能夠穩定、安全、高效、高性能的運行。由于MySQL是開源數據庫,因此新技術研究和創新以及運維自動化環節,是MySQL運維中極為重要的主題,對海量數據庫服務的管理、提高人效、減少人為故障等方面是至關重要的,這也是我們四年多發展的比較好的原因之一。我認為只有這六個方向同步發展,數據庫體系才能夠健壯成長,才能為公司提供更好的服務,這也是京東數據庫發展的好的原因之一。

3、數據庫運維自動化

隨著京東業務的飛速增長,業務增加,數據庫相應增加,MySQL由最初的幾十臺到以上百倍的速度增長,對這些業務的管理、服務器的管理、數據庫的管理、各種信息的管理,數據庫運維自動化是必不可少的。相信大家有這樣的經歷,幾臺或幾十臺的服務器運維,靠人工管理很好,而上百臺、上千臺乃至上萬臺的話就需要各種自動化工具、手段的支撐,也就是需自動化運維平臺的支撐。京東的數據庫自動化運維平臺叫JMySQL智能管理平臺,主要涵蓋部署、切換、監控、基礎信息管理、性能智能分析、自動處理、安全審計、自動化上線、備份等方面。這個系統是我在京東四年多打造的數據庫運維平臺,京東超大規模數據庫的運維工作,就是靠運維自動化平臺完成的,下面簡要說明部分功能。

3.1、基礎信息管理

基礎信息管理是自動化運維的基礎,京東的數據庫規模已經覆蓋數千條業務線,服務器數量巨大,那么其中的各種信息:設備信息、數據庫集群信息、研發人員信息、賬號管理信息、權限的劃分、配置的管理、相關主從架構信息、DNS信息等的管理就非常必要,這些信息覆蓋了監控、報警、備份、上線、切換等DBA運維中所有方面,如果沒有這些信息,自動化運維無從談起。比如說一個服務器故障了,需要知道這個服務器是那個機房的,是主庫還是從庫,上面是什么業務,業務的等級是什么,業務方的聯系方式等信息,這個系統出來問題會影響到哪些業務,這些都是基礎的,又是必須的。信息的完善、準確,對運維來說至關重要。另外,基于這些信息可以對故障進行自動判斷,這和故障自動處理、報警合并技術相關聯。

3.2、自動部署和擴容

對于DBA來說,數據庫的擴容和改造是一個復雜且繁瑣的工作,自動安裝和自動部署可以使DBA提高人效,大部分的基礎工作可以得以解放。擴容,這里指的擴容并不是單純的擴容,而指的是水平拆分和垂直拆分,乃至更換硬件,或者是進行切換等等。很多情況下運維人員發現性能不夠,就要去擴容,但事實上很多情況下,不見得一定要擴容來,相信很多人有過這種經驗,改變一些策略或是一個業務邏輯甚至是一個SQL語句一個索引,就可以輕松解決問題,同時為公司節省資源,所以這里要強調的擴容是必須的擴容。

對于DB層面的擴容,主要是增加服務器部署數據庫實例,導入數據,正式拆分切換。從服務器相關環境的初始化、數據庫部署、制作從庫等一系列實現自動化,最重要是做新從庫的數據,可從備份存儲中提取的備份文件來做,也可從線上從庫動態取的。做這些工作的前提是一定不要影響生產業務,需要擴容的系統,做操作的時候一般選在業務低峰期間進行擴容。

對于水平擴容中對業務切換有兩種方式,一種是自動的,一種是半自動的,自動切換的是因為有的業務使用分布式中間件系統,對于這種它可以進行自動的擴充,或者拆分,這個完全有中間件來完成,業務無感知。那么對于一些沒有接入的中間件系統的,只需要研發和應用運維按照擴容拆分的規則,修改連接數據庫DNS,垂直擴容相對簡單這里略過。3.3、 自動切換

在大規模部署中,數據庫在多個機房都會有從庫,再加上多中心雙活交易,會有雙活的寫庫,場景會相對復雜。數據庫宕機或網絡異常后的切換是DBA一項重要工作,在MHA基礎上DBA開發了自動切換程序JDSWITCH,在可接受自動切換的數據庫上部署,其他的數據庫因為業務原因會使用切換平臺進行切換。切換平臺也是一個極重要功能,支持按單臺切換、按數據庫集群切換、按子系統集群切換、整個機房進行切換。在可連通情況下,切換時會自動掛同步關系,所有數據不需要重做,如連不通則切換后有程序檢驗數據情況,能補齊的補齊,如無法補齊用自動部署系統重做。一旦整個機房異常,所有MySQL集群可在幾分鐘完成跨機房切換,防止挖土機關鍵時刻的絕殺。

特別提下,切換過程除切換外,必須包含監控的修改、資產信息的修改、備份策略的修改、主從角色的修改等,實現一鍵化流程完成,避免后續因此帶來的二次故障。

3.4、數據庫監控

對數據庫服務運行的狀態進行實時的監控,包括數據庫會話、數據庫日志、數據文件碎片、表空間監控、用戶訪問監控等,隨時發現數據庫服務的運行異常和資源消耗情況;輸出重要的日常數據庫服務運行報表以評估數據庫服務整體運行狀況,發現數據庫隱患;監控對于DBA來說是至關重要的,是DBA的第三只眼睛,利于監控可以自動處理一些常規的故障,提前發現并解決潛在隱患。

市面上流行的監控軟件很多,通過對比,京東數據庫這邊選用zabbix作為監控的基礎,主要是因為它有很強的API,方便進行二次開發;監控粒度達到秒級,提高報警的及時性;觸發報警條件的自主性,方便設置綜合的觸發條件,減少誤報。我們對它進行了二次開發,并與資產信息、備份系統、切換系統等其他運維平臺進行整合,可對監控數據進行深度分析,對報警項劃分等級,不同的等級不同的告警處理方式,并結合監控報警啟動故障自愈,使常見的故障可自動修復,必要的報警經處理后發給運維人員處理。我們已將其打造為具有京東特色的zabbix監控系統。

3.5 數據庫性能智能分析

數據庫性能的智能分析,主要是對數據庫監控數據的二次分析,根據過去預測未來,根據當前排除安全隱患。在實際的生產中,有些隱患沒有達到設置的報警閥值,處于一個報警的臨界點,其實這種情況是最危險的,隨時可能爆發,為解決這些隱患,我們通過對監控數據的環比、同比、TOP指標等方面進行分組匯總分析,提取出這些隱患,解決于萌芽狀態。這點很重要,服務器的量級達到一定級別時,這個需求就顯得即為重要,這是對監控的一個補充。

性能智能分析對數據庫管理工作非常有用,舉個應用線上的例子,本次大促數據庫是按照前端流量可能增加20倍進行備戰的,對于“抵擋”前端流量的數據庫來講風險非常大,算法上我們為這類數據庫確定了壓力倍數A,負責后端處理的數據庫壓力倍數通常小于A,因為有中間一系列環節處理,它的壓力倍數被確定為B,有些系統壓力會增加的非常大,DBA從研發處得到可能增加的壓力倍數,則這個系統的特定壓力倍數為C,在當前性能指標的基礎上,可計算出性能是否滿足,需要增加多少,哪種方式增加。對于不同類型應用對數據庫的壓力也不同,如IO型、CPU計算型、網絡IO型、混合型等,會對數據庫及服務器產生不同程度的影響。一定要避免木桶效應,并考慮峰值,舉個簡單例子:假設一個數據庫別的指標都忽略,IO使用率均值是20%,但峰值達到30%,那這個數據庫就不是能再抗4倍壓力的,因為有峰值,如果確定壓力真的會再增加4倍,那就要采取解決措施了。如果因為特定原因,不能進行數據庫改造,則一定要制定預案,一旦壓力上來,抗不住了,確保數據庫不被打死。

特別強調下對于核心數據庫不只是單純地先進行指標評估分析,然后擴容改造就行了的,還要盡量進行壓測,通過壓測進行把關,既:要尊重指標分析,但還要注重實際情況。現在系統設計時大都會在應用和數據庫層之間加Cache層,對于“抵擋”流量的數據庫一定要考慮到Cache層被打穿或者關鍵時刻Cache層異常的情況,DBA這里會按照一個比例預留。基于資源考慮不可能為所有風險點無限制的改造,會按個比例進行,一旦異常情況超出壓力范圍,馬上采用預案,比如該限流的限流、該降級的降級,首先保證主要的核心服務正常,不被打死。這里并不是說只對核心服務這樣處理,時間允許、資源允許的話所有重要服務、服務都需要這樣做。

回到SQL的話題,SQL性能好壞影響著數據庫性能,要根本解決問題需要整改SQL、優化表結構或索引,那么對慢SQL的分析就是DBA的一項日常工作。京東這邊為解決這個問題,根據京東的實際情況,開發出一套適合自己的慢查詢訂閱系統,定時分析慢SQL,發給指定的研發、DBA,大家也可以到慢查詢平臺去查,方便處理異常。

3.6 安全審計

對于MySQL數據庫安全審計這塊,京東主要這邊主要分為四部分:安全策略、健康檢查、行為審計、統計報表。通過以上策略,確保京東數據庫數據的安全、完整、可靠、高效運行。

另外,DBA工作中最重要的一塊就是數據庫的備份,建立合理有效規范的數據庫備份系統至關重要,在數據遭到嚴重故障時,不至于束手無策。備份分為常規備份和業務變更備份。常規備份一般指的是每天定時整備和增量備份,業務變更備份指的的是收到業務部門的指令備份數據或上線系統進行的操作前備份。備份會有多套,在本地、異地、云存儲上等,并進行多重加密保護。

作為DBA,對SQL的準入制定相關的規范,對數據庫訪問權限的嚴格把控,對數據庫的進行操作審計,嚴防數據信息外泄等也是工作的重要組成部分和工作職責,京東在這方面都建立了比較完善的體系。

4、京東MySQL發展展望

應該說這4年多,京東的MySQL等開源數據庫取得了非常好的成績,京東MySQL數據庫規模巨大,運行極其穩定,很好的支撐了京東業務飛速發展,各種技術創新倍出,但我認為還有很多可提升、完善、細化的地方。在2016,基于云上的自動化、智能化、平臺化、可視化是我們的目標,我會帶領團隊為了這個目標不斷努力前進。

現場視頻直擊

活動推薦 4月9日,麒麟會將在北京五洲皇冠國際酒店二層會議室1舉辦一場深度技術交流沙龍活動,活動邀請了Open-Falcon社區發布Open-Falcon v0.1.0最新版本,還邀請到美團、快網、滴滴出行的一線互聯網技術精英為大家現場全面解析Open-Falcon的學習成果與實戰經驗。

您可以進入麒麟會官網www.kylinclub.com報名或掃描以下二維碼關注麒麟會微信在線免費報名!

我們審核通過后,將會在第一時間發送帶有二維碼連接的短信到您的手機,請您注意查收!


南京兆柏數據恢復中心 南京兆柏數據恢復中心
相關推薦