從一個Oracle DBA的角度來談談PG資料庫的最佳化
P G 資料庫目前已經成為最熱門的開源資料庫之一,特別是因為其開源協議十分適合商業化,因此大量的商用資料庫,包括大量的國產資料庫也都基於 P G 的開源代買進行研發。作為一個曾經的 Oracle DBA ,如果在現階段要轉型的話,學習一下 P G 資料庫的運維,也算是未雨綢繆了。我搞了差不多 30年Oracle資料庫,不過我估計在我退休前的這幾年裡,Oracle方面的活會有所減少,而開源和國產資料庫方面的運維最佳化需求會大大增加。於是從2017年開始,我和我團隊的小夥伴們就開始對P G 資料庫進行系統的學習了。 Oracle DBA 轉而學習 P G 資料庫,實際上還是比較容易的,因為大型關係型資料庫的基本概念是相通的,而且 P G 資料庫因為沒有了共享池和全域性共享 C URSOR 這個超級複雜的機制,也要簡單的多。
如果按照上面的維度把 Oracle資料庫與P G 資料庫的運維做個比對。 P G 是開源資料庫,無原廠支援,第三方服務水平較低,,程式碼 BUG可透過閱讀原始碼定位,需要透過社群修復。在這裡,第三方服務廠商就可以為客戶提供很多服務,比如資料庫的安裝和初步調優,以及定期的補丁與安全漏洞檢查,打補丁升級,解決日常遇到的B UG 等。與擁有原廠標準化補丁和服務的 Oracle相比,P G 資料庫這方面相對較弱,需要第三方服務來加以支援。
對於運維監控與最佳化而言, P G 資料庫提供了同樣豐富的監控介面和指標體系,不過部分監控介面需要安裝外掛,包括一些十分重要的監控採集內容,比如 T OP SQL ,都需要安裝外掛來實現。 P G 的第三方服務上應該幫助使用者提供這方面的安裝服務。
另外一方面, P G 資料庫和作業系統結合的十分緊密,運維工作與 OS關聯緊密,相對簡單,沒有複雜的共享池,運維關注點較為集中。在我個人的感覺離,P G 資料庫的運維更像是 Oracle 9i時代的資料庫運維。
與 Oracle資料庫不同的是,P G 資料庫的大版本升級對運維細節影響較大,甚至很多運維細節都是顛覆性的。因此需要 PG 的運維人員不斷的更新版本資訊,否則很容易出現認知錯誤。
最後一方面, P G 開源的第三方工具和第三方生態產品較多,而且這些工具與 Oracle的第三方工具、生態產品不同,如果不能很好的掌握這些工具和生態產品,會對P G 資料庫的運維產生比較大的影響。如果你去運維 Oracle資料庫,那麼只要把Oracle自身玩好就行了,Oracle資料庫自身構成了一個十分完善的體系,周邊工具與Oracle RDBMS 之間是緊密整合,而且從底層是貫通的。而 P G 資料庫則不同, P G 社群僅僅提供了一個 R DBMS 和一些必要的外圍工具,剩下的應用所需要的功能都是其他的開源專案提供的。因此 PG 周邊的生態工具數量龐大,功能也存在差異,與 P G 資料庫的整合也是應用級的,沒有在 R DBMS 底層進行打通。最大的問題是使用者在選擇這些產品的時候也比較隨意,你去服務的不同客戶可能會選擇不同的高可用解決方案,選用不同的讀寫分離叢集方案,使用不同的第三方外掛來解決一些資料庫的功能問題。因此作為 P G 資料庫的 D BA 或者運維服務人員,你需要全面的掌握這些第三方生態工具,才能夠真正的把 P G 資料庫的運維服務做好。
在 P G 資料庫的運維中,從一個 O RACLE DBA 的角度,我也總結了一些日常運維與最佳化的工作內容。因為今天下午我還要趕到東莞去參加華為的鯤鵬昇騰開發者峰會,所以今早的事情比較多,我就不展開介紹了,如果大家有興趣,明後天我會把上面這個片子詳細的介紹一下。大家有興趣的話,就在下面留言吧。
關於留言,我簡單說幾句,因為怕麻煩,我沒有開啟留言討論的公眾瀏覽功能,因此你們給我的留言我都是可以看見的,不過其他朋友可能看不見。年紀大了,只想靜靜的寫點東西,沒有精力去就某些觀點爭論與辯論,大家請包涵。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70036742/viewspace-3006269/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從原始碼的角度來談一談HashMap的內部實現原理原始碼HashMap
- 從資料庫角度談業務連續性資料庫
- 從資料庫的角度談-元組(Tuple)和記錄(record)資料庫
- 從Oracle資料庫管理員的角度看PostgreSQLOracle資料庫SQL
- 從原始碼角度談談AsyncTask的使用及其原理原始碼
- 從JS的執行機制的角度談談作用域JS
- 從一個面試官的角度談軟體工程師的面試面試軟體工程工程師
- 從“求職者”的角度來談日本遊戲業界求職遊戲
- 從一個資料庫連線數計算公式談起資料庫公式
- 談一談資料管理的格局
- 談談主資料管理MDM未來的6個主要趨勢
- 透過預熱來最佳化PG資料庫的SQL效能資料庫SQL
- 談一談資料探勘的軍規
- 從一道PG知識的選擇題談起
- 談談12個最常見的資料質量問題及其來源
- 從感性角度談原型 / 原型鏈原型
- 談一談常見的資料治理怪象
- 從玩法、敘事、主題三個角度淺要談談《死亡擱淺》的好與壞
- 談一談Spring-Mybatis在多資料來源配置上的坑SpringMyBatis
- 談一談 Spring-Mybatis 在多資料來源配置上的坑SpringMyBatis
- PG 資料庫 從阿里雲pg rds 同步資料。資料庫阿里
- 從雲洩露事件談雲資料庫的攻防之道事件資料庫
- 從一個簡單的Delete刪資料場景談TiDB資料庫開發規範的重要性deleteTiDB資料庫
- 梧桐資料庫淺談查詢最佳化技巧資料庫
- PG資料庫IO最佳化技巧資料庫
- 【雜談】從實現角度看ChannelFuture
- 從發行商角度談遊戲發行中的7個核心邏輯遊戲
- 關係型資料庫 RDBMS 的舊與新 — 談談 NewSQL資料庫SQL
- 談一談阻礙資料建模的5大藉口
- [資料庫] 淺談mysql的serverId/serverUuid資料庫MySqlServerUI
- 談談制定資料戰略的7個關鍵要素
- 談談資料的貨幣化
- PG資料庫SQL最佳化小技巧資料庫SQL
- 談一談資料中臺的原罪
- 從軟體哲學角度談 Amazon SageMaker
- 從一起丟包故障來談談 nginx 中的 tcp keep-aliveNginxTCPKeep-Alive
- Oracle 如何快速的 duplicate 一個資料庫Oracle資料庫
- 今日談:BoltDB資料庫,一款純Go實現的KV資料庫資料庫Go