ПредишенСледващото

В 9.4 има логическа репликация. И затова от 9.4-9.5 могат да бъдат модернизирани много евтино (или поне би трябвало да бъде). Е, сега се актуализира голяма версия на PostgreSQL - болка. В най-често срещаният вариант е, както следва:

  1. Необходимо е да се гасят напълно капитанът и издърпайте pg_upgrade.
  2. Свалете с новата версия само майстор.
  3. Направете пълно резервно копие на актуализирания съветника.
  4. Perenalit всички копия на новата архива.

Имаме база обем в дялове на терабайта, всяко парченце, което се състои от три машини - двама господари и реплики. Значителна част от заявката за четене лети в репликата. И има такава база данни, в която ние сме в състояние да преживеят смъртта на само една реплика. Т.е. ако двете копия, за да умре, а не един майстор дърпа целия си писане и четене натоварване. И да се направи пълно копие на bazki в няколко терабайта и да го разшири до най-малко една реплика на нощта - не е лесна задача.

Лъч на надежда

Когато бяхме на път да бъде актуализирана през нощта от събота до неделя и страдат, Брус Момиджан изпрати кръпка към документацията, която ви позволява да изпълнявате и ъпгрейд всички копия без perenalivki от резервно копие. Пачът е най-накрая се прилага на капитана, което означава, документация за 9.5 вече има необходимите стъпки.

Единственият недостатък на това решение е фактът, че по време на актуализацията трябва да се погасява на касетъчните машини (т.е. на базата не е на разположение, дори и за четене). Такова ограничение, ние също не са много приятни, защото решихме да направим малко по-различно.

изпълнение

Bazok защото имаме няколко дузини, за да актуализирате ръце на всеки един от тях не му попречи да, защото аз написах един прост скрипт, за да направите това. В този случай, сценарият е много тъпа - за всеки проблем, той веднага пада и тогава ще трябва да завърши ръцете си.

Тъй като сценарият е тясно свърза с нашата инфраструктура, да публикувам само няколко парчета от него, отразяващи същността. Общата последователност е съвсем проста (ние поставяме на всички машини пакети 9.4, актуализирате главното, направете Rsync за всяка една от репликите, излитане капитанът):

Тази последователност се простира на времето за живот в само за четене (капитанът може да излети след обновяване на първата реплика), но не премахва необходимостта perenalivki копия на резервни копия.

надграждане на съветника

Подобрете Wizard е може би най-интензивния етап:

Първа на pg_upgrade --check и ако има някакви проблеми, а след това всичко е обратно на място. Това е единственото място, където това се случва. скрипт просто попада във всички останали случаи.

След това се проточи нашите конфигурационни файлове и капитанът е затворен от защитна стена реплики, защото (изненада!) A реплика с 9.3 да плъзнете, за да промените капитанът на 9.4. Нищо добро не е, обаче, че не е цел.

Важен е фактът, че след спиране pgbouncer да овладеят целия товар се е проляла на репликата, т.е. клъстер разгражда в само за четене.

актуализация реплика

Актуализация на реплики се случва последователно:

В самата като цяло функцията не е направил нищо, но rsyns:

Последната стъпка е да се създаде правилната recovery.conf. да се превърне точно на щеката господари.

След оборудването, първата реплика да се отвори, за да се зареди, и в този момент другият е затворен и се актуализира. Това е най-трудният етап от обновяването, защото капитанът е затворен, реплика с 9.3 затворена и единствената машина, която служи на товара - реплика с 9.4, което не разполага с никакви статистически данни (за съжаление, не се толерира pg_upgrade Статистика).

След оборудването, всички магьосник реплики отваря, за да се зареди.

В този момент, и трите машини са на разположение, за да служи за зареждане. Танци, радост.

Няколко десетки парчета сме актуализирани, за да 9.3.6 до 9.4.1 с е само за четене, всеки по-малко от три минути. Късчета по един чифт изкачи специални ефекти, сценарий и са паднали, тъй като е необходимо да се актуализира ръцете си, но ясна последователност от стъпки и действия ръце слезе да прави същото, това, което е написано в сценария. Време, обаче, е, разбира се, отне малко повече, около 7 минути на парчето.

И за десерт бих казал, че сме стъпили на рядък бъг. уреждам с решението на които Том Лейн navayal в продължение на 38 минути (!) от създаването на доклад за грешка. Това е много готино.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!