PostgreSQL 17 Kurulum Rehberi: Ubuntu 24.04 Adım Adım ve Yeni Özellikler

16.04.2026 23:37 Haber
PostgreSQL 17 Kurulum Rehberi: Ubuntu 24.04 Adım Adım ve Yeni Özellikler | Alesta Web

PostgreSQL 17, Eylül 2024'te yayınlandı ve ciddi yenilikler getirdi: JSON_TABLE() ile JSON verisini SQL tablosuna dönüştürmek artık çok kolay, Vacuum 20x daha az bellek tüketiyor, WAL yazma hızı %200 arttı. Alesta Web ekibi olarak bu rehberde PostgreSQL 17'yi Ubuntu 24.04'e adım adım nasıl kuracağınızı, pg_hba.conf'u nasıl yapılandıracağınızı ve PostgreSQL 16'dan nasıl yükselteceğinizi kapsamlı biçimde anlattık. Hadi başlayalım!

PostgreSQL 17 Yenilikleri (What's New in PostgreSQL 17?)

PostgreSQL 17, hem performans hem SQL özellik açısından önemli adımlar attı. Alesta Web olarak öne çıkan yenilikleri şöyle sıralıyoruz:

Yenilik / Feature Etki / Impact
JSON_TABLE() JSON verisini SQL tablo formatına dönüştür
MERGE + RETURNING MERGE komutuna RETURNING cümlesi eklendi
Vacuum Bellek 20x daha az bellek tüketimi
WAL Yazma Yüksek concurrency'de %200 daha iyi throughput
COPY Komutu Büyük satırlarda 2x performans
MERGE/SPLIT PARTITIONS Partition bölme ve birleştirme komutları
Artımlı Backup Incremental filesystem backup desteği

Ubuntu 24.04'te PostgreSQL 17 Kurulumu (Install PostgreSQL 17 on Ubuntu 24.04)

Alesta Web ekibi olarak Ubuntu'nun varsayılan deposu yerine PostgreSQL'in resmi deposunu kullanmanızı öneriyoruz. Bu sayede her zaman en güncel sürümü alırsınız.

Adım 1: Sistem Güncelleme

sudo apt update
sudo apt upgrade -y

Adım 2: PostgreSQL Resmi Depo Anahtarını İndir

sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc \
  --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc

Adım 3: Resmi PostgreSQL Deposunu Ekle

sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] \
  https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
  > /etc/apt/sources.list.d/pgdg.list'

Adım 4: PostgreSQL 17 Kurulumu

sudo apt update
sudo apt -y install postgresql-17 postgresql-client-17

Adım 5: Servis Başlatma ve Etkinleştirme

# Servisi başlat
sudo systemctl start postgresql

# Sistem başlangıcında otomatik çalışmasını sağla
sudo systemctl enable postgresql

# Durumu kontrol et
sudo systemctl status postgresql

Adım 6: Kurulum Doğrulaması

sudo -u postgres psql --version
# Çıktı: psql (PostgreSQL) 17.x

# PostgreSQL konsoluna gir
sudo -u postgres psql
# Çıktı: psql (17.x) ...
# postgres=#
✅ Kurulum Tamamlandı! (Installation Complete!)

PostgreSQL 17 başarıyla kuruldu. Şimdi ilk yapılandırma adımlarına geçelim.

İlk Kurulum Sonrası Yapılacaklar (Post-Installation Steps)

A. postgres Kullanıcısı Şifresi Belirleme

sudo -u postgres psql

-- Güçlü bir şifre belirle
ALTER USER postgres PASSWORD 'GüçlüŞifre2026!';

-- Çık
\q

B. Yeni Veritabanı ve Kullanıcı Oluşturma

sudo -u postgres psql

-- Yeni kullanıcı oluştur
CREATE ROLE app_kullanici WITH LOGIN PASSWORD 'AppŞifre2026!';

-- Yeni veritabanı oluştur
CREATE DATABASE app_db OWNER app_kullanici;

