PostgreSQL veritabanını büyük sistemlerde yük altında kullanmaya başlayınca performansını izlemek ve tuning yapmak kaçınılmazdır. Ancak, PostgreSQL’de performansı izlemek için standart kurulum ile gelen özellikler yeterli değildir. Oracle’de bulunan AWR raporları gibi, sistemi en ince detayına kadar incelemek gerekebilir. Bu ihtiyaç için PostgreSQL için geliştirilen pg_profile extension’ı bulunmaktadır. Veritabanı iş yüklerini ve profilini çıkarabilmek için pg_profile aynı Oracle’de olduğu gibi snapshot’lar ve bu snapshot’lara üzerinden raporlar sunar. Bu yazıda pg_profile’ı nasıl kurup rapor alabileceğimizden bahsedeceğiz. Başka bir yazıda ise rapor incelemesi yapıp, olası tuning ihtimallerini değerlendireceğiz. Extension’a ait github sayfası : pg_profile pg_profile extension’ı kütüphane dosyası kullanmaz, bu yüzeden $PGHOME/lib altında *.so dosyası bulunmaz. Sadece veritabanında extension oluşturularak kullanılabilir. Github sayfasından PostgreSQL sürümüne uygun extension indirilerek sunucuya kopyalanır, sonrasında aşağıdaki gibi kurulur. sudo tar xzf pg_profile–4.2.tar.gz –directory $(pg_config –sharedir)/extension Extension oluşturma: postgres=# CREATE EXTENSION dblink; postgres=# CREATE EXTENSION pg_stat_statements; postgres=# CREATE SCHEMA profile; postgres=# CREATE EXTENSION pg_profile SCHEMA profile; Kullanmaya hazırız. […]
PostgreSQL veritabanında veritabanı değişikliklerinin yazıldığı dosyalara WAL (Write Ahead Log) ismi verilir. Birçok veritabanında farklı adlarda da olsa aynı yapı bulunmaktadır. Veritabanında yazma yükü fazla ise WAL dosyaları çok sık olarak yeni dosyaya geçmektedir (WAL Switch). Bu durum veritabanı performansına olumsuz etki yapar. PostgreSQL veritabanında WAL dosya büyüklükleri varsayılan olarak 16M olarak tanımlanmıştır. Bu günümüz iş yüklerini dikkate aldığımızda hayli küçük kalmaktadır. Bu yazıda WAL dosya boyutlarını nasıl değiştirebileceğimizden bahsedeceğiz.
Bu yazıda PostgreSQL’de WAL dosyalarından, veritabanında çalıştırılmış SQL’leri bind değerleri ile birlikte nasıl elde edebileceğimizi inceleyeceğiz. Veritabanında yapılan yanlış DELETE, UPDATE, INSERT işlemleri bu yöntem ile WAL dosyalarından çıkarılarak, hatalı işlemler geri alınabilirler. Logical Decoding özelliği PostgreSQL’e 11 sürümü ile gelmiştir.