Centos Üzerinde Postgresql 12.2 Kurulumu ve Konfigurasyonu

Centos Üzerinde Postgresql 12.2 Kurulumu ve Konfigurasyonu

Bu yazımızda, Centos 7 üzerinde Postgresql 12.2’nin kaynak koddan kurulumu ve kurulum sonrası konfigurasyonlarından bahsedeceğiz. Kurulum ve konfigürasyon adımları sırasında komutları ve ayarları “root” kullanıcı ile yapacağız.

Postgresql Centos dışında Redhat/Debian/Ubuntu gibi Linux tabanlı işletim sistemlerinde de çok benzer konfigürasyonlar ile kurulabilir. Diğer işletim sistemleri için kurulum yazılarını yakında paylaşıyor olacağız.

Kurulum sonrası beklenen çıktıları ekran görüntüsü ile paylaşıyor olacağız.

Kurulum öncesi gereksinimleri göz önünde bulundurduğumuzda Centos üzerinde olması gereken rpm’ler şu şekildedir :

Bu paketleri kurmak için aşağıdaki komutun çalıştırılması gerekiyor:

## yum install glibc gcc libtermcap-devel readline-devel zlib-devel wget

Paketlerin kurulumu yapıldıktan sonra Postgresql’in kaynak kodunu indirmek için aşağıdaki komutun çalıştırılması gerekiyor. Öncelikle “/root”un altındaki “/tmp” klasörüne gidiyoruz. (Postgresql’in 12.2 versiyonunu seçme sebebin şu anki en güncel versiyon olmasıdır. Dilerseniz linkteki bir üst klasöre çıkıp denemek/kurmak istediğiniz başka bir versiyonu seçebilirsiniz. Bu durumda aşağıdaki komutu da değiştirmeniz gerekecektir.)

## cd /tmp

## wget https://ftp.postgresql.org/pub/source/v12.2/postgresql-12.2.tar.gz

İndirilen dosya sıkıştırılmış olduğu için “tar” komutunu kullanarak kaynak kodu bulunduğumuz dizinde açıyoruz. Daha sonra açılan sıkıştırılmış dosyanın içerisine gidiyoruz.

## tar -zxf postgresql-12.2.tar.gz

## cd postgresql-12.2/

Açılan kaynak kodun derlenmesinden önce Postgresql’in çalışırken kullanacağı bazı parametreleri değiştirebiliriz. Burada wal segmentiniz size’ını 64MB yapıp kodu derleme aşamasına o şekilde gideceğiz. Ayrıca değiştirmek istediğiniz başka özellikler için de Postgresql ortamının, yazılımının sistem üzerinde derlenmeden  hazırlanması için bu yolu izlemeniz gerekmektedir.

## ./configure --with-wal-segsize=64

Bu adım sonrası Postgresql yazılımının yükleneceği konfigurasyon adımları tamamlanmış oldu. Şimdi yüklenmeye hazır olan kodun derlenmesi için aşağıdaki komutları çalıştırıyoruz:

## make world

## make install-world

Bu adımları hata almadan geçtiğiniz takdir sistem üzerinde “/usr/local/pgsql” dizinine Postgresql’in binary’lerini ve gerekli kütüphaneleri kurduğunu görebilirsiniz. Bu bizim için şuan Postgresql yazılımının kurulduğunu gösteriyor. Ancak hala elimizde bir veritabanı yok. Veritabanının çalışması için gerekli olan ortamı hazırlamış olduk.

Şimdi veritabanı kurulumu ve sonrası işlemleri için kullanacağımız “postgres” kullanıcısını oluşturuyoruz.

## adduser postgres

Kullanıcıyı ekledikten sonra veritabanı dosyalarının ve verilerin tutulacağı “data” klasörünü “/usr/local/pgsql” dizininde oluşturup bu klasörün sahibini “postgres” olarak ayarlıyoruz.

## mkdir /usr/local/pgsql/data

## chown postgres:postgres /usr/local/pgsql/data

Buraya kadar işlemler hep “root” kullanıcısı ile yaptık. Şimdi oluşturmuş olduğumuz “postgres” kullanıcısına geçiş yapalım. Böylece veritabanı kurulumuna başlayabiliriz.

## su – postgres

Şimdi postgresql kullanıcısına geçtikten sonra ortam değişkenlerini Postgresql’in binary ve kütüphanelerini de görecek şekilde düzenlememiz gerekiyor. Bu adım için “/home/postgres” dizinindeki “.bash_profile” dosyasının içeriğini aşağıdaki biçimde değiştiriyoruz.

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

 . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export LD_LIBRARY_PATH=/usr/local/pgsql/lib

export PGDATA=/usr/local/pgsql/data

export PATH=/usr/local/pgsql/bin:$PATH

“.bash_profile” dosyasının içinde bulunan ortam değişkenlerini görmesi için yüklüyoruz tekrar sisteme.

## source .bash_profile

