Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada

Waxaa sii kordhaya, macaamiishu waxay helayaan codsiyada soo socda: "Waxaan rabnaa sida Amazon RDS, laakiin ka jaban"; "Waxaan rabnaa sida RDS, laakiin meel kasta, kaabayaal kasta." Si loo hirgeliyo xalkan la maareeyay ee Kubernetes, waxaanu eegnay xaaladda hadda jirta ee hawl-wadeennada ugu caansan ee PostgreSQL (Stolon, hawlwadeennada Crunchy Data iyo Zalando) waxaanan samaynay doorashadayada.

Maqaalkani waa waayo-aragnimada aynu ka kasbannay aragti ahaan (dib u eegida xalalka) iyo dhinaca la taaban karo (maxaa la doortay iyo waxa ka soo baxay). Laakiin marka hore, aan go'aamino waxa shuruudaha guud ay yihiin beddelka suurtagalka ah ee RDS...

Waa maxay RDS

Marka ay dadku ka hadlaan RDS, waayo-aragnimadayada, waxay ula jeedaan adeeg DBMS la maareeyay oo:

  1. fududahay in la habeeyo;
  2. wuxuu awood u leeyahay inuu la shaqeeyo sawir-qaadista oo uu ka soo kabsado (gaar ahaan taageerada PITR);
  3. wuxuu kuu ogolaanayaa inaad abuurto sayid-addoon topologies;
  4. wuxuu leeyahay liis qani ah oo kordhin;
  5. waxay bixisaa hanti-dhawrka iyo maamulka isticmaalaha/helitaanka.

Guud ahaan, hababka loo maro hirgelinta hawsha gacanta lagu hayo aad bay u kala duwanaan karaan, laakiin dariiqa maangal ah ee shuruudaysani inooma dhowa. (Asxaabtii ka socotay 2GIS waxay gaadheen natiijo la mid ah natiijada isku daygiisa samee "qalab si degdeg ah loo geeyo koox-fashilmayn ku salaysan Postgres.")

Hawl-wadeenadu waa hab caadi ah oo lagu xaliyo mashaakil la mid ah nidaamka deegaanka Kubernetes. Agaasimaha farsamada ee "Flanta" ayaa mar hore si faahfaahsan uga hadlay iyaga oo ku saabsan xog-ururinta laga bilaabay gudaha Kubernetes. distolgudaha mid ka mid ah warbixintiisa.

NB: Si aad si dhakhso ah u abuurto hawl-wadeenno fudud, waxaan kugula talineynaa inaad fiiro gaar ah u yeelato utility Source Source qolof-shaqaale. Isticmaalka, waxaad samayn kartaa tan adigoon aqoon u lahayn Go, laakiin siyaabo aad u yaqaan maamulayaasha nidaamka: Bash, Python, iwm.

Waxaa jira dhowr hawlwadeeno K8s oo caan ah oo loogu talagalay PostgreSQL:

  • Stolon;
  • Xogta Crunchy PostgreSQL Operator;
  • Hawl-wadeenka Zalando Postgres.

Aynu si qoto dheer u eegno iyaga.

Xulashada hawl wadeenada

Marka lagu daro astaamaha muhiimka ah ee kor lagu soo sheegay, annagu - sida Kubernetes injineerada hawlaha kaabayaasha - sidoo kale waxaan ka filnay kuwan soo socda hawlwadeenada:

  • keenista Git iyo la Khayraadka gaarka ah;
  • taageerada ka-hortagga affinity pod;
  • ku rakibida xidhidhnimada noodhka ama dooraha noodhka;
  • rakibidda dulqaadka;
  • helitaanka awoodaha hagaajinta;
  • tignoolajiyada la fahmi karo iyo xitaa amarrada.

