Posts

Showing posts from 2021

PostgreSQL 12'den 13'e Logical Replication İle Versiyon Upgrade

PostgreSQL versiyon upgrade'leri için en sık kullanılan yöntemlerden biri olan Logical Replication ile upgrade işlemleri oldukça basit bir kaç adımla tamamlanabilir.  Bu işlemi yapmak için wal_level=logical olması gerekmektedir. Eğer bu parametre değeri replica veya minimal ise postgresql.conf içinde wal_level değiştirilmeli ve postgresql servisi restart edilmelidir. Eğer zaten wal_level=logical olarak kullanıyorsanız yapılacak upgrade işlemi için servis restart etmek zorunda kalmazsınız.  Online olarak upgrade işlemini gerçekleştirebilmek için primary node'dan trafiği secondary ortama yönlendirebileceğiniz HAProxy vb. bir ara katman olmalıdır.  Ubuntu 16.04.7 LTS ortamına PostgreSQL 12 ve 13 kurulumu gerçekleştirilecek. Gerekli kurulum adımlarına buradan ulaşabilirsiniz.  Primary ve secondary sunucularımız olacak. Primary sunucuda PostgreSQL 12, secondary sunucuda 13 kurulumunu gerçekleştireceğiz.  Primary Node'a PostgreSQL 12 Kurulumu sudo sh -c 'echo "deb h

PostgreSQL 12'den 13'e pg_dump İle Versiyon Upgrade

PostgreSQL major versiyonunu birden farklı şekilde upgrade edebilirsiniz. Bunlardan en çok bilineni pg_upgrade adı verilen PostgreSQL toolunu kullanmaktır. Bunun dışında Logical replication yapısı kullanılarak veya dump-restore işlemi ile major versiyon upgrade'i yapılabilir.  Üç yöntemin artıları ve eksikleri bulunmaktadır. Upgrade konusunda en doğrusu hangisidir diye bir durum söz konusu değildir. Mevcut sisteminize uygun olan yapıyı kullanmak en doğrusu olacaktır. pg_upgrade Kullanımı Upgrade için en sık kullanılan yöntemlerdendir. PostgreSQL servisini kapatmak, dolayısıyla kesinti alınması gerekmektedir. Upgrade işlemi ile mevcut data dizini kullanımı sonlanacağından, bu kesinti süresi data dizininin taşınması için gereken süreye eş değerdir. pg_upgrade komutu ile bu süreyi kısaltmanın bir yolu dosyaların taşınması yerine linkleme seçeneğinin kullanılmasından geçer.  Upgrade işlemi öncesi veritabanınızı mutlaka yedeklemenizi öneririm. Bunu storage bazında data directory'nin