-- Bağlantı izni
GRANT CONNECT ON DATABASE app_db TO app_kullanici;

-- Schema izinleri
GRANT USAGE ON SCHEMA public TO app_kullanici;
GRANT CREATE ON SCHEMA public TO app_kullanici;

-- Tüm tablo izinleri
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO app_kullanici;

-- Yeni tablolar için varsayılan izinler
ALTER DEFAULT PRIVILEGES IN SCHEMA public
  GRANT ALL ON TABLES TO app_kullanici;

\q
⚠️ Güvenlik Uyarısı / Security Warning:

Production ortamında süper kullanıcı (superuser) yerine uygulama bazlı kullanıcılar oluşturun. Her uygulamanın sadece kendi veritabanına erişimi olsun. Bu, güvenlik ihlali durumunda zararı sınırlar (principle of least privilege).

pg_hba.conf Yapılandırması (Host-Based Authentication)

pg_hba.conf dosyası, PostgreSQL'in "güvenlik duvarı" gibi çalışır. Kim, nereden, hangi yöntemle bağlanabilir — hepsini bu dosya belirler.

Dosya Konumunu Bul (Find Config File)

sudo -u postgres psql -c "SHOW hba_file;"
# Çıktı: /etc/postgresql/17/main/pg_hba.conf

# Dosyayı düzenle
sudo nano /etc/postgresql/17/main/pg_hba.conf

Önerilen pg_hba.conf Yapılandırması

# TYPE  DATABASE    USER        ADDRESS         METHOD

# Yerel Unix socket bağlantıları
local   all         all                         scram-sha-256

# Localhost TCP/IP bağlantıları
host    all         all         127.0.0.1/32    scram-sha-256
host    all         all         ::1/128         scram-sha-256

# Uzak bağlantılar (opsiyonel - sadece gerekirse)
# host  all         all         192.168.1.0/24  scram-sha-256

Değişiklikleri Uygula

sudo systemctl reload postgresql
? Bilgi / Info:

scram-sha-256, MD5'ten çok daha güvenli. PostgreSQL 17'de varsayılan authentication yöntemi olarak kullanılıyor. Eski MD5 yöntemini kullanmaya devam ediyorsanız, scram-sha-256'ya geçmenizi strongly recommend ediyoruz (strongly recommend migrating to scram-sha-256).

Uzak Bağlantıları Etkinleştirme (Remote Connections)

# postgresql.conf'u düzenle
sudo nano /etc/postgresql/17/main/postgresql.conf

# Şu satırı bul ve değiştir:
listen_addresses = '*'   # Tüm arayüzlerden dinle
# veya
listen_addresses = 'localhost,192.168.1.10'   # Belirli IP'ler

# Reload et
sudo systemctl reload postgresql

PostgreSQL 16'dan 17'ye Upgrade (Upgrade from PostgreSQL 16 to 17)

Alesta Web olarak pg_upgrade yöntemini öneriyoruz. Disk alanı tasarrufu yapan --link parametresiyle dakikalar içinde tamamlanır.

Adım 1: PostgreSQL 17'yi Kur (16 ile Beraber)

sudo apt update
sudo apt install postgresql-17 postgresql-contrib-17

Adım 2: Her İki Servisi Durdur

sudo systemctl stop postgresql

Adım 3: pg_upgrade Çalıştır

sudo -u postgres /usr/lib/postgresql/17/bin/pg_upgrade \
  --old-datadir=/var/lib/postgresql/16/main \
  --new-datadir=/var/lib/postgresql/17/main \
  --old-bindir=/usr/lib/postgresql/16/bin \
  --new-bindir=/usr/lib/postgresql/17/bin \
  --link

# --link parametresi: hard link kullanır = hızlı + disk tasarrufu

Adım 4: Yeni Kümeyi Analiz Et

sudo -u postgres ./analyze_new_cluster.sh

Adım 5: PostgreSQL 17'yi Başlat

