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…