背景
PG是一個純社群化的企業級開源資料庫,沒有任何一個國家和公司控制PG。開源許可非常友好,在遵循許可(COPY 2段話)的情況下可以任意使用和分發。功能、穩定性、性能和ORACLE對齊,是去O的首選資料庫。
其他大多數的開源資料庫背後都有商業公司控制,開源許可通常不是特别友好,使用不當可能踩坑。
《PostgreSQL 社群分析 - 為什麼PostgreSQL社群幾乎不可能被任何一個商業公司、國家所控制?》1、PG天天象上沙龍回顧,視訊。
天天象上活動,每個月一場,全國巡回。旨在建立各地企業生态圈子,建立各地企業與PG資料庫社群的聯系,切實的幫助企業解決技術、商業、生态層面的問題。
xx摩擦、ZxE事件、以及近期某銀行收到Oracle6億罰單等等的熱點事件,引發了企業對核心技術安全合規、自主可控的深度思考。對于資料庫來說,安全合規、自主可控,成本等也已經成為絕大多數企業迫在眉睫要解決的問題。
什麼資料庫最适合替代Oracle,同時在技術架構上領先于傳統資料庫,并且可以支援企業的蓬勃發展?除了需要考慮Oracle相容性、企業特性(可靠、可用、安全、可擴充、性能、穩定、功能)還需要考慮産品的開源許可,多模特性,混合場景能力等等。
PostgreSQL作為最先進的企業級開源資料庫(BSD like開源許可,自用和分發都不需要擔心法律風險,不需要擔心PG被收購,不用擔心PG被一家獨大的公司控制。),覆寫OLTP,OLAP,NoSQL,搜尋,時空,流,圖,圖像等應用場景。應用場景豐富,并且在穩定性、性能、可用性、可靠性、容災、安全性、擴充性等方面不亞于商用資料庫Oracle,被業界稱為“開源界的Oracle”。在企業資料庫自主可控、安全合規、成本幾個方面,PG毫無疑問的成為了企業的最佳選擇。
為幫助企業掌握去O能力。阿裡雲資料庫團隊、PG社群、雲栖社群、雲栖技術日、阿裡雲技術創新中心共同推出《PG天天象上》活動,涵蓋《PostgreSQL 應用案例、原理、最佳實踐》、《PPAS + ADAM Oracle 遷移上雲》、《企業資料庫安全、自主可控》、《各行業的TOP軟體開發商分享》、《資料庫服務提供商、內建商的分享》、《企業圓桌深入研讨》等系列主題。
2018年9月開始,《PG天天象上》活動陸續在“杭州,北京,鄭州、廣州、深圳、上海、南京、合肥、長沙、成都、溫州、武漢”等多地開展,活動線上上與線下覆寫人數已達數萬人次,出席活動的參會者彙聚了銀行,證券,網際網路,人工智能,高校,醫療,新制造,電商,遊戲,政府,電力,物流等行業的開發者,DBA,架構師,CTO,CIO。
歡迎就近選擇參加。
2、(阿裡巴巴 PostgreSQL、社群生态;PG開發者指南、原理、案例、管理優化實踐《學習資料、視訊》)。
《PostgreSQL 2~3 天教育訓練PDF和視訊》一、PG天天象上
1 PG天天象上活動内容簡介
1、PostgreSQL 社群工作彙報。
2、阿裡雲ADAM+PPAS(POLARDB for Oracle)的企業去O實踐
3、PostgreSQL 資料庫架構、原理(實體架構、程序結構、邏輯架構、流複制架構、HA架構、多副本架構;權限體系、存儲引擎原理、索引結構等)。
4、PostgreSQL 理論基礎,管理、開發實踐,優化方法,PG學習參考資料
5、PostgreSQL在OLTP|OLAP、空間資料管理、圖式搜尋、全文檢索、文本搜尋、特征搜尋、時序應用、流式資料處理、使用者畫像分析等場景的應用案例。
案例橫跨 物聯網、電商、生物科技、遊戲、傳統企業、CRM、ERP、ZF、GA、物流、音視訊、BI、社交、金融、證券、手機、天文等行業。
6、PostgreSQL 大型行業TOP企業使用者分享
7、PostgreSQL 行業軟體開發商、服務提供商、中間件廠商使用者分享
8、企業深入圓桌研讨會議,企業資料庫辯論賽
涉及内容較多,案例涉及到詳細的架構設計、代碼、原理等内容,請參閱本視訊提供的PDF内的URL連結。
2 PG 天天象上 往期講師介紹
digoal @ 阿裡雲
中國開源軟體推進聯盟PostgreSQL分會,特聘資深領域專家。
PostgreSQL 中國社群發起人之一、常委、兼任社群大學校長。
中國資訊通信研究院主辦、中國通信标準化協會支援的"OSCAR雲計算開源産業大會"評選:2018屆OSCAR開源尖峰人物之一阿裡雲資料庫首席專家團隊
成員,提供
資料庫首席專家服務。
30項資料庫專利。(截至2018-01)
緻力于PostgreSQL資料庫在中國的技術落地與推廣、人才培養。
About digoal唐修 @ 阿裡雲
淩策 @ 阿裡雲
高銘傑 @ 阿裡雲
圖贲 @ 阿裡雲
趙振平 @ PG社群 主席
唐成 @ PG社群 副主席
周飛 @ HELLOBIKE
趙志強 @ 天數智芯
陳河堆 @ 中興
陳華軍 @ 蘇甯
董紅禹 @ 乘數科技
張勤建 @ 雲貝
梅白帆 @ 北京國網富達
楊棟 @ 神州飛象
3 PG天天象上活動往期回顧
1 20180121期天天象上(杭州-娃哈哈贊助)
報名人數:80
重要議題:阿裡雲PG産品線生态介紹,PG案例,PG的原理、應用場景、優化、管理等内容等。
企業辯論賽回顧:
1、使用者的某個業務系統,開放了公網以及0.0.0.0的鍊路權限,在運作一段時間後,發現資料庫的幾個程序CPU 100%,如何排查這種問題?
找到造成CPU 100%的程序号,以及對應的父程序,發現父程序為資料庫postmaster程序,是以斷定是PG發起的程序。
排查pg_stat_activity沒有發現對應會話,開啟連接配接審計,排查pg_log的日志,找到了詭異的連接配接記錄,同時發現資料庫被建立了幾個非業務使用者,同時通過大對象植入了C代碼到PG執行個體中,建立了一些異常函數(死循環,一直耗費CPU)。
顯然資料庫可能被黑。
《Hacking PostgreSQL》更新PG版本解決,同時建議pg_hba.conf(資料庫ACL配置)不要開放0.0.0.0即使需要開放0.0.0.0也不要開放所有使用者,建議限定普通使用者通過遠端連接配接。
2、使用者使用MYSQL時,發現跑group by,即使資料量隻有百萬級别,也要跑很久很久。而換到PG後,即使資料表有千萬甚至億級别,也可以秒出結果。為什麼?
PG支援更好的聚合方法,HASHAGG, GROUPAGG,同時支援更好的并行計算能力,使得PG在處理大量資料的時候,比MYSQL占優很多,與ORACLE并肩。
3、PG的SQL執行過程?
解析使用者協定包
parser sql
判斷是否為DML,DSL的請求,如果是則
rewrite query
generate path
generate plan
jit (可選)
execute plan
如果是綁定變量的請求:
bind parameter
execute prepared statement
4、如何檢視SQL的執行計劃。
對于曆史SQL,使用auto_explain插件,記錄超過指定執行時間的SQL的執行計劃,通過檢視LOG日志可以看到曆史SQL的執行計劃。
使用explain,可以檢視目前SQL的執行計劃。
5、如何在plpgsql存儲過程或函數中建立函數。
使用execute 'SQL string'動态調用的方法,可以在函數中建立函數。
6、如何修改資料庫ACL
通過資料庫pg_hba.conf配置檔案,配置資料庫通路鍊路ACL。
7、postgresql.auto.conf與postgresql.conf的差別?
postgresql.auto.conf是資料庫alter system動态修改資料庫參數的配置檔案,alter system配置的參數會寫入postgresql.auto.conf,優先級高于postgresql.conf
擴充問題
為什麼postgresql.auto.conf優先級高于?
因為先加載postgresql.conf後加載postgresql.auto.conf,後加載的覆寫了先加載的參數。
如何配置了多個重名的參數,哪個為準?
後加載的覆寫先加載的參數。
參數配置的地方,以及優先級:
《PostgreSQL 參數優先級講解》8、PostgreSQL如何防止綁定變量的執行計劃傾斜。
資料庫前5次執行計劃都是custom plan,即每一次都要generate path,generate plan,并記錄下custom plan的平均成本,以及customplan發生的次數。第五次後會生成generic plan,當有新的bind時,先使用generic plan計算新的bind 的cost,如果cost比custom plan的平均成本相差較大(代碼内寫死相差的比例),則會發起新的custom plan,并且統計到custom plan的平均COST和計數中。
如果成本相差不大,則繼續使用generic plan.
通過以上方法防止傾斜。
《PostgreSQL 11 preview - 增加強制custom plan GUC開關(plancache_mode),對付傾斜》 《PostgreSQL plan cache 源碼淺析 - 如何確定不會計劃傾斜》