PostgreSQL 11 Kurulumu

PostgreSQL open source yalın bir veritabanıdır.Bunun bazı avantaj ve dezavantajları bulunmaktadır. İhtiyacınıza göre PostgreSQL’i şekillendirebilir ve ihtiyacınıza göre kurulumları yapabilirsiniz.

PostgreSQL’in üzerinde birden fazla kritik veritabanlarının olacağını düşünerek kurulumlarımızı gerçekleştirelim.

İlk olarak postgresql’in reposunu aşağıdaki şekilde indirelim.

 

wget https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

 

İndirdikten sonra paketi yükleyelim.

yum install pgdg-redhat-repo-latest.noarch.rpm

 

PostgreSQL kurulumuna geçelim.

 

yum install postgresql11 postgresql11-devel postgresql11-contrib postgresql11-libs postgresql11-server

 

 

postgresql11install

PostgreSQL kurulumunu tamamladık şimdi ise dosyalarımızı oluşturalım. Dosyaları oluştururken yeni versiyon çıktıktan sonra upgrade yapılacağını düşünerek versiyonlamayı tercih ediyorum bunun yanı sıra data ve log dizinini ssd ağırlıklı planlamanızı öneririm.

mkdir -p  postgresql11/data mkdir -p  postgresql11/log mkdir -p  postgresql11/archive

 

Kurulumu yaptık ve postgres kullanıcısı işletim sistemi tarafında oluştu şimdi ise dosyalarımıza yetki tanımlayalım.

chown -R postgres:postgres /postgresql11/ chmod -R 700 /postgresql11/

 

Aşağıda yetkilerin tanımlandığını görebilirsiniz.

chown chmod postgres

Postgresql11 içerisindeki dosyaları da kontrol edelim.

Yukarıda görüldüğü gibi subfolderların da yetkiyi aldığını görüyoruz. PostgreSQL’in data ve log dosyalarının tutulacağı yerleri belirtmek ve PostgreSQL in gerekli kurulumları yapması  için initdb komutunu çalıştırıyoruz.

İnitdb yapılmadan önce postgres kullanıcısına geçmemiz gerekiyor.

su postgres

 

Postgres kullanıcısına geçtikten sonra aşağıdaki gibi data ve log dosyalarını belirterek initdb yapıyoruz .Belirtilmez ise default path de kurulacaktır.

 

/usr/pgsql-11/bin/initdb -D DATA_DOSYASI -X LOG_DOSYASI

 

 

-D parametresi ile data dosyaların oluşacağı yeri ,-X ile de log dosyalarının tutulacağı yeri belirtiyoruz.

 

/usr/pgsql-11/bin/initdb -D /postgresql11/data -X /postgresql11/log

 

Yukarıdaki gibi initdb yapıldı ve cluster bazında default konfigürasyonlar yapıldı.

Bunu yaptıktan sonra pg_ctl ile postgresql servisini başlatabiliriz ya da systemctl dosyasını düzenleyerek systemctl ile postgresql’i başlatabiliriz. Aşağıda iki yöntemi de anlatacağım ikisinin de artıları ve eksileri bulunmaktadır. Ben genellikle systemctl ile data dizinin yerini belirterek servisi başlatmayı tercih ediyorum .

İlk olarak pg_ctl ile başlatacağız.

/usr/pgsql-11/bin/pg_ctl -D /postgresql11/data -l /postgresql11/log start

 

Yukarıdaki gibi  -l parametresini değiştirip log dizinini  belirterek postgresql servisini başlatabilirsiniz .

Systemctl ile  başlatmak için aşağıdaki adımları izleyebilirsiniz.Aşağıdaki işlemleri root kullanıcısı ile yapmamız gerekiyor.

İlk olarak postgresql servisini vi editörü ile açıyoruz

vi /lib/systemd/system/postgresql-11.service

 

 

Yukarıdaki gibi başarılı şekilde data dizinini yazdıktan sonra kaydedip çıkıyoruz.

 systemctl enable postgresql-11.service

 

Servisi enable ettikten sonra servisi aşağıdaki şekilde başlatıyoruz.

  systemctl start postgresql-11.service

 

Servisimiz başarılı şekilde başladı servisin durumunu aşağıdaki komut yardımı ile kontrol ediyoruz.

 systemctl status postgresql-11.service

 

Yukarıdaki resimde görüldüğü gibi servisi durumunda active running yazıyorsa kurulumu başarılı bir şekilde gerçekleştirdiniz.

Loading