PostgreSQL ve Kurulum Aşamaları

S Oktay Bicici
6 min readApr 27, 2022

--

PostgreSQL Nedir?

PostgreSQL, güvenilirliği, esnekliği ve açık teknik standartları desteklemesiyle güçlü bir üne sahip olan açık kaynaklı bir veritabanıdır. Diğer RDMBS’nin (İlişkisel Veritabanı Yönetim Sistemleri) aksine, PostgreSQL hem ilişkisel olmayan hem de ilişkisel veri türlerini destekler. Bu, onu bugün mevcut olan en uyumlu, kararlı ve olgun ilişkisel veritabanlarından biri yapar. 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 neden kullanılır?

Dinamik veritabanı sistemlerini sürdürmek, özellikle yeni teknolojilerin ortaya çıkma hızı göz önüne alındığında, günümüzün dijital ortamında kritik öneme sahiptir. PostgreSQL genişletilebilir ve çok yönlüdür, bu nedenle zaman serisi veri türlerinden jeo-uzamsal analitiklere kadar her şeyi kapsayan güçlü uzantı ekosistemiyle çeşitli özel kullanım durumlarını hızla destekleyebilir.

Çok yönlü ve ulaşılabilir tasarımı, PostgreSQL’i veritabanı yönetim sistemlerini geliştirmenin uygun maliyetli ve verimli yollarını arayan birçok kuruluş için “herkese uygun” bir çözüm haline getirir.Açık kaynaklı bir veritabanı çözümü PostgreSQL, lisans kısıtlamalarından, satıcı kilitlenme potansiyelinden veya aşırı dağıtım riskinden tamamen muaftır. Geleneksel veritabanı sistemlerinin sınırlarını anlayan uzman geliştiriciler ve ticari kuruluşlar, PostgreSQL’i büyük ölçüde destekler.

Performans ve Ölçeklenebilirlik

Veri doğrulama ve okuma/yazma hızlarının gerekli olduğu daha büyük veritabanı sistemlerinde PostgreSQL’i yenmek zordur. PostgreSQL, coğrafi destek ve sınırsız eşzamanlılık gibi yalnızca tescilli veritabanı teknolojisinde bulunan çeşitli performans optimizasyonlarını destekler. Bu, PostgreSQL’i birden çok veri türü arasında derin, kapsamlı veri analizi çalıştırırken son derece verimli hale getirir.

Eşzamanlılık Desteği

Birden çok kullanıcı aynı anda verilere eriştiğinde, geleneksel veritabanı sistemleri, okuma/yazma çakışmalarını önlemek için genellikle kayıtlara erişimi kilitler. PostgreSQL, MVCC (Çok Sürümlü Eşzamanlılık Kontrolü) kullanımıyla eşzamanlılığı verimli bir şekilde yönetir. Pratikte bu, okumaların yazmaları engellemediği ve yazmaların da okumaları engellemediği anlamına gelir

Derin Dil Desteği

PostgreSQL, uyumluluğu ve çoklu programlama dillerini desteklemesi nedeniyle geliştiriciler için en esnek veritabanlarından biridir. Python, JavaScript, C/C++, C#,Ruby ve diğerleri gibi popüler kodlama dilleri, PostgreSQL için gelişmiş destek sunarak geliştiricilerin sistem çakışmaları oluşturmadan hangi dilde yetkin olurlarsa olsunlar veritabanı görevlerini gerçekleştirmelerine olanak tanır.

İş Devamlılığı

İşletmeler, afet durumunda sürekli operasyonlarını sürdürmelidir. Üretim veritabanlarının her zaman hem müşteriler hem de geliştiriciler için erişilebilir kalmasını sağlamak için sürdürülebilir bir çözüme ihtiyaç duyarlar. PostgreSQL, birden çok sunucu arasında Eşzamansız veya Eşzamanlı çoğaltma yöntemleri aracılığıyla hizmetlerin yüksek düzeyde kullanılabilirliğini sağlamak için yapılandırılabilir.

%100 Açık Kaynak

Açık kaynak veritabanı yönetimi teknolojisini devreye almak, işletmelere daha iyi maliyetler, daha yüksek esneklik ve her zaman tescilli veritabanı çözümlerinde bulunmayan inovasyon gibi benzersiz avantajlar sunar. Çeşitli katkıda bulunanlardan oluşan bir grup tarafından geliştirilen PostgreSQL, güçlü bir bilgi, uzmanlık ve açık kaynak değerleri temeli üzerine kuruludur ve onu dünyanın en gelişmiş veritabanı haline getirir.

