mysql迁移至postgresql_PostgreSQL来自欧罗巴Patroni系列技术主题一
文章轉(zhuǎn)載自公眾號(hào):AustinDatabases
本次閱讀時(shí)長(zhǎng):
.
.
系列一:為什么選擇Patroni?2019.Pgconf.Asia中有這么一篇演講,關(guān)于PostgreSQL的高可用的問(wèn)題,其中提到常用的三種PostgreSQL的高可用方式,其中repmgr之前寫過(guò)了,當(dāng)然其實(shí)還不完善,另外一個(gè)就是我們今天提到的Patrnoi,不大想一開始就是安裝,還是從他的起源和歷史來(lái),要不使用了,還不知道他從哪里來(lái),有可能從哪里去, 也枉然用過(guò)他。一個(gè)開源的軟件,你首先的知道他的來(lái)自于哪里,要不哪天斷供了,怎么辦,patrnoi來(lái)自于大歐羅巴的德國(guó),總公司位于柏林。這是一家在歐洲知名的電商公司,主營(yíng)的業(yè)務(wù)是主營(yíng)時(shí)尚圈的事情,當(dāng)然還有表,技術(shù)員工在1700人。那這個(gè)軟件的作者是誰(shuí)Alexander和Oleksii(其實(shí)有時(shí)候真該反思反思,Mysql的MHA是日本人發(fā)明,PostgreSQL Patroni是德國(guó)人發(fā)明,當(dāng)然還有挪威人、俄羅斯人發(fā)明的一些類似的東西),并且在世界范圍使用。
為什么要使用patroni,對(duì)比目前常用的高可用的方式存在問(wèn)題
提升一個(gè)復(fù)制節(jié)點(diǎn)時(shí)無(wú)響應(yīng)的情況下,存在腦裂的可能
單一的monitor節(jié)點(diǎn)對(duì)于集群的監(jiān)控缺陷以及失敗節(jié)點(diǎn)必須被清理的問(wèn)題
多點(diǎn)監(jiān)控中的分布一致性的問(wèn)題
所以Patroni的誕生是因?yàn)檫@些問(wèn)題在其他的方式中并沒有被解決,Patroni本身并沒有在內(nèi)部來(lái)解決上述問(wèn)題,而是巧妙的使用了,大部分常用的DCS,Distributed Configuration System(DCS),例如etcd,zookeeper,consul 等來(lái)作為解決上面3個(gè)問(wèn)題的方法。
任何解決方案都有他的Pros和Cons,Patroni的Cons又是什么,例如當(dāng)某個(gè)節(jié)點(diǎn)并未和主節(jié)點(diǎn)連接的情況下,可能Patroni可能無(wú)法判斷,還是顯示從屬節(jié)點(diǎn)。另外還需要對(duì)于zookeeper或者etcd等有相關(guān)的知識(shí),設(shè)置上可能不如repmgr要簡(jiǎn)單方便。
當(dāng)然也有一些不客氣的話,對(duì)于PostgreSQL的其他的HA的方案,例如drbd,corosync+pacemaker,repmgr等方案用上了out of date的詞匯。
實(shí)際上,repmgr的變化方式已經(jīng)在某云使用了,不知道他們聽到如此的詞匯作何感想。
實(shí)際上到底Patroni有沒有一個(gè)簡(jiǎn)單的introduce。
Patroni是一個(gè)有Zalando研發(fā)的,完整由python代碼的開源產(chǎn)品,通過(guò)DCS來(lái)對(duì)PostgreSQL各個(gè)節(jié)點(diǎn)的狀態(tài)進(jìn)行判斷,在添加節(jié)點(diǎn)方面你需要通過(guò)你熟悉的手段來(lái)自行添加節(jié)點(diǎn)(repmgr在安裝中會(huì)將節(jié)點(diǎn)加入),同時(shí)還能定義類似MHA中某些節(jié)點(diǎn)一直是standby的角色,不參與mater的競(jìng)爭(zhēng),其中還能定義一些觸發(fā)行為,例如在start,stops,failover等狀態(tài)下觸發(fā)后,到底要繼續(xù)做些什么。并且也可以類似MHA的方式手動(dòng)切換主節(jié)點(diǎn)。
那么還有一個(gè)問(wèn)題值得來(lái)說(shuō),到底patroni應(yīng)該最低是幾個(gè)幾點(diǎn),這里建議是3個(gè)節(jié)點(diǎn),這和Mysql的MHA中建議的三個(gè)節(jié)點(diǎn)是一個(gè)意思,大多數(shù)原則,防止由于網(wǎng)絡(luò)等問(wèn)題,造成的一些雙數(shù)節(jié)點(diǎn)出現(xiàn)的不可預(yù)測(cè)的問(wèn)題。
另外repmgr本身是可以通過(guò)witeness的技術(shù)防止類似問(wèn)題,但起步也是最少三個(gè)節(jié)點(diǎn),但這又給了文字最初英文中,out of date中提出的單點(diǎn)monitor 于口實(shí)。所以patroni的確在某些方面要比某些高可用的方案嚴(yán)謹(jǐn)。
所以選擇patroni作為PostgreSQL的高可用的方式是有可圈可點(diǎn)。另外通過(guò)docker+K8S部署patroni的方案也是有的,參見下圖,也是目前另一種更方便的并且適合大批量部署的方式。
I Love PG關(guān)于我們
中國(guó)開源軟件推進(jìn)聯(lián)盟PostgreSQL分會(huì)(簡(jiǎn)稱:中國(guó)PG分會(huì))于2017年成立,由國(guó)內(nèi)多家PostgreSQL生態(tài)企業(yè)所共同發(fā)起,業(yè)務(wù)上接受工信部中國(guó)電子信息產(chǎn)業(yè)發(fā)展研究院指導(dǎo)。中國(guó)PG分會(huì)是一個(gè)非盈利行業(yè)協(xié)會(huì)組織。我們致力于在中國(guó)構(gòu)建PostgreSQL產(chǎn)業(yè)生態(tài),推動(dòng)PostgreSQL產(chǎn)學(xué)研用發(fā)展。
歡迎投稿
做你的舞臺(tái),show出自己的才華?。
投稿郵箱:partner@postgresqlchina.com
????????????????????——愿能安放你不羈的靈魂
往期回顧?
活動(dòng)成就
PostgresConf.CN & PGConf.Asia2020大會(huì)預(yù)告
PG ACE計(jì)劃的正式發(fā)布
三期PostgreSQL國(guó)際線上沙龍活動(dòng)的舉辦
六期PostgreSQL國(guó)內(nèi)線上沙龍活動(dòng)的舉辦
PGCM高級(jí)認(rèn)證培訓(xùn)的正式開啟
經(jīng)典文章
PostgreSQL 13.0 正式版發(fā)布通告
深度報(bào)告:開源協(xié)議那些事兒
從“非主流”到“潮流”,開源早已值得擁有
Oracle中國(guó)正在進(jìn)行新一輪裁員,傳 N+6 補(bǔ)償
PostgreSQL與MySQL版權(quán)比較
PostgreSQL與Oracle:成本、易用性和功能上的差異
使用ora2pg完成從Oracle到Postgres的遷移
精彩專輯
PostgreSQL活動(dòng)篇
總結(jié)
以上是生活随笔為你收集整理的mysql迁移至postgresql_PostgreSQL来自欧罗巴Patroni系列技术主题一的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 学云计算可以做什么工作 软件工程师很受欢
- 下一篇: 怎么利用迭代器写入mysql_range