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
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.
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.