sudo systemctl start postgresql@17-main

# Doğrula
sudo -u postgres psql -c "SELECT version();"
⚠️ Dikkat / Warning:

pg_upgrade öncesinde mutlaka yedek alın (always backup before pg_upgrade)! pg_dumpall > backup.sql komutu tüm veritabanlarını yedekler. Upgrade sonrası eski veri silmeden önce her şeyin çalıştığını doğrulayın.

Yeni SQL Özellikleri ve Örnekler (New SQL Features)

JSON_TABLE() - JSON'dan Tablo Oluşturma

-- JSON array'ini SQL tablosuna dönüştür
SELECT * FROM JSON_TABLE(
  '[
    {"id": 1, "isim": "Ali", "yas": 30},
    {"id": 2, "isim": "Ayşe", "yas": 25},
    {"id": 3, "isim": "Mehmet", "yas": 35}
  ]'::json,
  '$[*]'
  COLUMNS (
    id   INT  PATH '$.id',
    isim TEXT PATH '$.isim',
    yas  INT  PATH '$.yas'
  )
) AS jt;

-- Sonuç:
-- id | isim   | yas
-- 1  | Ali    | 30
-- 2  | Ayşe   | 25
-- 3  | Mehmet | 35

MERGE + RETURNING - Sonuçları Döndür

MERGE INTO kullanicilar k
USING (VALUES
  (101, 'Zeki', 'zeki@ornek.com'),
  (102, 'Derya', 'derya@ornek.com')
) AS yeni(id, isim, eposta)
ON k.id = yeni.id
WHEN MATCHED THEN
  UPDATE SET isim = yeni.isim, eposta = yeni.eposta
WHEN NOT MATCHED THEN
  INSERT (id, isim, eposta) VALUES (yeni.id, yeni.isim, yeni.eposta)
RETURNING id, isim, 'eklendi_veya_guncellendi' AS islem;

-- Etkilenen tüm satırları döndürür (returns all affected rows)

EXPLAIN MEMORY - Bellek Kullanımını İzle

-- Sorgunun bellek kullanımını analiz et
EXPLAIN (ANALYZE, MEMORY)
SELECT * FROM buyuk_tablo WHERE kosul = true;

-- Çıktı örneği:
-- Planning Memory: 128 kB
-- Execution Memory: 2048 kB

MERGE PARTITIONS - Partition Birleştirme

-- İki partition'ı birleştir
ALTER TABLE satis_verisi MERGE PARTITIONS
  (satis_2024_01, satis_2024_02)
INTO PARTITION satis_2024_q1;

? Kaynaklar ve Referanslar / Sources and References

Alesta Web olarak tüm komutları Ubuntu 24.04 üzerinde test ettik (all commands tested on Ubuntu 24.04).

✅ PostgreSQL 17 Hazır! (PostgreSQL 17 is Running!)

PostgreSQL 17'yi Ubuntu 24.04'e kurdunuz, yapılandırdınız ve yeni özelliklerini öğrendiniz. Alesta Web ekibi olarak en çok JSON_TABLE() ve Vacuum iyileştirmelerini beğendik — özellikle JSON-heavy uygulamalarda gerçek fark yaratıyor.

Hızlı Özet / Quick Summary:

  • ✅ PostgreSQL 17 resmi depodan kuruldu (installed from official repository)
  • ✅ pg_hba.conf scram-sha-256 ile güvenli yapılandırıldı
  • ✅ Kullanıcı ve veritabanı oluşturuldu (user and database created)
  • ✅ JSON_TABLE(), MERGE+RETURNING gibi yeni SQL özellikleri hazır
  • ✅ Vacuum 20x daha az bellek, WAL %200 daha hızlı

Faydalı Linkler / Useful Links:

© 2026 AlestaWeb - Tüm hakları saklıdır.

WM Tools
💫

WebMaster Tools

15 Profesyonel Araç
Alesta AI
Alesta AI
Online