Açılış Parametre Dosyası

PostgreSQL’in açılış parametre dosyası olan postgresql.conf, sunucunun genel davranışını, performansını ve bağlantı yapılandırmalarını kontrol eden en önemli dosyalardan biridir. Bu dosya, PostgreSQL instance’ının çalışma sırasında nasıl davranacağını belirler ve sistem yöneticileri için önemli bir yapılandırma aracıdır. Bu makalede, postgresql.conf dosyasının temel bölümlerini ve kritik parametrelerini detaylıca ele alacağız.

postgresql.conf Dosyasının Bulunduğu Yer

postgresql.conf dosyasının varsayılan konumu PostgreSQL’in kurulum yöntemine ve işletim sistemine bağlıdır. Bazı yaygın yollar şunlardır:

• Linux: /etc/postgresql/<version>/main/postgresql.conf veya /var/lib/pgsql/<version>/data/postgresql.conf
• Windows: C:\Program Files\PostgreSQL\<version>\data\postgresql.conf

Dosyanın tam konumu PostgreSQL başlatma komutunda veya show config_file; SQL komutu ile öğrenilebilir:

Show config_file;

Dosyanın Genel Yapısı

postgresql.conf dosyası, kategorilere ayrılmış parametrelerden oluşur. Parametreler genellikle şu kategorilere ayrılır:

1. Bağlantı Ayarları (Connection Settings)
2. Bellek Yönetimi (Memory Management)
3. Loglama ve Hata Yönetimi (Logging and Debugging)
4. Yedekleme ve Kurtarma (Backup and Recovery)
5. Performans Ayarları (Performance Settings)

Her parametre, anahtar-değer çiftleri olarak yazılır ve açıklamalar için # işareti kullanılır.

1. Bağlantı Ayarları (Connection Settings)

PostgreSQL’in ağ üzerinden nasıl bağlanacağını ve hangi istemcilere izin vereceğini belirler.

• listen_addresses:
Sunucunun hangi IP adreslerinde bağlantı dinleyeceğini belirtir.
• Sadece yerel bağlantılar:

listen_addresses = ‘localhost’

• Tüm ağ arabirimlerinden bağlantıya izin vermek (dikkatli kullanılmalıdır):

listen_addresses = ‘*’

• port:
PostgreSQL’in dinlediği TCP/IP port numarasıdır. Varsayılan değer 5432’dir.

port = 5432

• max_connections:
Sunucunun aynı anda kabul edebileceği maksimum istemci bağlantı sayısını belirler.

max_connections = 100

2. Bellek Yönetimi (Memory Management)

PostgreSQL’in bellek kullanımı, sistem performansı açısından kritik öneme sahiptir.

• shared_buffers:
PostgreSQL tarafından paylaşılan bellek havuzu için ayrılan miktardır. Genellikle toplam sistem belleğinin %25’i kadar önerilir.

shared_buffers = 128MB

• work_mem:
Sorguların sıralama ve birleştirme işlemleri için kullanacağı bellek miktarıdır. Daha büyük değerler performansı artırabilir.

work_mem = 4MB

• maintenance_work_mem:
Bakım işlemleri (ör. VACUUM ve CREATE INDEX) sırasında kullanılacak bellek miktarı.

maintenance_work_mem = 64MB

3. Loglama ve Hata Yönetimi (Logging and Debugging)

Sunucunun hata ayıklama ve günlükleme davranışlarını kontrol eder.

• logging_collector:
Sunucunun logları dosyalara toplamasını sağlar.

logging_collector = on

• log_directory:
Günlük dosyalarının kaydedileceği dizini belirtir.

log_directory = ‘pg_log’

• log_min_messages:
Loglanacak minimum mesaj seviyesini belirler (ör. DEBUG, INFO, NOTICE, WARNING, ERROR).

log_min_messages = WARNING

4. Performans Ayarları (Performance Settings)

Performansı artırmak için optimize edilebilecek ayarlar.

• effective_cache_size:
PostgreSQL’in kullanabileceği işletim sistemi disk önbelleği miktarını tahmin eder.

effective_cache_size = 4GB

• random_page_cost:
Rastgele disk erişimi maliyetini tahmin eder. SSD diskler için düşük değerlere ayarlanabilir.

random_page_cost = 1.1

• autovacuum:
Veritabanını düzenli olarak temizleyen otomatik vakumlamayı etkinleştirir.

autovacuum = on

5. Yedekleme ve Kurtarma (Backup and Recovery)

PostgreSQL’in yedekleme ve kurtarma sırasında nasıl davranacağını kontrol eder.

• archive_mode:
WAL (Write-Ahead Logging) arşivlemeyi etkinleştirir.

archive_mode = on

• archive_command:
WAL dosyalarının nasıl arşivleneceğini belirtir. Örneğin:

archive_command = ‘cp %p /path_to_archive/%f’

• max_wal_size:
WAL dosyalarının maksimum boyutu.

max_wal_size = 1GB

Dosya Değişikliklerinin Uygulanması

Yapılan değişiklikler, PostgreSQL instance’ına otomatik olarak uygulanmaz. Değişiklikleri aktif hale getirmek için sunucu yeniden başlatılmalıdır:

pg_ctl restart

Bazı parametreler için sunucu yeniden başlatmaya gerek yoktur. Bu parametreler için aşağıdaki SQL komutu kullanılabilir:

SELECT pg_reload_conf();

Sonuç

postgresql.conf dosyası, PostgreSQL instance’larının davranışını kontrol etmenin temel yoludur. Parametrelerin doğru şekilde ayarlanması, performans, güvenlik ve ölçeklenebilirlik açısından büyük fark yaratabilir. Bu dosyada yapılan her değişiklik, sistemin genel dengesini etkileyebileceği için dikkatle planlanmalıdır.

Hasanipek.org

 

Bir yanıt yazın

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