PostgreSQL Mimarisi ve Kurulumu
0

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://www.mshowto.org

https://severalnines.com/database-blog/understanding-postgresql-architecture

 

TAGs:PosgreSQL, PosgreSQL Shared Buffer, PostgreSQL Kurulum, PostgreSQL Mimarisi, Postgresql Nedir, Postgresql Process Type, Postgresql Standartları

Bu İçeriğe Tepkin Ne Oldu?
  • 24
    harika_
    Harika!!
  • 2
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 1
    sevdim_
    Sevdim!
  • 2
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 1
    k_zd_m_
    Kızdım!

Trakya Üniversitesi Bilgisayar Mühendisliği mezunuyum. İş hayatıma Eylül 2018'de Gantek Teknoloji firmasında DBA olarak başladım ve burada çalıştığım süre boyunca Linux İşletim Sistemi ve Oracle Database konularında yetkinlik kazandım. Gantek'te olduğum süre boyunca outsource olarak birçok firmanın projelerine dahil oldum ve Oracle'la beraber opensource dünyasına atıldım. Kasım 2019'den itibaren Vodafone'da Opensource DBA olarak çalışmaktayım. Postgresql, MongoDB ve Cassandra DB üzerinde yaklaşık 15 farklı projeyi yönetmekte ve kendimi opensource dünyasında geliştirmekteyim.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir