PostgreSQL 12’den PostgreSQL 13′ e Yükseltmek

Adım 1: Ubuntu Sistem Update

Çalışmalarımız sorunsuz çalışması için öncelikle Ubuntu sistemimizi update ve upgrade işlemi yapıyoruz.

# sudo apt update && sudo apt -y full-upgrade

Sistemlerimizi güncelledikten sonra, yeni kernel de çalışması için yeniden başlatıyoruz.

# sudo reboot

Adım 2: Ubuntu’ ya PostgreSQL 13 repository Ekleme

Paketleri yeniden güncelliyoruz.

# sudo apt update

Sistemlerimizi güncelleyip yeniden başlattığımıza göre PostgreSQL’ in reposundan çekmemize gerekli olacak paketleri APT’ ye ekliyoruz.

# sudo apt install curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates

Repomuza GPG key ekliyoruz.

# curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg

Eklediğimiz depolar postgresql-client, postgresql, libpq-dev, postgresql-server-dev, pgadmin packages paketleri de içerir.

# echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee  /etc/apt/sources.list.d/pgdg.list

Adım 3: Ubuntu’ ya PostgreSQL 13 Kurulumu

Paketleri yeniden güncelleyip PostgreSQL 13’ ü kuralım

# sudo apt-get update

# sudo apt-get install postgresql-13 postgresql-server-dev-13

Adım 4: Konfigürasyon Dosyaların Farkları Kontrol Etme

PostgreSQL12 ve PostgreSQL13 konfigürasyon dosyaların farkları kontrol edilir.

# diff /etc/postgresql/12/main/postgresql.conf /etc/postgresql/13/main/postgresql.conf

# diff /etc/postgresql/12/main/pg_hba.conf /etc/postgresql/13/main/pg_hba.conf

Adım 5: PostgreSQL Cluster arası Taşıması

Öncelikle PostgreSQL servisi durduruyoruz ve postgres kullanıcına geçiş sağlıyoruz.

# sudo systemctl stop postgresql.service

# sudo su – postgres

PostgreSQL cluster “—check” komutuyla kontrol edilir.

/usr/lib/postgresql/13/bin/pg_upgrade \

  –old-datadir=/var/lib/postgresql/12/main \

  –new-datadir=/var/lib/postgresql/13/main \

  –old-bindir=/usr/lib/postgresql/12/bin \

  –new-bindir=/usr/lib/postgresql/13/bin \

  –old-options ‘-c config_file=/etc/postgresql/12/main/postgresql.conf’ \

  –new-options ‘-c config_file=/etc/postgresql/13/main/postgresql.conf’ \

  –check

Kontrol edildikten sonra datalar taşınır.

/usr/lib/postgresql/13/bin/pg_upgrade \

  –old-datadir=/var/lib/postgresql/12/main \

  –new-datadir=/var/lib/postgresql/13/main \

  –old-bindir=/usr/lib/postgresql/12/bin \

  –new-bindir=/usr/lib/postgresql/13/bin \

  –old-options ‘-c config_file=/etc/postgresql/12/main/postgresql.conf’ \

  –new-options ‘-c config_file=/etc/postgresql/13/main/postgresql.conf’

Postgres kullanıcısından çıkılır.

# exit

Adım 6: PostgreSQL Port Kontrol ve Değişimi

PostgreSQL12 ve PostgreSQL13 konfigürasyon dosyalarında port numaraları kontrol edilerek değiştirilir.

# sudo vi /etc/postgresql/13/main/postgresql.conf ("port = 5433" olanı "port = 5432" olarak değiştirilir.)

# sudo vi /etc/postgresql/12/main/postgresql.conf ("port = 5432" olanı "port = 5433" olarak değiştirilir.)

Adım 7: PostgreSQL 13 (Yeni) Çalışabilirliğini Kontrol Edilmesi

PostgreSQL servisi çalıştırılır.

#sudo systemctl start postgresql.service

Postgres kullanıcına geçiş sağlıyoruz. PostgreSQL versiyonu kontrol edilir.

# sudo su – postgres

# psql -c "SELECT version();"

PostgreSQL majör upgrade işleminde yeni versiyona geçildikten sonra aşağıda belirttiğim scripti çalışmasını istiyor.

# ./analyze_new_cluster.sh

Postgres kullanıcısından çıkış sağlanır.

# Exit

Kurulu PostgreSQL poketleri kontrol edilir.

# apt list --installed | grep postgresql

Eski gördüğümüz PostgreSQL paketleri, dosyaları kaldırılır.

# sudo apt-get remove postgresql-12 postgresql-server-dev-12

# sudo rm -rf /etc/postgresql/12/

Eski PostgreSQL versiyonu ortamdan kaldırıldıktan sonra uygulama içinden de eski cluster silinmesi için PostgreSQL  çalıştırdığımız scripti çalıştırmamızı istemektedir.

# sudo su – postgres

# ./delete_old_cluster.sh

PostgreSQL 12’ den PostgreSQL 13’ e majör upgrade işlemi tamamlanmıştır.

Vakit ayırıp yazımı okuduğunuz için teşekkür ederim.

Başka yazımda görüşmek dileğiyle…

You may also like...

Bir yanıt yazın