Zamanlanmış Görevler

Crontab

Postgresql’in gömülü gelen bir zamanlayıcısı (scheduler) bulunmadığı için bu ihtiyaçpg_cron ve pgagent eklentileri (extension) ile ya da işletim sistemi seviyesindecrontab ile çözülmektedir. Çalıştırılacak SQL, fonksiyon prosedur vb. kodlar linux bash script içerisine yazılıp linuxişletim sisteminin gömülü zamanlayıcısı crontab ile zamanlanabilir. Örnek Script vim /var/lib/postgresql/scripts/instest.sh chmod +x /var/lib/postgresql/scripts/instest.sh ile çalıştırma hakkı verilmelidir. Not: insert işleminin hatalı Crontab

pg_cron

pg_cron kullanımı unix/linux sistemlerindeki cron ile aynı mantığa sahiptir.15 03 * * * → Her gece 03:15 anlamındadır. Önce çalışan postgresql sürümü kontrol edilir ve pg_cron uygun versiyonu kurulur.Veritabanı ayarlarında shared_preload_libraries ayarı yapılır, restart edilir veextension oluşturulur.Eklentiyle (extension) birlikte cron adında bir schema gelir. Cron schema’sının cron vejob_run_details tablolarından zamanlanmış görevlerle ilgili detaylar görülebilir. Ayarlar pg_cron

Pgagent

postgres client yazılımı olan pgadminin eklentisidir (extension) . Postgresqlrepositorilerinden apt ile kurulumu yapıldıktan sonra veritabanlarında da extensionoluşturulmalıdır. istemci (client) makinede ; Pgadmin ile postgresql veritabanına bağlanılır. Tablespaces tabının altına pgAgent Jobstabı gelecektir. Örnek testdb’ye bağlanıp test tablosu oluşturulur ve pgagent ile düzenli insert işlemiyapılması sağlanır.Not: pg_hba.conf dosyasına aşağıdaki satırı eklemek gerekerebilir.host testdb postgres localhost trust Pgagent