Şimdi ortam değişkenlerimiz de hazır olduğuna göre veritabanı kurulum adımına geçebiliriz. Bu adımda “initdb” komutunu kullanacağız. Ortam değişkenlerinin doğru çalıştığından emin olmak için aşağıdaki kontrol komutunu çalıştırabilirsiniz:

## which initdb

Yukarıdaki komutun sonucu “/usr/local/pgsql/bin/initdb” ise değişkenler doğru set edilmiş demektir.

Şimdi “initdb” kullanarak veritabanı kurulumu gerçekleştiriyoruz. Bu komut ile beraber eğer veritabanının kurulacağı dizini değiştirmek istersek –pgdata parametresiyle kullanmamız gerekiyor. Hatırlarsınız ki PGDATA’yı zaten “.bash_profile” içerisinde belirtmiştik. Yine de parameter kullanımını da görmeniz açısında bu parametre ile veritabanı kurulumu başlatıyoruz.
## initdb --pgdata=/usr/local/pgsql/data –pwprompt

Bu komutun çalıştırılması sonrası “/usr/local/pgsql/data” klasöründe veritabanına ait dosyaların oluşturulduğunu gözlemleyebilirsiniz :
## 1s

Yukarıdaki kodun çıktısını gördüğünüz üzere veritabanı çalıştırılmaya hazır. Ancak veritabanını çalıştırmadan önce bazı değişikliklere ihtiyacımız var. Bu değişikliklerden biri veritabanına hangi kullanıcının, hangi hosttan, hangi veritabanına bağlanabileceğini belirttiğimiz “pg_hba.conf” dosyasını güncellemek.

Burada öncelikle o sunucu üzerinde bağlanacağınız için sunucuyu eklememiz gerekiyor. Aşağıdaki gibi bir dosya yapısında “pg_hba.conf”.

“pg_hba.conf” dosyasını güncelledikten sonra bizim için çok önemli olan ve Postgresql veritabanının çalışırken kullandığı tüm parametreleri, konfigürasyon değerlerini düzenleyip sağlıklı çalışması için ayarladığımız “postgresql.conf” dosyasına geçiyoruz.
Bu dosya içerisindeki parametrelerin bir kısmını değiştirdikten sonra veritabanının tekrar başlatılması gerekiyor. Bir kısmı ise veritabanının tekrar başlatılmasına ihtiyaç duymuyor. Bu sebeple yapacağımız değişiklikleri veritabanını kurduktan sonra yapabiliyorsak bizim için daha. Çalışan sistem üzerinde değişiklikler yapmaktan kaçınalım.
Bunun için veritabanı kurulumunda sonra başlatmadan önce ciddi bir çalışma, gereksinimleri belirleme, stratejiyi oluşturmak gerekiyor.
“postgresql.conf” dosyası başındaki açıklama gibi Postgresql’in konfigürasyon dosyası :

Bu dosya içerisinde ilk müdaha edeceğimiz parametrelerden biri hangi porttan çalışacaksa veritabanı o parametreyi güncellemek. Postgresql standart olarak 5432 portu üzerinde çalışır eğer aksi belirtilmemişse. Bağlantılar için bu kısım güncellenmeli :

Daha sonra müdahale edeceğimiz parametre yine Postgresql için çok önemli olan “shared_buffers” parametresi. Bu parametre için genellikle sistemin memory miktarının yüzde 25’ini vermeniz sizin için en iyi senaryo olabilir.

Yine arşiv modunu bu klasörden açabilirsiniz. Açtıktan sonra arşivlerin kaydedileceği ve aktarılacağı dizinleri de belirlemeniz gerekiyor.


Performans artışı ve paralellik özelliklerini de kullanabilmek için yine “postgresql.conf” içerisindeki parametrelerden faydalanabilirsiniz. Postgresql üzerinde performans çalışmaları ile ilgili çalışmayı daha sonraki yazılarımızda değiniyor olacağız. Parametreleri de ayarladığımıza göre şimdi veritabanını başlatabiliriz. Onun için kurulum adımında son satırda yazan komutu çalıştırmamız yeterlidir. Bu adımda kullanmış olduğumuz “pg_ctl” komutu veritabanı başlatıp-kapatırken kullandığımız komut. “-D” parametresi ile hangi dizindeki veritabanını başlatacağımızı belirtiyoruz : ## pg_ctl -D /usr/local/pgsql/data start

Veritabanını başlatılmış oldu bu durumda. Şimdi bağlanıp var olan veritabanlarını listeleyim
## psql
psql## \l

Artık veritabanımızın da çalıştığını gözlemleyebiliyoruz. “postgres” bizim için ana veritabanı olarak oluşturuluyor sistem tarafından. Diğer iki template veritabanı ise ihtiyaç durumunda kullanabileceğiniz yedek veritabanı gibi oluşturuluyor.

Grup Şirketlerimiz

TELEFON
0216 977 70 70