作者:IT邦德
中國DBA聯盟(ACDU)成員,10余年DBA工作經驗,
Oracle、PostgreSQL ACE
CSDN博客專家及B站知名UP主,全網粉絲10萬+
擅長主流Oracle、MySQL、PG、高斯及Greenplum備份恢復,
安裝遷移,性能優化、故障應急處理
微信:jem_db
QQ交流群:587159446
公眾號:IT邦德
文章目錄
- 前言
- 1.救火能力
- 1.1 調優
- 1.2 高可用
- 2.監控能力
- 2.1 服務器監控
- 數據庫監控
- 3 數據源賦能者
- 4.總結
前言
我用十多年的DBA經驗告訴你,如果你作為研發覺得DBA很Low,你是會吃苦頭的
“你以為DBA就是安裝一下數據庫,管理一下數據庫?你丟個SQL給DBA優化下?你的日志爆滿了DBA給你清理一下?DBA幫你安裝下中間件?你以為的DBA只是做這些事?”
秉持著和平交流的學習態度,我這里精選了幾位高贊粉絲的精彩回答
1.救火能力
1.1 調優
IT界并沒有一個通行的 ”拳頭“ 來判斷誰low,誰更low。有時候,研發寫的程序,新功能發布后,就出現磁盤IO出現瓶頸了、或者CPU飆高到100%了,但是這個時候,只是表象,只知道Linux機器的資源耗盡了,DBA得先找到資源消耗在哪了,才能進一步分析原因,用數據說話是應用的問題,才能責令程序員整改。
SQL調優是一個復雜的過程,涉及多個方面,包括但不限于SQL語句的編寫、索引的使用、表的連接策略、數據庫的統計信息、系統資源的利用等。調優的難度取決于多個因素,包括查詢的復雜性、數據量、硬件資源、數據庫的工作負載和現有的優化策略。
在這里給大家分享一個執行計劃變,1個SQL把系統干崩的情景,由于業務用戶檢索數據范圍過大,導致執行計劃謂詞越界,通過矯正執行計劃及開啟操作系統大頁,服務器DB一直存在的CPU高負載從75%降低到25%!
生產問題,瞬息萬變,DBA要同時熟悉業務,并對硬件、網絡要精通,要在這樣的復雜情況下作出正確的決策,這一點我想難度不小吧。
1.2 高可用
數據庫高可用是指DB集群中任何一個節點的故障都不會影響用戶的使用,連接到故障節點的用戶會被自動轉移到健康節點,從用戶感受而言, 是感覺不到這種切換。
那么DBA在高可用的配置方面,下面就是某制造業大廠,應用層的鏈接方式
–jdbc應用端的連接
jdbc:oracle:thin:@(DESCRIPTION =
(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)
(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)
(PORT = 1521))(LOAD_BALANCE = no)(FAILOVER = yes))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = dbserver)))
那么這種配置FAILOVER = yes,Net會從多個地址中按順序選擇一個地址進行連接,直到連接成功為止,那么就會保證數據庫單節點故障,自動的切換,高可用是故障發生的第一個救命的稻草,系統上線前一定要測試好,才能確保數據庫的高可用,這期間DBA功不可沒!
還有客戶要求選擇的一套國產數據庫支持核心業務,那么作為DBA在選型及業務適配上就發揮作用了,跟研發確認發現應用是兼容PG的,而且客戶要求要同時兼容OLAT和OLTP業務,看下以下這套openGauss國產數據庫的高可用架構。
1.openGauss高可用:CM
通過配置VIP故障轉移,OLTP連接VIP,進行事物交易
同時支持動態配置CM集群故障切換策略和數據庫集群腦裂故障恢復策略,
從而能夠盡可能確保集群數據的完整性和一致性。
2.寫重定向,報表分析業務連接,支持讀寫分離
主備節點開啟控制參數 enable_remote_execute=on之后
通過備庫發起的寫操作,會重定向到主庫執行
2.監控能力
這方面我是最有發言權了,SA一直是我的本職工作,從機房硬件部署、弱電以及數據庫的安裝實施,很多東西需要依賴于DBA來做,全力保障應用的穩定性,而且監控到的指標隨時可以推送到郵件以及微信。這期間我也發現了很多天窗,原來還可以這么干?
2.1 服務器監控
首先監控Linux服務嘛,那肯定是要全方位系統的監控,網絡、磁盤、CPU、內存等等,這才叫監控,那么其實給大家推薦一款免費的監控工作
Prometheus提供了從指標暴露,到指標抓取、存儲和可視化,以及最后的監控告警等組件。
數據庫監控
Zabbix聚焦于幫助用戶通過性能優化和功能升級來快速響應業務需求,從而滿足客戶的高期望值,并提升IT運維人員的生產力。在可擴展性與性能、穩定性與高可用、可觀測性幾個領域獲得持續提升。監控做不好,救火救到老!拿下Zabbix,現在!立刻!馬上!!
1.監控Oracle
博客地址:
https://jeames.blog.csdn.net/article/details/126825934
2.監控PostgreSQL
博客地址:
https://jeames.blog.csdn.net/article/details/120300581
3.監控MySQL
博客地址:
https://jeames.blog.csdn.net/article/details/126825934
3 數據源賦能者
從AI、智能化到云遷移和安全性,業務和技術趨勢不斷重塑DBA在組織中的角色.DBA 群體站在時代的岔路口,國產數據庫太多了應該怎么選?DBA 會被云上數據庫拋棄嗎?應該如何應對新時代挑戰?職業終點在哪里?
1.云數據庫解決方案
DBA要善于利用云原生保障數據安全和優化成本
2.數據安全與合規
隨著數據保護法律的出臺、日益嚴峻的網絡攻擊,
DBA必須掌握加密、訪問控制和審計等技能
3.災難恢復和業務連續性
隨著企業愈加依賴數據的連續性,
快速恢復丟失數據并最大限度地減少停機時間至關重要
4.自動化和腳本編寫
自動化和腳本編寫對于DBA管理重復性任務和提高效率尤為關鍵
5.有效的溝通和協作
有效的溝通和協作仍然是DBA的重要技能。
能夠向同事清楚地傳達技術信息、與跨職能團隊合作,
打破IT部門和業務部門之間的信息差,確保數據庫的策略與組織目標保持一致。
4.總結
在一個公司寫了屎山代碼的研發,可以拍拍屁股走人,然后繼續去下一個企業再寫個屎山。反正不會追著代碼跨省找你。而一個搞崩了系統的DBA,這個闖禍經歷將成為他的黑歷史,并影響到他未來的就業.因為需要專業DBA的好企業,基本都是幾百臺服務器起步的大項目,難免不會查背景,這就導致DBA如果想干得好,圈子會越來越小,請記住是干得好,不是混得好,混是會出事的。
好了,以上就是我對DBA的理解了,有不足之處還望指正。