Sobes.tech
Middle+

Patroni кластерінде PostgreSQL-ды негізгі жаңартуды қалай жүргізуге болады?

sobes.tech AI

AI-дан жауап

Patroni кластерінде PostgreSQL-дің негізгі жаңартуы мұқият тәсілді талап етеді, себебі кластерді тоқтатпай тікелей нұсқасын жаңарту мүмкін емес. Әдетте процесс келесі қадамдарды қамтиды:

  1. Дайындық:

    • Мәліметтердің толық сақтық көшірмесін жасаңыз.
    • Жаңа PostgreSQL бинарлық файлдарына қол жеткізуіңіз бар екеніне көз жеткізіңіз.
  2. Репликаларды жаңарту:

    • Репликаларды бір-бірлеп тоқтатыңыз.
    • Әрбір репликада PostgreSQL-ді жаңартыңыз (жаңа нұсқасын орнатыңыз).
    • Жаңа нұсқамен репликаны іске қосыңыз, pg_upgrade пайдаланып немесе қажет болса сақтық көшірмесінен қалпына келтіріңіз.
    • Репликаны қайтадан Patroni кластеріне қосыңыз.
  3. Мастерді жаңарту:

    • Мастерді жаңартылған репликаның біріне ауыстырыңыз (failover), осылайша мастер жаңа нұсқада болады.
    • Ескі мастерді тоқтатыңыз.
    • Ескі мастерде PostgreSQL-ді жаңартыңыз.
    • Оны жаңа нұсқадағы реплика ретінде іске қосыңыз.
  4. Тексеру:

    • Барлық түйіндердің дұрыс жұмыс істеп тұрғанына және синхрондалғанына көз жеткізіңіз.

Маңызды: Patroni автоматты түрде негізгі жаңартуды қолдамайды, сондықтан процесс қолмен араласуды және мұқият тестілеуді талап етеді.

pg_upgrade көмегімен бір түйінде жаңарту командасының мысалы:

pg_ctl stop -D /var/lib/postgresql/data
pg_upgrade -b /usr/lib/postgresql/old_version/bin -B /usr/lib/postgresql/new_version/bin -d /var/lib/postgresql/data_old -D /var/lib/postgresql/data_new
pg_ctl start -D /var/lib/postgresql/data_new

Жаңартудан кейін Patroni конфигурациясын жаңартыңыз, егер жолдар немесе нұсқалар өзгерсе.