Mysql Activity Log
-
Bir sürü client doğrudan database'e bağlanıyor. Neden arada layer-tier yok diye sorabilirsiniz ama sormayın.
Bu slow_log'u aktif ettim mysql'de. Her sorguyu oraya yazıyor sağolsun. Yapmaya çalıştığım şey, buradaki sorgulardan anlam çıkarıp kullanıcı aktivitesi olarak ayrı bir tabloya giriş yaptırmak. Arada katman olmayınca bu olayı tamamen mysql üzerinden çözmem gerekiyor.
Atıyorum log'a şöyle bir sorgu geldi; insert into mummy set baby_gender='female'; Ben bu sorguyu görünce (nasıl görebilirim?) gidip activity tablosuna anne tablosundaki bebeğin cinsiyeti kız olacakmış diye yazıcam. Sonra client side daki arkadaşlar bunları görecek.
Çok fazla ve değişken tipte client olduğu için onların kodlarını değiştiremiyorum, işi mysql kısmında halletmem gerekiyor. mysql tarafında da client tan tek alabildiğim bir sorgu. Bu sorguyu anlamlandırıp tabloya yazma peşindeyim.
Fakat gelen sorgu otomatik kaydolduktan sonra slow_log'a, ben nasıl tetikleyebilirim diğer tabloya yazacağını ? Ya da bir .bat dosyası çalıştırıp poll mu etmeliyim durmadan slow_log'u ? Ama onu poll etmeye başladığım anda her poll'umu da logluyor.. Acaba database bazlı log alabilir miyim ?
Bir de bunu her 10 saniyede bi kontrol etsem, sonra varsa şöyle böyle yap desem o .bat dosyasına, bir sürü iş yükü binecek, performans nolur acaba ?
Bu işi mysql tarafında nasıl halledebiliriz, alternatif çözümlere açığım.. En basit haliyle activity log çıkartmaya çalışıyorum gelen sorguları anlamlandırıcam. client-side'a hiç kod yazamadığımı varsayın.
-
-
evet trigger kullanıp istedigin querylere göre istedigin tabloya otomatik olarak yazdırabilirsin
FCN tarafından 26/Mar/18 15:27 tarihinde düzenlenmiştir
