Middle+
Patroni кластерінде PostgreSQL-ды негізгі жаңартуды қалай жүргізуге болады?
sobes.tech AI
AI-дан жауап
Patroni кластерінде PostgreSQL-дің негізгі жаңартуы мұқият тәсілді талап етеді, себебі кластерді тоқтатпай тікелей нұсқасын жаңарту мүмкін емес. Әдетте процесс келесі қадамдарды қамтиды:
-
Дайындық:
- Мәліметтердің толық сақтық көшірмесін жасаңыз.
- Жаңа PostgreSQL бинарлық файлдарына қол жеткізуіңіз бар екеніне көз жеткізіңіз.
-
Репликаларды жаңарту:
- Репликаларды бір-бірлеп тоқтатыңыз.
- Әрбір репликада PostgreSQL-ді жаңартыңыз (жаңа нұсқасын орнатыңыз).
- Жаңа нұсқамен репликаны іске қосыңыз,
pg_upgradeпайдаланып немесе қажет болса сақтық көшірмесінен қалпына келтіріңіз. - Репликаны қайтадан Patroni кластеріне қосыңыз.
-
Мастерді жаңарту:
- Мастерді жаңартылған репликаның біріне ауыстырыңыз (failover), осылайша мастер жаңа нұсқада болады.
- Ескі мастерді тоқтатыңыз.
- Ескі мастерде PostgreSQL-ді жаңартыңыз.
- Оны жаңа нұсқадағы реплика ретінде іске қосыңыз.
-
Тексеру:
- Барлық түйіндердің дұрыс жұмыс істеп тұрғанына және синхрондалғанына көз жеткізіңіз.
Маңызды: 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 конфигурациясын жаңартыңыз, егер жолдар немесе нұсқалар өзгерсе.