PostgreSQL frissítsen 9

A 9.4 volt egy logikus replikáció. És ezért 9,4-9,5 bővíthető nagyon olcsón (vagy legalábbis kellene). Nos, most már frissíteni a főbb változata PostgreSQL - fájdalom. A leggyakoribb változat a következő:

  1. Meg kell teljesen eloltani a mester és húzza pg_upgrade.
  2. Vegye le az új verzió csak mester.
  3. Készítsen egy teljes biztonsági másolatot a frissített varázsló.
  4. Perenalit összes másolatai az új tartalék.

Van egy bázis mennyisége egységben terabájt, mindegyik darabját amely három gép - két mesterek és replikák. Jelentős része az olvasási kérés repül a replika. És van egy ilyen adatbázis, ahol vagyunk képesek megtapasztalni a halál csak egy replika. Ie ha mind replikák meghalni, nem egy mester meghúzza az egész írás és olvasás terhelést. És hogy egy teljes biztonsági mentést bazki pár terabájt és bővíteni, hogy legalább egy replika az éjszaka - nem könnyű feladat.

Reménysugár

Amikor voltak, hogy frissíteni kell az éjszaka szombattól vasárnap és szenvedni, Bruce Momjian küldött tapaszt a dokumentációt, amely lehetővé teszi, hogy végre, és frissíteni az összes másolatai nélkül perenalivki hát. A tapaszt végül alkalmazzák a mester, hogy van, dokumentáció 9.5 már rendelkezik a szükséges lépéseket.

Az egyetlen hátránya ennek a megoldásnak az a tény, hogy abban az időben a frissítés kell kialszik minden fürtgép (azaz az alap nem áll rendelkezésre, még olvasásra). Az ilyen korlátozás, mi is nem túl kellemes, mert úgy döntöttünk, hogy egy kicsit más.

végrehajtás

Bazok mert több tucat, hogy frissítse a kezét mindegyikük nem akar, mert írtam egy egyszerű script erre. Ebben az esetben a script nagyon unalmas - minden probléma azonnal leesik, majd gyorsan be kell fejezni a kezét.

Mivel a szkript szorosan összefonódott a mi infrastruktúra, azt közzé csak néhány darab belőle, ami a lényeg. A teljes szekvencia meglehetősen egyszerű (rakjuk az összes gép csomag 9.4 frissíti a mester, nem rsync az egyes replikák, vegye le a master):

Ez a szekvencia meghosszabbítja élettartamát a csak olvasható (a mester lehet felszállni frissítése után az első replika), de nem feleslegessé perenalivki másolatai mentést.

frissítés varázsló

Upgrade Wizard talán a legintenzívebb szakaszában:

Először a pg_upgrade --check és ha bármi gond van, akkor minden vissza a helyére. Ez az egyetlen hely, ahol ez történik. script egyszerűen esik minden más esetben.

Aztán vonszolja a konfigurációs fájlok és a master van lezárva tűzfal replikák, mert (meglepetés!) A replika 9,3 húzhatja változtatni a mester, hogy 9.4. Semmi sem jó, de nem a vég.

Fontos az a tény, hogy mivel a stop pgbouncer, hogy elsajátítsák a teljes terhelés istállót a replika, azaz klaszter lebomlik írásvédett.

frissítés replica

Frissítve replikákat előfordul egymást:

A függvény maga és a nagy nem történik semmi, de rsyns:

Az utolsó lépés az, hogy megteremtse a megfelelő recovery.conf. hogy jobbra végszóra mesterek.

A frissítés után az első replika nyitva van a terhelés, és abban a pillanatban a másik zárt és frissítik. Ez a legnehezebb szakasza a felújítás, mert a mester zárva van, a replika 9,3 zárva van, és az egyetlen olyan gép, amely arra szolgál, a terhelés - replika 9,4, amely nem rendelkezik semmilyen statisztika (sajnos pg_upgrade nem tűri Statisztika).

A frissítés után az összes replikák varázsló betölteni.

Ezen a ponton, mindhárom gépek állnak szolgálni terhelést. Tánc, öröm.

Több tucat szilánkok frissítettük a 9.3.6 a 9.4.1 azzal, hogy csak olvasható minden kevesebb, mint három perc alatt. Szilánkok egy pár felmászott speciális effektusok, forgatókönyvet, és esett, mert szükség volt, hogy frissítse a kezükben, de egyértelmű lépéssorozatot és intézkedések kezében lejött ugyanezt, mi van írva a forgatókönyvben. Idővel azonban, természetesen, volt egy kicsit, körülbelül 7 perc alatt a darabban.

És a desszert azt mondanám, hogy már rálépett egy ritka hiba. folt a döntést, amely Tom Lane navayal 38 percen (!) létrehozása óta a hibajelentést. Ez nagyon cool.

Kapcsolódó cikkek