Anında Kurtarma

PostgreSQL, geliştiricilerin veri kurtarma girişimlerini çalıştırırken zaman içinde belirli bir ana veritabanlarını geri yüklemek için PITR’yi (Zaman İçinde Nokta Kurtarma) kullanmasını sağlar. PostgreSQL her zaman bir ileri yazma günlüğü (WAL) tuttuğundan, her veritabanı değişikliğini günlüğe kaydeder. Bu, dosya sistemlerini kararlı bir başlangıç noktasına geri yüklemeyi kolaylaştırır.

pgBackRest gibi üçüncü kişi araçları bunu yapmayı daha kolay ve daha güvenilir hale getirir; çoğu bulut tarafından yönetilen PostgreSQL hizmeti bunu sizin için otomatik olarak halleder.

Saklı Prosedürler

Adı verilen özel alt yordamlar oluşturma yeteneği veren, birden çok yordamsal dil için yerleşik desteğe sahiptir saklı yordamlar . Bu prosedürler, belirli bir veritabanında oluşturulabilir ve çağrılabilir. Uzantıların kullanılmasıyla, prosedürel diller ayrıca Perl, Python, JavaScript ve Ruby dahil olmak üzere diğer birçok programlama dilinde geliştirme için kullanı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 veritabanı kurulumuna ilk olarak https://www.postgresql.org/download/ adresine giderek başlıyoruz. Ben windows platformu için kurulum gerçekleştireceğim.

Açılan sayfada “Download the Installer” balantısını takip edelim.

Güncel sürümü kullanmak hem güvenlik hem de performans açısından önemlidir. Bu nedenle güncel sürümü Windows sütunu altındaki Download butonuyla indirelim.

İndirdiğimiz programı açarak kuruluma başlayalım.

Postgresql veritabanı yazılımının kurulacağı dizini bu aşamada seçiyoruz.

Bu aşamada kurulacak bileşenlerin hepsini seçebilirsiniz. Bu bileşenlerin neler olduğuna gelirsek;

  • PostgreSQL Server: Veritabanı sunucusu
  • pgAdmin 4: Veritabanı yönetim platformu
  • Stack Builder: Postgresql modüllerini kurabileceğiniz grafiksel arayüz
  • Command Line Tools: psql, pg_restore gibi komutlar için interaktif komut istemi arayüzü

Data directory ise veritabanı verilerinizin tutulacağı dizindir. Tüm verileriniz bu alanda tutulacağı için daha korunaklı bir disk veya NFS gibi alanları seçebilirsiniz. En azından C: yerine varsa D: diskini bile seçmeniz herhangi bir Windows hatasında verinizi korunaklı kılar.

Veritabanı yönetici kullanıcısı olan postgres için şifre belirliyoruz.

Veritabanımızın bağlantıları kabul edeceği port. Eğer standart olan 5432 portunu kullanıyorsanız farklı bir port numarası seçebilirsiniz.

Kurulumda işletim sisteminin lokal özelliklerini kullanıyoruz.

Seçimlerimize ve yapılacak işlemlere dair özetimizi görelim.

Kurulumu başlatabiliriz.

Kurulum işleminin bitmesini bekliyoruz.

Stack builderi başlatmamıza gerek yok çünkü şu anda herhangi bir modül veya eklenti kurulumu gerçekleştirmeyeceğiz. Bu nedenle tiki kaldırıp kurulumu tamamlayabilirsiniz.

Postgresql veritabanımız kurulduktan ve servisler başladıktan sonra artık pgAdmin ile veritabanımıza bağlanabiliriz. Bunun için Başlat üzerinden pgAdmin programını çalıştırabilirsiniz.

pgAdmin tarayıcımızda açıldıktan sonra belirlediğimiz şifre ile sisteme giriş yapıyoruz.

Arayüze bağlandıkatan sonra database’e giriş için tekrardan aynı şifreyi giriyoruz.

Tebrikler! Artık Postgresql veritabanımızı ve diğer tüm işlevleri pgAdmin arayüzü ile rahatlıkla kontrol edebilirsiniz.

--

--