Skip to main content

🐘 Ubuntu Üzerine PostgreSQL Kurulumu ve Yönetimi


💡 Bu Rehberde Ne Öğreneceksiniz

Bu kapsamlı kılavuzda, açık kaynaklı ilişkisel veritabanı yönetim sistemi olan PostgreSQL’i Ubuntu üzerinde kurmayı öğreneceksiniz. Kurulumdan sonra, rol tabanlı kimlik doğrulama, psql kullanımı, temel SQL komutları, performans konfigürasyonu ve yedekleme stratejileri gibi konuları ele alacağız.


⚙️ Adım 1 – PostgreSQL Kurulumu

Gereksinimler:

  • Ubuntu 20.04 veya üzeri sürüm
  • sudo yetkili kullanıcı
  • İnternet bağlantısı

Paket dizinini güncelleyin:

sudo apt update

PostgreSQL ve ek araçlarını yükleyin:

sudo apt install postgresql postgresql-contrib

Kurulumun çalıştığını doğrulayın:

sudo systemctl status postgresql

“active (running)” çıktısı görüyorsanız servis aktif.


👤 Adım 2 – PostgreSQL Rolleri ve Kimlik Doğrulama

PostgreSQL, kullanıcı yönetimini roller aracılığıyla yapar. Kurulumla birlikte varsayılan olarak postgres adlı süper kullanıcı rolü oluşturulur.

Bu kullanıcıya geçiş yapın:

sudo -i -u postgres

Konsolu açın:

psql

Çıkış için:

\q

PostgreSQL, yerel bağlantılarda varsayılan olarak “peer authentication” kullanır; sistem kullanıcı adınızla aynı ada sahip bir PostgreSQL rolü varsa doğrudan giriş yapılır.


🧩 Adım 3 – Yeni Rol ve Veritabanı Oluşturma

Etkileşimli bir rol oluşturun:

sudo -u postgres createuser --interactive

Komut sizden kullanıcı adı ve süper yetki isteyecektir.

Yeni bir veritabanı oluşturun:

sudo -u postgres createdb rabisu_user

Ya da SQL ile manuel oluşturun:

CREATE ROLE rabisu_user WITH LOGIN PASSWORD 'guclu_parola';
CREATE DATABASE rabisu_db OWNER rabisu_user;
GRANT ALL PRIVILEGES ON DATABASE rabisu_db TO rabisu_user;

🗃️ Adım 4 – Tablo Oluşturma ve SQL İşlemleri

PostgreSQL’e bağlanın:

sudo -u rabisu_user psql -d rabisu_db

Örnek tablo oluşturun:

CREATE TABLE envanter (
id SERIAL PRIMARY KEY,
urun_adi VARCHAR(50),
miktar INT,
ekleme_tarihi DATE
);

Veri ekleyin:

INSERT INTO envanter (urun_adi, miktar, ekleme_tarihi)
VALUES ('Laptop', 5, CURRENT_DATE);

Verileri görüntüleyin:

SELECT * FROM envanter;

Veri güncelleyin:

UPDATE envanter SET miktar=10 WHERE urun_adi='Laptop';

Veri silin:

DELETE FROM envanter WHERE urun_adi='Laptop';

⚙️ Adım 5 – Performans ve Konfigürasyon

postgresql.conf dosyasını düzenleyerek sistem performansını artırabilirsiniz:

sudo nano /etc/postgresql/*/main/postgresql.conf
ParametreAçıklamaÖneri
shared_buffersBellek önbelleğiRAM’in %25’i
work_memSorgu başına bellek16MB
maintenance_work_memBakım görevleri için256MB

Değişiklikleri uygulamak için:

sudo systemctl reload postgresql

Ek olarak:

  • Büyük tablolar sonrası VACUUM ANALYZE çalıştırın.
  • Bağlantı yükünü azaltmak için PgBouncer kullanın.

🛡️ Adım 6 – Yedekleme ve Geri Yükleme

Tek Veritabanı Yedekleme:

pg_dump -U postgres -F c -f proje_db.dump proje_db

Yedek Geri Yükleme:

pg_restore -U postgres -d postgres --create --clean -j 4 proje_db.dump

Tüm Veritabanlarını Yedekleme:

pg_dumpall -U postgres > tum_veriler.sql

Tümünü Geri Yükleme:

psql -U postgres -f tum_veriler.sql

Yedekleme işlemleri için düzenli cron job tanımlamak önerilir.


❓ Sıkça Sorulan Sorular (SSS)

1. PostgreSQL hangi Ubuntu sürümlerinde desteklenir?

20.04, 22.04, 24.04 ve 25.04 sürümleriyle uyumludur.

2. Veritabanımı nasıl yedeklerim?

pg_dump komutu ile sıkıştırılmış yedek oluşturabilirsiniz.

3. PostgreSQL neden tercih edilmeli?

JSONB, ACID uyumluluğu, PostGIS, paralel sorgu ve açık kaynak desteğiyle kurumsal düzeyde bir çözümdür.

4. Performansı nasıl artırabilirim?

Bellek ayarlarını optimize edin, gereksiz indeksleri kaldırın, düzenli bakım komutları çalıştırın.

5. psql komutu bulunamadı hatası ne anlama gelir?

PATH değişkeniniz PostgreSQL bin dizinini içermiyor olabilir. /usr/bin/psql yolunu doğrudan kullanın.


🏁 Sonuç

Artık Ubuntu üzerinde PostgreSQL kurulumu, kullanıcı yönetimi ve SQL işlemleri konusunda tam hakimiyete sahipsiniz 🎉 Veritabanınızı güvenli, performanslı ve düzenli hale getirmek için öğrendiğiniz komutları sisteminize entegre edin.

💡 Daha yüksek performanslı bir altyapı için Rabisu Bulut PostgreSQL Sunucuları üzerinde bu adımları deneyebilirsiniz!