Adigoon tafaasiil ka bixin mid kasta oo ka mid ah qodobbada (weydii faallooyinka haddii aad weli wax su'aalo ah ka qabto iyaga ka dib markaad akhrido maqaalka oo dhan), waxaan si guud u xusi doonaa in cabbirradan loo baahan yahay si loo si sax ah u qeexo takhasuska qanjidhada kooxda si loo ogaado u dalbo codsiyo gaar ah. Sidan waxaan ku gaari karnaa dheelitirka ugu fiican marka la eego waxqabadka iyo qiimaha.

Hadda aan u gudubno hawl-wadeennada PostgreSQL laftooda.

1. Stolon

Stolon Shirkadda Sorint.lab ee laga leeyahay dalka Talyaaniga warbixin hore loo sheegay waxaa loo tixgeliyey nooc ka mid ah halbeegga ka mid ah hawl-wadeennada DBMS. Kani waa mashruuc da' weyn: siideynteedii ugu horeysay ee dadweynaha waxay dhacday Noofambar 2015(!), Kaydka GitHub wuxuu ku faanaa ku dhawaad ​​​​xiddigle 3000 iyo 40+ wax ku darsaday.

Runtii, Stolon waa tusaale aad u fiican ee qaab dhismeedka fikirka leh:

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada
Qalabka hawlwadeenkan waxaa si faahfaahsan looga heli karaa warbixinta ama dukumentiyada mashruuca. Guud ahaan, waxaa ku filan in la sheego in ay samayn karto wax kasta oo lagu sharraxay: failureover, proxies for transparent client access, backups ... Waxaa intaa dheer, proxies waxay bixiyaan helitaanka hal adeeg oo dhamaadka ah - si ka duwan labada xal ee kale ee hoos looga hadlay (mid kastaa wuxuu leeyahay laba adeeg saldhiga gelitaanka).

Si kastaba ha ahaatee, Stolon ma jiro Khayraad gaar ah, taas oo ah sababta aan loo geyn karin si sahlan oo degdeg ah - "sida keega kulul" - si loo abuuro xaaladaha DBMS ee Kubernetes. Maareynta waxaa lagu fuliyaa utility stolonctl, keenista waxaa lagu sameeyaa jaantuska Helm, iyo kuwa gaarka ah waxaa lagu qeexay oo lagu qeexay ConfigMap.

Dhinaca kale, waxa soo baxday in hawlwadeenku aanu ahayn hawlwadeen (ka dib oo dhan, ma isticmaalo CRD). Laakiin dhanka kale, waa nidaam dabacsan oo kuu oggolaanaya inaad u habayn karto ilaha K8s sida aad u aragto inay ku habboon tahay.

Si aan u soo koobno, anaga shaqsi ahaan uma muuqan mid ku fiicneyd in la sameeyo shax gaar ah database kasta. Sidaa darteed, waxaan bilownay inaan raadino waxyaabo kale.

2. Hawlwadeenka Xogta Crunchy PostgreSQL

Hawlwadeen ka socda Xogta Crunchy, bilawgii da'da yar ee Maraykanka, wuxuu u muuqday beddel macquul ah. Taariikhdeeda dadweynuhu waxay ka bilaabantaa siidaynta ugu horraysa ee Maarso 2017, tan iyo markaas kaydka GitHub wuxuu helay wax ka yar 1300 xiddigood iyo 50+ wax ku darsaday. Siideynta ugu dambeysay ee Sebtember waxaa lagu tijaabiyay inuu la shaqeeyo Kubernetes 1.15-1.18, OpenShift 3.11+ iyo 4.4+, GKE iyo VMware Enterprise PKS 1.3+.

Naqshadeynta Crunchy Data PostgreSQL Operator sidoo kale waxay buuxisaa shuruudaha la sheegay:

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada

Maareynta waxay ku dhacdaa utility pgo, si kastaba ha ahaatee, waxay iyaduna soo saartaa Khayraadka Gaarka ah ee Kubernetes. Sidaa darteed, hawlwadeenku wuxuu naga farxiyay isticmaalayaasha suurtagalka ah:

  • waxaa jira xakameyn iyada oo loo marayo CRD;
  • maaraynta isticmaale habboon (sidoo kale CRD);
  • dhexgalka qaybaha kale Crunchy Data Container Suite - sawirro gaar ah oo sawirro weel ah oo loogu talagalay PostgreSQL iyo yutiilitiyada la shaqayntiisa (ay ku jiraan pgBackRest, pgAudit, kordhinta wax ku biirinta, iwm.).

Si kastaba ha ahaatee, isku dayga lagu bilaabay isticmaalka hawlwadeenka xogta Crunchy waxay muujisay dhibaatooyin dhowr ah:

  • Ma jirin wax suurtagal ah oo loo dulqaadan karo - kaliya nodeSelector ayaa la bixiyay.
  • Caleemaha la abuuray waxay qayb ka ahaayeen Hawlgelinta, inkastoo xaqiiqda ah inaan geynay codsi qeexan. Si ka duwan StatefulSets, Gelintu ma abuuri karto saxanadaha.

Dhibaatada ugu dambeysa waxay keenaysaa waqtiyo qosol leh: jawiga tijaabada waxaan ku guuleysanay inaan ku wadno 3 nuqul oo hal disk ah kaydinta deegaanka, taasoo keentay in hawlwadeenku uu sheego in 3 nuqul ay shaqaynayeen (inkasta oo aanay ahayn).

Muuqaal kale oo ka mid ah hawlwadeenkan ayaa ah is-dhexgalka diyaarsan oo leh nidaamyo gargaar oo kala duwan. Tusaale ahaan, way fududahay in la rakibo pgAdmin iyo pgBounce, iyo gudaha dukumentiyo Grafana iyo Prometheus oo horay loo habeeyey ayaa la tixgeliyaa. Dhawaanahan sii daayo 4.5.0-beta1 La qabsiga mashruuca oo la hagaajiyay ayaa si gaar ah loo xusay pgMonitor, taas oo ay ugu mahadcelinayso hawlwadeenku si cad u muujinayo cabbirada PgSQL ee ka baxsan sanduuqa.

Si kastaba ha ahaatee, doorashada la yaabka leh ee Kubernetes-ku-abuuray kheyraadka ayaa noo horseeday baahida loo qabo in la helo xal kale.

3. Hawlwadeenka Zalando Postgres

Waxaan ognahay alaabta Zalando muddo dheer: waxaan khibrad u leenahay isticmaalka Zalenium iyo, dabcan, waxaan isku daynay Batrooni waa xalkooda caanka ah ee HA ee PostgreSQL. Ku saabsan habka shirkadu u abuurto Hawlwadeenka Postgres Mid ka mid ah qorayaasha, Alexey Klyukin, ayaa ku yiri hawada Talaado-Talaado #5, waana ka helnay.

Tani waa xalka ugu da'da yar ee looga hadlay maqaalka: sii deynta ugu horeysay waxay dhacday Agoosto 2018. Si kastaba ha noqotee, inkasta oo tirada yar ee siidaynta rasmiga ah, mashruucu wuxuu soo maray waddo dheer, mar horeba wuxuu ka sarreeyaa caannimada xalka Crunchy Data oo leh 1300+ xiddigood oo ku yaal GitHub iyo tirada ugu badan ee wax ku biirinta (70+).

"Xoodhka hoostiisa" hawlwadeenkani wuxuu adeegsadaa xalal waqti-lagu tijaabiyay:

Sidan waa sida naqshadeeyaha hawlwadeenka ee Zalando loo soo bandhigay:

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada

Hawl-wadeenka si buuxda ayaa loo maareeyaa iyada oo loo marayo Khayraadka Gaarka ah, si toos ah ayuu StatefulSet ka sameeyaa weelasha, kaas oo markaa lagu beddeli karo iyada oo lagu darayo baabuur-geesooyin kala duwan. Waxaas oo dhami waa faa'iido la taaban karo marka la barbar dhigo hawlwadeenka xogta Crunchy.

Tan iyo markii aan ka dooranay xalka Zalando oo ka mid ah fursadaha 3 ee la tixgelinayo, sharraxaad dheeraad ah oo ku saabsan awoodeeda ayaa lagu soo bandhigi doonaa hoos, isla markiiba oo ay weheliso dhaqanka codsiga.

Ku tababaro hawlwadeenka Postgres ee Zalando

Hawlgelinta hawl wadeenadu aad bay u fudud tahay: kaliya ka soo deji sii-deynta hadda GitHub oo ka dalbo faylasha YAML tusaha ayaa muujinaya. Haddii kale, waxaad sidoo kale isticmaali kartaa operatorhub.

Ka dib markii la rakibo, waa in aad ka welwelsan tahay dejinta kaydinta logyada iyo kaydinta. Tan waxaa lagu sameeyaa ConfigMap postgres-operator meesha magaca meesha aad ku rakibtay hawlwadeenka. Marka bakhaarrada la habeeyo, waxaad geyn kartaa kooxdaada ugu horreysa ee PostgreSQL.

Tusaale ahaan, geynteena caadiga ah waxay u egtahay sidan:

apiVersion: acid.zalan.do/v1
kind: postgresql
metadata:
 name: staging-db
spec:
 numberOfInstances: 3
 patroni:
   synchronous_mode: true
 postgresql:
   version: "12"
 resources:
   limits:
     cpu: 100m
     memory: 1Gi
   requests:
     cpu: 100m
     memory: 1Gi
 sidecars:
 - env:
   - name: DATA_SOURCE_URI
     value: 127.0.0.1:5432
   - name: DATA_SOURCE_PASS
     valueFrom:
       secretKeyRef:
         key: password
         name: postgres.staging-db.credentials
   - name: DATA_SOURCE_USER
     value: postgres
   image: wrouesnel/postgres_exporter
   name: prometheus-exporter
   resources:
     limits:
       cpu: 500m
       memory: 100Mi
     requests:
       cpu: 100m
       memory: 100Mi
 teamId: staging
 volume:
   size: 2Gi

Muujintani waxa ay gaynaysaa koox ka kooban 3 xaaladood oo leh gaadhi dhinac ah oo qaabaysan postgres_dhoofin, kaas oo aan ka soo qaadanno cabbirada codsiga. Sida aad arki karto, wax walba waa mid aad u fudud, iyo haddii aad rabto, waxaad samayn kartaa tiro aan xad lahayn oo macno ahaan.

Waxaa mudan in fiiro gaar ah loo yeesho maamulka webka - postgres-operator-ui. Waxay la socotaa hawlwadeenka waxayna kuu ogolaanaysaa inaad abuurto oo aad tirtirto rucubyada, iyo sidoo kale inaad la shaqeyso kaydinta uu sameeyay hawlwadeenku.

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada
Liiska kooxaha PostgreSQL

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada
Maamulka kaabta

Muuqaal kale oo xiiso leh ayaa ah taageerada Kooxaha API. Habkani si toos ah ayuu u abuuraa doorarka PostgreSQL, oo ku salaysan liiska ka soo baxay ee isticmaalayaasha. API wuxuu markaa kuu ogolaanayaa inaad soo celiso liiska isticmaalayaasha kuwaas oo doorarka si toos ah loo abuuray.

Dhibaatooyinka iyo xalkooda

Si kastaba ha ahaatee, isticmaalka hawlwadeenku wuxuu si dhakhso ah u muujiyay dhowr cilladood oo muhiim ah:

  1. la'aanta taageerada nodeSelector;
  2. awood la'aanta in la joojiyo kaydinta;
  3. Markaad isticmaalayso shaqada abuurista xogta, mudnaanta hore ma muuqato;
  4. Mararka qaarkood dukumeenti waa la waayayaa ama waa dhacay.

Nasiib wanaag, qaar badan oo iyaga ka mid ah waa la xallin karaa. Aan ka bilowno dhamaadka - dhibaatooyinka leh dukumeenti.

Waxay u badan tahay, inaad la kulmi doonto xaqiiqda ah inaysan mar walba caddayn sida loo diiwaan geliyo kaydka iyo sida loogu xidho baaldiga kaydinta ee Operator UI. Dukumeentigu wuxuu ka hadlayaa tan marka la dhaafo, laakiin sharaxaadda dhabta ah ayaa ku jirta PR:

  1. u baahan in la sameeyo sir;
  2. u gudbi hawlwadeenka sidii halbeeg ahaan pod_environment_secret_name gudaha CRD oo leh goobaha hawlwadeenka ama ConfigMap (waxay kuxirantahay sida aad u go'aansato inaad ku rakibto hawlwadeenka).

Si kastaba ha ahaatee, sida ay soo baxday, tani hadda waa wax aan macquul ahayn. Taasi waa sababta aan u ururinay noocaaga hawlwadeenka oo leh qaar ka mid ah horumarinta dhinac saddexaad oo dheeraad ah. Wixii macluumaad dheeraad ah oo ku saabsan, eeg hoos.

Haddii aad u gudbiso halbeegyada kaydinta hawlwadeenka, kuwaas oo kala ah - wal_s3_bucket iyo furayaasha gelitaanka AWS S3, ka dibna waa wax walba ayaa kaydin doonaMa aha oo kaliya saldhigyada wax soo saarka, laakiin sidoo kale diyaarinta. Tani naguma ay habboonayn.

Sharaxaadda xuduudaha Spilo, oo ah duubka aasaasiga ah ee Docker ee PgSQL marka la isticmaalayo hawlwadeenka, waxay soo baxday: waxaad gudbin kartaa halbeeg WAL_S3_BUCKET maran, oo meesha ka saaraya kaydka Waxaa intaa dheer, farxad weyn, ayaan helay diyaarsan PR, kaas oo aanu isla markiiba ku aqbalnay fargeeto. Hadda waxaad u baahan tahay oo kaliya inaad ku darto enableWALArchiving: false ilaa agabka kutlada PostgreSQL

Haa, waxaa jirtay fursad ah in si ka duwan loo sameeyo iyada oo la adeegsanayo 2 hawlwadeen: mid loogu talagalay diyaarinta (aan lahayn kayd), iyo tan labaad ee wax soo saarka. Laakiin waxaan awoodnay inaan mid ku samayno.

Hagaag, waxaan baranay sida loo wareejiyo gelitaanka xogta S3 iyo kaydintu waxay bilaabeen inay galaan kaydinta. Sida loo sameeyo bogag kayd ah oo ku shaqeeya Operator UI?

Dulmar kooban oo ku saabsan Bayaanada PostgreSQL ee Kubernetes, Dookhyadayada iyo Khibradayada

Waxaad u baahan doontaa inaad ku darto 3 doorsoomayaasha UI Operator:

  • SPILO_S3_BACKUP_BUCKET
  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

Taas ka dib, maaraynta kaydinta ayaa diyaar noqon doonta, taas oo kiiskeena ay fududeyn doonto shaqada iyada oo la hagaajinayo, taas oo noo ogolaanaysa inaan keeno xaleef wax soo saarka halkaas oo aan lahayn qoraallo dheeraad ah.

Faa'iidada kale waxay ahayd la shaqaynta Kooxaha API iyo fursado ku filan abuurista xog-ururin iyo doorar iyadoo la isticmaalayo qalabka hawlwadeenka. Si kastaba ha ahaatee, la abuuray doorarka ma lahayn wax xuquuq ah marka loo eego. Sidaa darteed, isticmaale leh xuquuqda akhrinta ma akhrin karo jadwal cusub.

Waa maxay sababtu? Inkastoo xaqiiqda ah in code waa lagama maarmaan GRANT, mar walba lama isticmaalo. Waxaa jira 2 hab: syncPreparedDatabases ΠΈ syncDatabases. The syncPreparedDatabases - inkastoo xaqiiqda ah in qaybta preparedDatabases waa shuruud baa jirta defaultRoles ΠΈ defaultUsers si loo abuuro door, xuquuqaha caadiga ah lama dabaqo. Waxaan ku guda jirnaa diyaarinta balastar si xuquuqahan si toos ah loogu dabaqo.

Iyo qodobka ugu dambeeya ee hagaajinta innaga khuseeya - balastar, Kaas oo ku daraya Xidhiidhka Node ee la abuuray StatefulSet. Macaamiishayadu waxay inta badan door bidaan inay dhimaan kharashaadka iyagoo isticmaalaya tusaalooyin boos ah, waxayna cadahay inaysan u qalmin martigelinta adeegyada xogta. Arrintaan waxaa lagu xallin karaa dulqaad, laakiin joogitaanka Node Affinity wuxuu siinayaa kalsooni weyn.

Maxaa dhacay?

Iyada oo ku saleysan natiijooyinka xallinta dhibaatooyinka kor ku xusan, waxaan fargeeto u galnay Operator Postgres oo ka yimid Zalando kaydkaaga, halkaasoo lagu soo ururiyo balastar faa'iido leh. Iyo ku habboonaanta, waxaan sidoo kale soo aruurinnay Sawirka Docker.

Liiska PR-yada lagu aqbalay fargeetada:

Way fiicnaan doontaa haddii bulshadu taageerto PR-yadan si ay ula socdaan nooca xiga ee hawlwadeenka (1.6).

Gunno! Sheekada guusha wax soo saarka socdaalka

Haddii aad isticmaasho Patroni, wax-soo-saarka tooska ah ayaa loo haajirin karaa hawl-wadeenka iyada oo wakhtiga yar ee hoos u dhaco.

Spilo kuu ogolaanaya in aad si ay u abuuraan kooxaha heegan via S3 kaydinta la Wal-E, marka PgSQL binary log marka hore lagu kaydiyo S3 ka dibna soo saaray by nuqul ka. Laakiin maxaa la sameeyaa haddii aad leedahay ma uu Wal-E ku isticmaalo kaabayaasha hore? Xalka dhibaatadan waa horeba ayaa la soo jeediyay xuddunta.

PostgreSQL ku celcelin macquul ah ayaa u yimaada samatabbixinta. Si kastaba ha ahaatee, ma aadi doono faahfaahin ku saabsan sida loo abuuro daabacaadyo iyo is-diiwaangelin, sababtoo ah ... qorshahayagu wuxuu ahaa fiasco.

Xaqiiqdu waxay tahay in xog-ururintu ay lahayd dhowr miis oo la raray oo malaayiin saf ah, kuwaas oo, sidoo kale, si joogto ah loo buuxiyey oo la tirtiray. Isdiiwaangelinta fudud с copy_dataMarka nuqulka cusub uu koobiyo dhammaan waxa ku jira sayidkiisa, si fudud ulama socon karto sayidku. Koobiyaynta nuxurka waxay shaqeysay hal usbuuc, laakiin waligeed lama qabsan sayidkii. Ugu dambeyntii, waxay iga caawisay inaan xalliyo dhibaatada maqaal asxaabta ka socota Avito: waxaad ku wareejin kartaa xogta adigoo isticmaalaya pg_dump. Waxaan qeexi doonaa noocayada (wax yar la beddelay) ee algoorithm.

Fikradda ayaa ah in aad samayn karto rukhsad naafada ah oo ku xidhan boos celin gaar ah, ka dibna aad saxdo lambarka wax kala iibsiga. Waxaa jiray nuqullo loo heli karo shaqada wax soo saarka. Tani waa muhiim sababtoo ah nuqulku wuxuu gacan ka geysan doonaa abuurista qashin-qubka joogtada ah oo sii wadi doona helitaanka isbeddellada sayidyada.

Amarada soo socda ee qeexaya habka socdaalka ayaa isticmaali doona tilmaamaha soo socda ee martida loo yahay:

  1. Master - server isha;
  2. nuqul1 - nuqulka qulqulka ee wax soo saarkii hore;
  3. nuqul2 - nuqul cusub oo macquul ah.

Qorshaha socdaalka

1. Samee rukunka sayidkaaga dhammaan miisaska qorshaha public saldhig dbname:

psql -h master -d dbname -c "CREATE PUBLICATION dbname FOR ALL TABLES;"

2. Ku samee booska ku celcelinta sayidkaaga:

psql -h master -c "select pg_create_logical_replication_slot('repl', 'pgoutput');"

3. Jooji ku celcelinta nuqulkii hore:

psql -h replica1 -c "select pg_wal_replay_pause();"

4. Ka hel nambarka wax kala iibsiga sayidka:

psql -h master -c "select replay_lsn from pg_stat_replication where client_addr = 'replica1';"

5. Ka saar qashinka nuqulkii hore. Waxaan tan ku sameyn doonaa dhowr qaybood, kuwaas oo gacan ka geysan doona dedejinta habka:

pg_dump -h replica1 --no-publications --no-subscriptions -O -C -F d -j 8 -f dump/ dbname

6. U soo rar qashinka serferka cusub:

pg_restore -h replica2 -F d -j 8 -d dbname dump/

7. Kadib soo dejinta qashinka, waxaad bilaabi kartaa ku celcelinta nuqulka qulqulka:

psql -h replica1 -c "select pg_wal_replay_resume();"

7. Aan ku abuurno rukunsad nuqul cusub oo macquul ah:

psql -h replica2 -c "create subscription oldprod connection 'host=replica1 port=5432 user=postgres password=secret dbname=dbname' publication dbname with (enabled = false, create_slot = false, copy_data = false, slot_name='repl');"

8. Aan helno oid isdiiwaangelinta:

psql -h replica2 -d dbname -c "select oid, * from pg_subscription;"

9. Aynu nidhaahno waa la helay oid=1000. Aynu ku dabaqno lambarka wax kala iibsiga ee is-diiwaangelinta:

psql -h replica2 -d dbname -c "select pg_replication_origin_advance('pg_1000', 'AA/AAAAAAAA');"

10. Aan bilowno ku celcelinta:

psql -h replica2 -d dbname -c "alter subscription oldprod enable;"

11. Hubi heerka isdiiwaangelinta, ku celcelinta waa inay shaqeysaa:

psql -h replica2 -d dbname -c "select * from pg_replication_origin_status;"
psql -h master -d dbname -c "select slot_name, restart_lsn, confirmed_flush_lsn from pg_replication_slots;"

12. Marka la bilaabo ku celcelintu ka dib oo xogta macluumaadka la is waafajiyo, waad beddeli kartaa.

13. Ka dib markaad joojiso ku celcelinta, waxaad u baahan tahay inaad saxdo taxanaha. Tani si fiican ayaa loo sharraxay maqaalka wiki.postgresql.org.

Waad ku mahadsan tahay qorshahan, wareejintu waxay ku dhacday dib u dhacyo yar.

gunaanad

Hawl-wadeennada Kubernetes waxay kuu oggolaanayaan inaad fududayso ficillada kala duwan adoo hoos u dhigaya abuurista ilaha K8s. Si kastaba ha noqotee, ka dib markii ay ku guuleysteen automation cajiib ah iyaga oo kaashanaya, waxaa habboon in la xasuusto in ay sidoo kale keeni karto tiro ka mid ah nuances lama filaan ah, markaa dooro hawlwadeennadaada si caqli leh.

Ka dib markii aan tixgelinnay saddexda hawl wadeen ee Kubernetes ee ugu caansan PostgreSQL, waxaan ka doorannay mashruuca Zalando. Waxaana ku qasbanaaday inaan ka gudubno dhibaatooyin gaar ah, laakiin natiijadu waxay ahayd mid aad loogu farxo, marka waxaan qorsheyneynaa inaan khibradan ku ballaarino qaar ka mid ah rakibaadaha PgSQL. Haddii aad khibrad u leedahay isticmaalka xalalka la midka ah, waxaan ku farxi doonaa inaan aragno faahfaahinta faallooyinka!

PS

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment