PostgreSQL Nedir?
PostgreSQL, veri tabanları için ilişkisel modeli kullanan ve SQL standart sorgu dilini destekleyen bir veri tabanı yönetim sistemidir. Oracle’la benzerliği nedeniyle son dönemlerde yüksek lisans maliyetlerinden kaçınmak, aynı işlevi aynı performansla yapmak gibi nedenlerden dolayı sıkça tercih edilmektedir. Çünkü PostgreSQL ücretsiz ve açık kaynak kodlu bir yazılımdır.
PostgreSQL aynı zamanda iyi performans veren, güvenli ve geniş özellikleri olan bir Veri Tabanı Yönetim Sistemi’dir. Hemen hemen tüm UNIX ya da Unix türevi (Linux, FreeBSD gibi) işletim sistemlerinde çalışır. Ayrıca NT çekirdekli tüm Windows sistemlerde de çalıştırılabilir.
PostgreSQL Mimarisi
PostgreSQL‘in fiziksel yapısı anlaşılabilirdir. Özellikle veritabanı bilgisi olan ve Oracle’la ilgili tecrübesi olan herkes kolayca kavrayabilir. Oracle’la mimarisi neredeyse aynıdır. Shared memory, background process’ler ve data file’lardan oluşur. Resim-1 ‘de görüldüğü gibi bir mimariye sahiptir.
Resim-1
Shared Memory, database cache ve transaction log cache için bellekten alan ayırır. En önemli elementleri shared buffer ve wal buffer’dır.
- Shared Buffer : Shared Buffer’ın amacı disk I/O ‘yu azaltmaktır. Bu amaçla aşağıdakilerin yapılması hedeflenir;
- Çok büyük buffer’lara hızlıca erişmemiz beklenir. (100GB ve fazlası)
- Bir çok kullanıcı aynı anda erişmek istediğinde Contention’ın (rekabet,çekişme) aza indirilmesi beklenir.
- Sık kullanılan bloklar mümkün olduğunca buffer’da kalmalıdır.
- Wal Buffer : Wal buffer değişiklikleri geçici olarak veritabanında bir buffer’a depolar. Wal buffer’ın içindekiler önceden belirlenmiş Point in Time’lara göre Wal dosyalarına yazılır.
PostgreSQL Process Types
4 farklı süreçten (process) oluşur. Bunlar; Postmaster (Daemon), Background, Backend ve Client Process’lerdir.
- Postmaster Process : Bu işlem PostgreSql başladığında çalışan ilk süreçtir. Başlangıçta, kurtarma (recovery) işlemini gerçekleştirir, paylaşımlı bellekten alan ayırır ve arkaplan süreçlerini başlatır. Bir client process tarafından bağlantı isteği geldiğinde backend process yaratır. Resim-2’de yapı gösterilmiştir.
Resim-2
PostgreSQL Kurulum Adımları
PostgreSQL’in kendi sitesinden aşağıdaki paketler indirilip linux makinasına atılmalı daha sonra yüklenmelidir. Paketlerin versiyonları tercihinize bağlıdır. Rpm kurulum, internete çıkılamayan sunucularda tercihe bağlı olarak seçilen bir kurulum yöntemidir.
- Postgresql11-libs-11.7-1PGDG.rhel7.x86_64.rpm
- Postgresql11-11.7-1PGDG.rhel7.x86_64.rpm
- postgresql11-contrib-11.7-1PGDG.rhel7.x86_64.rpm
- postgresql11-server-11.7-1PGDG.rhel7.x86_64.rpm
Resim-3’te paketlerin kurulumu gösterilmiştir.
Resim-3
Daha sonra veri dizini (data directory) oluşturulur ve postgres kullanıcısına yetki verilir. Postgres kullanıcısı rpm paketleriyle beraber gelir.
Resim-4
PostgreSQL’in service dosyası vi editörü kullanılarak düzenlenir. Upgrade yapılacak ortamlarda doğrudan servis dosyasını değilde, /etc/systemd/system path’ine kopyaladıktan sonra orada bu dosyayı düzenlemek daha sağlıklı olabilir. Aşağıdaki gibi Pgdata değişkenine oluşturulan veri dizininin yolu yazılmalı, ardından initdb komutuyla küme (cluster) oluşturulmalıdır.
Resim-5
Bu adımlardan sonra belirtilen veri dizininde veritabanı dosyaları oluşturulmuştur. Service başlatılıp, sonrasında psql komutuyla PostgreSQL veri tabanının shell ekranına bağlanılabilir.
Resim-6
Resim-7’de gösterildiği gibi postgres user’ına geçip, psql komutuyla veri tabanına bağlanılır. \l çıktısında postgresql’in varsayılan olarak gelen şablon veri tabanlarıı görebilirsiniz. Kurulumdan sonra, postgresql.conf dosyasında veri tabanınız için gerekli parametreleri ayarlamayı unutmayın.
Resim-7
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
https://severalnines.com/database-blog/understanding-postgresql-architecture
TAGs:PosgreSQL, PosgreSQL Shared Buffer, PostgreSQL Kurulum, PostgreSQL Mimarisi, Postgresql Nedir, Postgresql Process Type, Postgresql Standartları