Ubuntu'ya PostgreSQL Nasıl Kurulur
Giriş
PostgreSQL veya Postgres, SQL sorgulama dilinin bir uygulamasını sunan ilişkisel bir veritabanı yönetim sistemidir. Standartlara uygundur ve güvenilir işlemler ile okuma kilidi olmadan eşzamanlılık gibi birçok gelişmiş özelliğe sahiptir.
Bu rehber, PostgreSQL'i kurmaktan yeni bir kullanıcı ve veritabanı oluşturmaya kadar, Ubuntu sunucusunda Postgres'i hızlı bir şekilde çalışır duruma getirmenin nasıl yapılacağını gösterir. Eğer PostgreSQL veritabanını kurma ve yönetme konusunda daha ayrıntılı bir rehber tercih ederseniz, Ubuntu'da PostgreSQL Nasıl Kurulur ve Kullanılır başlığına bakabilirsiniz.
Sürüm Uyumluluğu: Bu kılavuzun Ubuntu 20.04, 22.04, 24.04 ve 25.04 sürümlerinde çalıştığı doğrulanmıştır. Daha yeni bir sürüm kullanıyorsanız, bu adımlar çoğu Ubuntu sürümü için geçerliliğini korur. Paket sürümleri veya yapılandırma yolları sisteminizde farklıysa, aynı iş akışını izleyin ve belirli Ubuntu ve PostgreSQL sürümleriniz için sürüm notlarını inceleyin.
Ana Noktalar
Hızlı Kurulum: PostgreSQL, standart paket depoları ve birkaç basit komut kullanılarak Ubuntu üzerine beş dakikadan kısa sürede kurulabilir. Bu sadeleştirilmiş süreç, geliştiriciler ve yöneticilerin herhangi bir manuel derleme veya karmaşık kurulum prosedürüne ihtiyaç duymadan hemen çalışmaya başlamasını sağlar.
-
Varsayılan olarak güvenli: Kutudan çıktığı gibi, PostgreSQL güvenli ident kimlik doğrulama yöntemini kullanır; bu, yalnızca uygun ayrıcalıklara sahip sistem kullanıcılarının veritabanına erişebilmesini sağlar. Bu varsayılan güvenlik önlemi, yetkisiz erişim riskini azaltır ve ek yapılandırma uygulanmadan önce verilerinizi korumaya yardımcı olur.
Rol Tabanlı Erişim: PostgreSQL, veritabanı erişimini Unix tarzı kullanıcı hesaplarıyla yakından uyumlu esnek bir rol tabanlı sistem kullanarak yönetir. Bu, sistem yöneticilerinin izinleri vermesini ve yönetmesini sezgisel hale getirir ve ayrıca PostgreSQL kimlik doğrulamasını mevcut sunucu kullanıcı yönetim stratejileriyle entegre etmeyi kolaylaştırır.
Üretime Hazır: Ubuntu üzerinde PostgreSQL, güçlü varsayılan ayarlarla gelir ve topluluk, performans ayarlamaları yapma, dağıtımları güvence altına alma ve sorun giderme konularında bol miktarda kaynak sağlar. İster test ortamlarını ister üretim iş yüklerini çalıştırıyor olun, kurulumunuzu optimize etmek için yapılandırma en iyi uygulamalarını uygulayabilirsiniz.
Doğrulama Adımları: Bu eğitim, PostgreSQL’in durumunu kontrol etmek ve kurulum sonrası doğru yapılandırmayı sağlamak için açık komutlar sunar. Bu doğrulama adımları—örneğin sürümü doğrulamak veya postgres kullanıcısı olarak bağlantıyı test etmek—veritabanınızın doğru şekilde kurulduğunu ve tam olarak çalışır durumda olduğunu doğrulamak için önemlidir.
Önkoşullar
Bu öğreticiyi takip edebilmek için, Ubuntu Rehberimizdeki Başlangıç Sunucu Kurulumu adımlarını izleyerek yapılandırılmış bir Ubuntu sunucusuna ihtiyacınız olacak. Bu ön şart öğreticiyi tamamladıktan sonra, sunucunuzda sudo yetkilerine sahip root olmayan bir kullanıcı ve temel bir güvenlik duvarı bulunmalıdır.
Sistem Gereksinimleri: PostgreSQL, temel çalışması için en az 1GB RAM ve 1GB disk alanı gerektirir. Üretim iş yükleri için 4GB veya daha fazla RAM ve SSD depolama düşünün.
Adım 1 — PostgreSQL Kurulumu
PostgreSQL'yi yüklemek için önce sunucunuzun yerel paket indeksini güncelleyin:
sudo apt updateSonra, bazı ek yardımcı programlar ve işlevsellik ekleyen bir -contrib paketi ile birlikte Postgres paketini yükleyin:
sudo apt install postgresql postgresql-contribKurulumu onaylamak için istendiğinde Y tuşuna basın. Herhangi bir servisi yeniden başlatmanız istenirse, varsayılanları kabul etmek ve devam etmek için ENTER tuşuna basın.
İçindekiler: postgresql-contrib paketi, sorgu izlemesi için pg_stat_statements, UUID oluşturma için uuid-ossp ve anahtar-değer depolama için hstore gibi ek modüller sağlar.
Adım 2 — Kurulumu Doğrulama
Kurulumdan sonra, PostgreSQL'in çalıştığını doğrulayın ve sürümünü kontrol edin:
sudo systemctl status postgresqlServisin etkin ve çalışır durumda olduğunu gösteren bir çıktıyı görmelisiniz. PostgreSQL sürümünü kontrol etmek için:
sudo -u postgres psql -c "SELECT version();"Bu komut, Ubuntu üzerinde yüklü PostgreSQL sürümünü gösterecektir; sürümün 14.x veya daha yeni olması gerekir.
Beklenen Çıktı: PostgreSQL 14.9 on x86_64-pc-linux-gnu veya daha yeni bir sürümü gibi bir çıktı görmelisiniz; bu, kurulumun başarılı olduğunu doğrular.
Adım 3 — PostgreSQL Rolleri ve Veritabanlarını Kullanma
Varsayılan olarak, Postgres kimlik doğrulama ve yetkilendirmeyi yönetmek için "roller" adı verilen bir kavram kullanır. Bunlar, bazı açılardan, normal Unix tarzı kullanıcılar ve gruplara benzer.
Kurulum sırasında, Postgres ident kimlik doğrulamasını kullanacak şekilde yapılandırılır; bu, Postgres rollerini eşleşen bir Unix/Linux sistem hesabıyla ilişkilendirdiği anlamına gelir. Eğer Postgres içinde bir rol varsa, aynı ada sahip bir Unix/Linux kullanıcı adı o rol olarak oturum açabilir.
Kurulum işlemi, varsayılan Postgres rolü ile ilişkili postgres adlı bir kullanıcı hesabı oluşturdu. Bu hesabı Postgres'e erişmek için kullanmanın birkaç yolu vardır. Bunlardan biri, sunucunuzda aşağıdaki komutu çalıştırarak postgres hesabına geçmektir:
sudo -i -u postgresArdından şunu çalıştırarak Postgres istemine erişebilirsiniz:
psqlBu sizi PostgreSQL komut istemine giriş yaptıracak ve buradan veritabanı yönetim sistemiyle hemen etkileşime geçebilirsiniz.
PostgreSQL istemcisinden çıkmak için aşağıdakini çalıştırın:
\q
Bu sizi postgres Linux komut satırına geri getirecektir. Normal sistem kullanıcınıza dönmek için exit komutunu çalıştırın:
exitPostgres istemine bağlanmanın bir başka yolu, psql komutunu postgres hesabı olarak doğrudan sudo ile çalıştırmaktır:
sudo -u postgres psqlBu, arada herhangi bir bash kabuğu olmadan sizi doğrudan Postgres'e giriş yapacak şekilde kaydedecektir.
Yine, aşağıdakini çalıştırarak etkileşimli Postgres oturumundan çıkabilirsiniz:
\qKimlik Doğrulama Yöntemleri: PostgreSQL, ident, md5, scram-sha-256 ve peer dahil olmak üzere birden fazla kimlik doğrulama yöntemini destekler. Varsayılan olarak kullanılan ident yöntemi, tek kullanıcı sistemleri için iyi bir güvenlik sağlar.
Adım 4 — Yeni Bir Rol Oluşturma
Eğer postgres hesabı ile giriş yaptıysanız, aşağıdaki komutu çalıştırarak yeni bir rol oluşturabilirsiniz:
createuser --interactiveBunun yerine normal hesabınızdan çıkmadan her komut için sudo kullanmayı tercih ederseniz, çalıştırın:
sudo -u postgres createuser --interactiveHer iki durumda da, betik size bazı seçenekler sunacak ve yanıtlarınıza göre, belirtilen özelliklerde bir kullanıcı oluşturmak için doğru Postgres komutlarını çalıştıracaktır.
Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) yGüvenlik Hususu: Yalnızca gerçekten ihtiyaç duyan rollere süper kullanıcı ayrıcalıkları verin. Çoğu uygulama için belirli veritabanı izinlerine sahip normal bir rol yeterli ve daha güvenlidir.
Adım 5 — Yeni Bir Veritabanı Oluşturma
Postgres kimlik doğrulama sisteminin varsayılan olarak yaptığı bir diğer varsayım, giriş yapmak için kullanılan herhangi bir rolün, erişebileceği aynı adı taşıyan bir veritabanına sahip olacağıdır.
Bu, önceki bölümde oluşturduğunuz kullanıcı sammy olarak adlandırıldıysa, bu rolün varsayılan olarak adı “sammy” olan bir veritabanına bağlanmaya çalışacağı anlamına gelir. Uygun veritabanını createdb komutuyla oluşturabilirsiniz.
Eğer postgres hesabıyla giriş yaptıysanız, aşağıdakine benzer bir şey yazarsınız:
createdb sammyBunun yerine, normal hesabınızdan geçiş yapmadan her komut için sudo kullanmayı tercih ederseniz, şunu çalıştırırsınız:
sudo -u postgres createdb sammyVeritabanı Adlandırması: Veritabanı adları, bir PostgreSQL kümesi içinde benzersiz olmalı ve tanımlayıcı adlandırma kurallarına uymalıdır (harfler, rakamlar, alt çizgiler ve dolar işaretleri kullanılabilir, ancak rakamla başlayamaz).
Adım 6 — Yeni Rol ile Postgres Komut Satırını Açmak
ident tabanlı kimlik doğrulamasıyla giriş yapmak için, Postgres rolünüz ve veritabanınızla aynı ada sahip bir Linux kullanıcısına ihtiyacınız olacak.
Eşleşen bir Linux kullanıcınız yoksa, adduser komutunu kullanarak bir tane oluşturabilirsiniz. Bunu root olmayan hesabınızdan sudo ayrıcalıklarıyla yapmanız gerekir (yani postgres kullanıcısı olarak giriş yapmamış olmanız gerekir):
sudo adduser sammyBu yeni hesap kullanılabilir hale geldiğinde, aşağıdakileri çalıştırarak veritabanına geçiş yapabilir ve bağlanabilirsiniz:
sudo -i -u sammy
psqlYa da bunu satır içinde yapabilirsiniz:
sudo -u sammy psqlBu komut, tüm bileşenler doğru şekilde yapılandırılmışsa sizi otomatik olarak giriş yaptıracaktır.
Kullanıcınızın başka bir veritabanına bağlanmasını istiyorsanız, bunu aşağıdaki şekilde veritabanını belirterek yapabilirsiniz:
psql -d postgresGiriş yaptıktan sonra, şu komutu çalıştırarak mevcut bağlantı bilgilerinizi kontrol edebilirsiniz:
\conninfoYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".Adım 7 — Temel Güvenlik Konfigürasyonu
Üretim ortamları için, bu temel güvenlik yapılandırmalarını göz önünde bulundurun:
Postgres kullanıcı şifresini değiştir
sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'your_secure_password';"Bağlantı Sınırlarını Yapılandır
PostgreSQL yapılandırma dosyasını düzenleyin:
sudo nano /etc/postgresql/*/main/postgresql.confBu ayarları arayın ve değiştirin:
max_connections = 100
shared_buffers = 256MB
effective_cache_size = 1GBDeğişiklikleri Uygulamak İçin PostgreSQL'i Yeniden Başlatın
sudo systemctl restart postgresqlÜretim Güvenliği: Üretim dağıtımları için her zaman varsayılan şifreleri değiştirin, uygun güvenlik duvarı kurallarını yapılandırın ve şifreli bağlantılar için SSL sertifikası kullanmayı düşünün.
Yaygın Sorunları Giderme
Sorun: “psql: hata: soket üzerinden sunucuya bağlantı başarısız oldu”
Sebep: PostgreSQL servisi çalışmıyor.
Çözüm:
sudo systemctl start postgresql
sudo systemctl enable postgresqlSorun: “FATAL: ‘username’ rolü mevcut değil”
Neden: PostgreSQL rolü mevcut değil veya Linux kullanıcısı eşleşmiyor.
Çözüm:
sudo -u postgres createuser --interactive username
sudo adduser usernameSorun: “FATAL: 'database_name' veritabanı mevcut değil”
Neden: Veritabanı henüz oluşturulmadı.
Çözüm:
sudo -u postgres createdb database_nameSorun: “FATAL: şifre doğrulaması başarısız”
Sebep: Kimlik doğrulama yöntemi uyumsuzluğu veya yanlış şifre.
Çözüm: /etc/postgresql/*/main/pg_hba.conf dosyasındaki kimlik doğrulama yöntemini kontrol edin ve kurulumunuzla eşleştiğinden emin olun.
Sorun: "sunucuya bağlanılamadı: Böyle bir dosya veya dizin yok"
Neden: PostgreSQL çalışmıyor veya soket yolu yanlış.
Çözüm:
sudo systemctl status postgresql
sudo systemctl start postgresqlPerformans Kriterleri
PostgreSQL’ün performans özelliklerini anlamak, donanım gereksinimleri ve yapılandırma ayarları hakkında bilinçli kararlar almanıza yardımcı olur. Aşağıdaki kıyaslamalar, Ubuntu üzerinde tipik iş yüklerini temsil etmektedir.
Donanım Yapılandırma Kıyaslamaları
pgbench ve standart TPC-B benzeri iş yükleri ile yapılan gerçek dünya testlerine dayanarak:
| Sunucu Yapılandırması | Bağlantılar | TPS (Okundu) | TPS (Yaz) | Sorgu Gecikmesi (ortalama) | Kullanım Durumu |
|---|---|---|---|---|---|
| 2 CPU/2GB RAM | 10 | 850 | 320 | 12ms | Geliştirme/Test |
| 2 CPU/4GB RAM | 25 | Bin Sekiz Yüz Kırk | 680 | 8ms | Küçük Üretim |
| 4 CPU/8GB RAM | 50 | Dört bin iki yüz | Bin dört yüz elli | 5ms | Orta Seviye Üretim |
| 8 CPU/16GB RAM | 100 | Dokuz bin sekiz yüz | Üç bin iki yüz | 3ms | Yüksek Trafikli Uygulamalar |
| 16 CPU/32GB RAM | 200 | 18.500 | Altı bin sekiz yüz | 2ms | Kurumsal/Analitik |
Notlar:
- TPS=Saniye Başına İşlem
- Varsayılan PostgreSQL 14 ayarları ile yapılan ve ardından optimize edilen kıyaslamalar
- Okuma/Yazma oranı: %70/%30 (tipik web uygulaması iş yükü)
- Tüm testler için kullanılan SSD depolama
PostgreSQL Sürüm Karşılaştırması
Ubuntu için bir PostgreSQL sürümü seçerken, performans, güvenilirlik ve uzun vadeli bakım açısından önemli olan iyileştirmeleri, destek yaşam döngülerini ve özellik setlerini anlamak çok önemlidir. Aşağıda, PostgreSQL’in son beş büyük sürümü arasında temel özellikler, performans geliştirmeleri ve kurumsal kullanılabilirlik odaklı ayrıntılı bir karşılaştırma bulabilirsiniz. Bu karşılaştırmalı özet, kuruluşların, BT profesyonellerinin ve veritabanı yöneticilerinin hem yeni kurulumlar hem de yükseltmeler için bilinçli kararlar almasına yardımcı olacak şekilde tasarlanmıştır.
| Özellik/Ölçüt | PostgreSQL 12 | PostgreSQL 13 | PostgreSQL 14 | PostgreSQL 15 | PostgreSQL 16 |
|---|---|---|---|---|---|
| Resmi Yayın Tarihi | Ekim 2019 | Eylül 2020 | Eylül 2021 | Ekim 2022 | Eylül 2023 |
| Paralel Sorgu Yürütme | Temel destek | Geliştirilmiş yetenekler | Daha fazla geliştirme, daha geniş destek | Belirgin şekilde gelişmiş | Yüksek derecede optimize edilmiş, minimum ek yük |
| B-Tree Dizin Performansı | Temel | Yaklaşık %15 kazanç | Yaklaşık %20 kazanç | Yaklaşık %25 kazanç | %30'a kadar kazanç |
| JSON/JSONB Sorgu Performansı | Çoğu kullanım durumu için uygun | Kayda değer gelişmeler | Önemli performans artışı | Mükemmel, üretime hazır | En son teknoloji performansı |
| Mantıksal Replikasyon Özellikleri | Temel çoğaltma | Gelişmiş seçenekler | Gelişmiş özellikler | DDL (Veri Tanımlama Dili) desteği (örneğin şema değişiklikleri) | Tam mantıksal çoğaltma paketi |
| Veri Sıkıştırma Seçenekleri | LZ4 | LZ4 | LZ4 ve ZSTD | LZ4 ve ZSTD | Geliştirilmiş ZSTD desteği ve ayarlama |
| MERGE İfadesi Kullanılabilirliği | Desteklenmiyor | Desteklenmiyor | Desteklenmiyor | Destekleniyor (standart SQL MERGE) | Desteklendi |
| VACUUM Performansı | Temel | Yaklaşık %10 daha hızlı | %20'ye kadar daha hızlı | %30'a kadar daha hızlı | %35'e kadar daha hızlı |
| Yazma Hızı | Temel | %8'e kadar daha hızlı | %15'e kadar daha hızlı | %22'ye kadar daha hızlı | %28'e kadar daha hızlı |
| Bağlantı Kaynağı Yükü | Yüksek | Azaltılmış | Düşük | Alt | Minimal (büyük ölçeklemeyi destekler) |
| Varsayılan Ubuntu Desteği | Evet | Evet | Evet (varsayılan paket) | Evet | Evet |
| Topluluk Desteği Sona Eriyor | Kasım 2024 | Kasım 2025 | Kasım 2026 | Kasım 2027 | Kasım 2028 |
Uzman Uygulama Rehberi:
Kritik öneme sahip üretim dağıtımları ve en son performans, güvenilirlik ve kurumsal özelliklerden faydalanmayı hedefleyen ortamlar için PostgreSQL 15 ve PostgreSQL 16 şiddetle tavsiye edilmektedir. Bu sürümler, paralel işlem desteğini, bağlantı yükünü azaltmayı, sağlam çoğaltmayı (şema değişikliği yayılımı dahil) ve geliştirilmiş veri sıkıştırmayı ileri düzeyde sunar. Özellikle PostgreSQL 16, en optimize sorgu yürütme ve yazma performansını sağlayarak, yoğun iş yükleri ve yüksek eşzamanlılık senaryoları için idealdir.
PostgreSQL 14 üzerinde mevcut sistemler için, işlemlere devam etmek hâlâ sağlam ve desteklenen bir seçenek olup, olgun ve stabil bir özellik setine sahiptir. Ancak, yeni kurulumlar veya büyük yükseltme döngüleri, son iyileştirmelere ve uzun vadeli bakım desteğine erişimi garanti etmek için PostgreSQL 15 veya 16'yı hedeflemelidir.
Bu karşılaştırma tablosu, resmi PostgreSQL sürüm notlarına, bağımsız performans kıyaslamalarına ve kurumsal kullanım modellerine dayanmaktadır. Ayrıntılı değişiklik günlükleri için her zaman PostgreSQL Sürüm Notlarını inceleyin ve üretim ortamına geçmeden önce yükseltme yollarını test ortamlarında doğrulayın.
Kimlik Doğrulama Yöntemleri Karşılaştırması
| Yöntem | Güvenlik Seviyesi | Performans | Kullanım Durumu | Ağ Desteği | Yapılandırma Karmaşıklığı |
|---|---|---|---|---|---|
| kimlik | Orta | Mükemmel | Yerel geliştirme, tek kullanıcı sistemleri | Yalnızca yerel | Düşük |
| akran | Orta | Mükemmel | Yerel soket bağlantıları, güvenilir ortamlar | Yalnızca yerel | Düşük |
| md5 | Düşük (Kullanımdan Kaldırıldı) | İyi | Eski sistemler (yeni kurulumlar için önerilmez) | Ağ | Düşük |
| scram-sha-256 | Yüksek | İyi | Üretim sistemleri, uzaktan erişim | Ağ | Orta |
| şifre | Düşük | İyi | Sadece test (düz metin - kaçının) | Ağ | Düşük |
| belge | Çok Yüksek | İyi | Yüksek güvenlikli ortamlar, işletmeler | Ağ | Yüksek |
| ldap | Yüksek | Orta | Kurumsal entegrasyon, merkezi kimlik doğrulama | Ağ | Yüksek |
| gss/kerberos | Çok Yüksek | Orta | Kurumsal ortamlar | Ağ | Çok Yüksek |
2025 En İyi Uygulama: Tüm üretim sistemleri için scram-sha-256 kullanın. ident ve peer sadece yerel geliştirme için saklayın.
Performans Üzerindeki Yapılandırma Etkisi
Test metodolojisi: 1000 eş zamanlı kullanıcı, karışık okuma/yazma iş yükü (60/40), 8 CPU/16GB RAM sunucu.
| Yapılandırma Senaryosu | İşlem/Saniye | CPU Kullanımı | Bellek Kullanımı | Notlar |
|---|---|---|---|---|
| Varsayılan Ayarlar | Üç bin iki yüz | 45% | 2,1 GB | Kutudan çıktığı gibi yapılandırma |
| Temel Ayar | Altı bin sekiz yüz | 62% | 4,5 GB | shared_buffers=4GB, effective_cache_size=12GB |
| Optimize Edilmiş | Dokuz bin dört yüz | 75% | 8,2 GB | + work_mem=32MB, maintenance_work_mem=512MB |
| Bağlantı Havuzuyla | 11.200 | 68% | 6,8 GB | + PgBouncer (bağlantı yükünü azaltır) |
| Tam Optimizasyon | 12.800 | 82% | 10,1 GB | + Asenkron G/Ç, kontrol noktası ayarlamaları, paralel çalışanlar |
Temel İçgörü: Temel ayarlamalar performansı iki katına çıkarabilir. Bağlantı havuzu, yüksek eşzamanlılık gerektiren işler için %15-20 oranında iyileşme sağlar.
Performans Optimizasyonu İpuçları
Bellek Yapılandırması
4GB ve üzeri RAM’e sahip sunucular için bu ayarları /etc/postgresql/*/main/postgresql.conf dosyasında optimize edin:
shared_buffers = 1GB
effective_cache_size = 3GB
work_mem = 16MB
maintenance_work_mem = 256MBBağlantı Havuzu
Üretimde bağlantı havuzlaması için PgBouncer kullanmayı düşünün:
sudo apt install pgbouncerİzleme
Sorgu istatistiklerini etkinleştir:
sudo -u postgres psql -c "CREATE EXTENSION IF NOT EXISTS pg_stat_statements;"Performans Ayarı: Bu ayarlar, belirli iş yükünüze ve sunucu kaynaklarınıza göre ayarlanmalıdır. Değişikliklerden sonra performans metriklerini izleyin. Beklenen performans artışları için yukarıdaki kıyaslamaları bir temel olarak kullanın.
Sıkça Sorulan Sorular (2025 Baskısı)
Ubuntu'da PostgreSQL'i apt kullanarak nasıl kurarım?
Çalıştır :
sudo apt update
sudo apt install postgresql postgresql-contribBu, 2025'teki çoğu uygulama için uygun olan, resmi Ubuntu depolarından Ubuntu sürümünüzde bulunan varsayılan PostgreSQL sürümünü yükler.
2025 yılında PostgreSQL'i en güncel desteklenen sürüme yükseltmek için önerilen yöntem nedir?
PostgreSQL'i yükseltmek için küçük güncellemelerde apt kullanın:
sudo apt update && sudo apt upgradeAna sürüm yükseltmeleri için (ör. 14'ten 15'e), yeni sürümü yükleyin ve pg_upgrade veya pg_dumpall yöntemini kullanın. Resmî PostgreSQL yükseltme belgeleri ve sürüm notları önemli referanslardır.
PostgreSQL hizmetini nasıl başlatır, durdurur, yeniden başlatır ve durumunu kontrol ederim?
sudo systemctl start postgresql # Start service
sudo systemctl stop postgresql # Stop service
sudo systemctl restart postgresql # Restart service
sudo systemctl status postgresql # Service status and logsÇok sürümlü ortamlar için, belirli kümeleri pg_ctlcluster ile yönetin.
PostgreSQL'e komut satırından veya uzak bir makineden nasıl erişebilirim?
Yerel erişim:
sudo -u postgres psqlUzaktan erişim:
/etc/postgresql/*/main/postgresql.confdosyasını düzenleyerek uzaktan bağlantıları etkinleştirin (listen_addresses=''*'') ve/etc/postgresql/*/main/pg_hba.confdosyasını ayarlayın. Ardından şu şekilde bağlanın:psql -h <server_ip> -U <username> -d <database>
2025 yılında Ubuntu üzerinde PostgreSQL’i güvence altına almak için en iyi uygulamalar nelerdir?
- Tüm veritabanı rolleri için güçlü parolalar uygulayın,
postgressüper kullanıcısı da dahil olmak üzere, zayıf veya varsayılan kimlik bilgilerini önlemek için parola yöneticileri veya uygulama politikaları kullanarak. - SCRAM-SHA-256 doğrulamasını benimseyin ve
password_encryption=scram-sha-256olarak ayarlayın. Bu modern şifreleme yöntemi, MD5'e göre çok daha üstündür ve 2025'te parola saldırılarına karşı daha güçlü bir direnç sağlar. - Ağ erişimini kısıtlayın,
ufwgibi bir güvenlik duvarı yapılandırarak, PostgreSQL portlarını belirli güvenilir IP adresleriyle sınırlayarak ve sunucuya olan tüm gereksiz dış bağlantıları engelleyerek. - Tüm istemci bağlantıları için SSL/TLS şifrelemesini etkinleştirin; güvenilir sertifikalar oluşturarak ve hem sunucu hem de istemciyi şifreli kanalları kullanacak şekilde yapılandırarak, ağda dinleme veya veri yakalama riskini önleyin.
- Yapılandırmaları güçlendirin, hem
pg_hba.confhem depostgresql.confdosyalarında en az ayrıcalıklı erişimi uygulayarak, yalnızca gerekli kullanıcıların, adreslerin ve yöntemlerin erişimine izin vererek saldırı yüzeyini daha da azaltın. - PostgreSQL ve ana işletim sistemini tam olarak güncel tutun; düzenli güvenlik güncellemelerini planlayarak ve bilinen güvenlik açıklarını yamayarak tüm güvenlik düzeltmelerinin mümkün olan en kısa sürede uygulanmasını sağlayın.
- Günlükleri izleyin ve denetimi etkinleştirin
pgauditgibi uzantılarla, olağandışı faaliyetleri veya olası güvenlik ihlallerini hızlıca tespit etmek için gelişmiş günlük kaydı, uyarı ve düzenli inceleme oluşturun.
2025 yılında PostgreSQL için yapay zekâ destekli/ilerlemiş izlemeyi nasıl etkinleştirebilirim?
pg_stat_statementsvepg_partmangibi uzantıları yükleyin.- Yapay zeka anomali tespiti ile Prometheus, Grafana gibi modern gözlemlenebilirlik araçları veya bulut tabanlı PostgreSQL izleme hizmetleriyle entegre olun.
- Yapay zekâ destekli sorgu optimizasyonu içgörülerini destekleyen araçlardan yararlanın.
Bir PostgreSQL veritabanını nasıl yedekler ve geri yüklerim?
Yedekleme :
pg_dump <database_name> > backup.sqlTam sunucu yedeklemesi için:
pg_dumpall > full_backup.sqlGeri Yükle :
psql <database_name> < backup.sqlBulut veya yönetilen örnekler için, mevcutsa yerleşik anlık görüntü özelliklerini kullanın.
2025'te PostgreSQL yönetimini nasıl otomatikleştirebilirim?
- Otomatik yedeklemeler ve bakım için systemd timer'ları veya
cronkullanın. - Otomatik sağlama ve ölçeklendirme için Ansible, Terraform veya yönetilen hizmetlerden yararlanın.
- Tahmine dayalı bakım ve otomatik anomali uyarıları için AI/ML araçlarını entegre edin.
Bir Ubuntu sunucusunda birden fazla PostgreSQL sürümünü güvenle çalıştırabilir miyim?
Evet. Her sürüm için farklı portlar ve veri dizinleri kullanın. Ubuntu'nun pg_createcluster aracı, yan yana kurulumları yönetmeye yardımcı olur. Uygulamaların doğru örneğe bağlandığından emin olun.
2025 dağıtımları için PostgreSQL ile MySQL/MariaDB arasındaki ana farklar nelerdir?
- PostgreSQL, gelişmiş SQL uyumluluğu, yerel JSONB desteği, güçlü indeksleme, daha zengin uzantı ekosistemi ve eşzamanlılık kontrolü (MVCC) sunar.
- MySQL/MariaDB, bazı okuma ağırlıklı iş yüklerinde performans avantajları sağlayabilir veya yeni başlayanlar için basitlik sunabilir.
- PostgreSQL, özellikleri ve ekosistemi nedeniyle 2025'te karmaşık veriler, coğrafi veri çalışmaları, analizler ve kurumsal ölçekli iş yükleri için tercih edilmektedir.
Yüksek trafikli PostgreSQL iş yükleri için performansı nasıl etkinleştirir ve optimize ederim?
postgresql.confdosyasında bellek parametrelerini ayarlayın:shared_buffers`, `effective_cache_size`, `work_mem`PgBouncer veya Pgpool-II kullanarak bağlantı havuzu oluşturun.
Paralel sorgu özelliklerinden ve tablo bölümlendirmesinden yararlanın.
pg_stat_statements'i etkinleştirin ve izleyin.Yapay zekâ destekli sorgu optimizasyonu için PostgreSQL 15+ eklentilerini veya yapay zekâ analizine sahip harici araçları kullanın.
2025 yılında PostgreSQL'i yaygın yapay zeka kaynaklı saldırı vektörlerinden nasıl koruyabilirim?
- Güvenlik yamalarını derhal uygulayın.
- SQL sorgularında anomali tespiti için yapay zekâ destekli güvenlik araçlarını kullanın.
- Süper kullanıcı ve yönetici ayrıcalıklarını kısıtlayın.
- SSL/TLS'i etkinleştir ve her bağlantı için kimlik doğrulamasını zorunlu kıl.
- Otomatik/toplu sorgu desenlerini izleyin ve uyarı verin.
PostgreSQL verilerini bulut tabanlı yönetilen hizmetlere/servislerden nasıl taşırım?
- Mantıksal geçişler için
pg_dump/pg_restoreveyapg_dumpallkullanın. - Büyük veritabanları için, minimum kesinti süresi sağlamak amacıyla yerleşik yönetilen servis taşıma araçlarını veya akışlı replike özelliklerini kullanın.
- Taşıma sırasında ağ güvenliğini sağlayın (IP beyaz listesi, VPN veya SSH tünelleme).
2025'te Ubuntu kullanıcıları için PostgreSQL 15/16'daki hangi yeni özellikler önemlidir?
- Paralel sorgular ve vakumlama için geliştirilmiş performans.
- MERGE SQL komutu upsert işlemleri için.
- Mantıksal çoğaltma iyileştirmeleri (sütun listeleri, DDL desteği).
- Büyük veri setleri için sıkıştırma iyileştirmeleri.
- Tüm detaylar için PostgreSQL sürüm notlarını kontrol edin.
Daha fazla cevap veya ayrıntılı sorun giderme ipuçları için PostgreSQL Belgelerine veya saygın güvenlik ve yönetim kaynaklarına başvurun.
Sonuç
Bu hızlı başlangıç kılavuzunu tamamlayarak Ubuntu sunucunuza PostgreSQL'i başarıyla kurmuş ve yapılandırmış oldunuz. Bu kurulum, verilerinizi güvenle yönetebilmeniz için gerekli güvenlik uygulamaları, sorun giderme adımları ve performans artırıcı önerilerle birlikte, ilişkisel veritabanlarını yönetmek için güvenli ve sağlam bir temel sunar.
Üretime veya daha geniş ölçekli dağıtımlara geçerken, ortamınızı daha da güçlendirdiğinizden emin olun—gelişmiş güvenlik sertleştirmelerini uygulayın, düzenli yedeklemeleri otomatikleştirin, izleme ve uyarı sistemleri kurun ve sunucu ile veritabanı yazılımlarınızı sık sık güncelleyin. Bu önlemler, PostgreSQL kurulumunuzu her durumda dayanıklı ve yüksek performanslı tutmanıza yardımcı olacaktır.
Becerilerinizi geliştirmek ve PostgreSQL hakkında anlayışınızı derinleştirmek için—ister geliştirme, ister yönetim, isterse sorun giderme amacıyla—şu kapsamlı eğitimler ve kaynakları inceleyin:
- İlişkisel veritabanı yönetim sistemlerinin karşılaştırması
- SQL ile sorgu çalıştırma pratiği yapın
- Ubuntu'ya PostgreSQL Nasıl Kurulur ve Kullanılır
Linux-Console.net Topluluğu ile öğrenme sürecine katıldığınız için teşekkürler.
