Selamlar;
Log databasesine giriyoruz.. Ardından Query>> New Query diyoruz
Kod:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
Yukardaki Kodları ekliyoruz ve Sol Ustte Run Seçeneğini Tıklıyoruz.
Run dedikten sonra kapatıyoruz ve Üstte Event Bolumune Tıklıyoruz
karşımıza gelen ekranda
Kod:
truncate table log
yazıyoruz
Ardından Schedule Sekmesine Gelip Zamanlamayı ayarlıyalım
Ben 10 saniyede bir log tablosunu temizlemsini istedim siz nasıl yaparsanız yapın.
NOT: Diğer Log Tabloları için sizde yeni zamanlanmış görevler ekleyebilirsiniz. Yorum Atmayı Unutmayınız.
[DEV PAYLASIM] Otomatik Log Temizleme Kuralı Oluşturma [RESİMLİ ANLATIM] MySQL
Metin2 sunucularında çalışan geliştiriciler veya sistem yöneticileri olarak logların kontrolü ve düzeni çok önemlidir. Özellikle yoğun oyuncu trafiği olan Metin2 sunucularında loglar hızla büyüyebilir ve disk alanını doldurabilir. Bu durumda manuel olarak logları temizlemek hem zaman kaybı hem de sistemsel risk taşır. Bu nedenle otomatik log temizleme kuralları oluşturmak büyük kolaylık sağlar. Bu yazıda, MySQL veritabanında otomatik log temizleme kuralı nasıl oluşturulur detaylıca anlatılacaktır.
MySQL Event Scheduler Nedir?
MySQL Event Scheduler, belirlenen zamanlarda otomatik olarak SQL komutlarını çalıştırmaya yarayan bir özelliktir. Bu özellik sayesinde log tablolarında belirli aralıklarla silme işlemleri gerçekleştirebiliriz. Örneğin, 7 gün önceki log kayıtlarını otomatik silmek gibi.
Event Scheduler Aktif Edilmesi
Öncelikle event scheduler özelliğinin aktif olduğundan emin olmalıyız. Komut satırında şu sorguyu çalıştırarak kontrol edebiliriz:
Eğer değer OFF ise şu komutla aktif edebilirsiniz:
Otomatik Log Temizleme Kuralı Oluşturma
Şimdi örnek bir log tablosu üzerinden gidelim. Diyelim ki 'game_log' adında bir tablomuz var ve bu tablonun 'log_time' adında bir zaman alanı var. Bu alana göre 7 gün önceki kayıtları silmek istiyoruz.
Komut Açıklaması:
- CREATE EVENT IF NOT EXISTS: Eğer aynı isimde bir event yoksa oluşturur.
- ON SCHEDULE EVERY 1 DAY: Bu event her gün çalışır.
- DO DELETE FROM: Belirtilen koşula göre satırları siler.
- WHERE log_time < DATE_SUB(NOW(), INTERVAL 7 DAY): 7 günden eski olan kayıtları siler.
Ekstra Güvenlik ve Performans Önerileri
1. Backup Alınması: Her zaman olduğu gibi, veritabanında işlem yaparken yedek alınması çok önemlidir.
2. Test Ortamında Deneme: Gerçek ortamda kullanmadan önce test veritabanında denemek iyi olur.
3. Log Kayıtlarını Arşivleme: Silmeden önce eski logları ayrı bir tabloya taşıyarak arşivleme yapabilirsiniz.
Event Listeleme ve Silme
Oluşturduğunuz eventleri listelemek için:
Bir eventi silmek için ise:
Sonuç
Otomatik log temizleme kuralları, Metin2 sunucularının verimli ve sorunsuz çalışmasını sağlamak için oldukça faydalıdır. MySQL Event Scheduler kullanarak logları düzenli olarak temizlemek, disk kullanımını optimize eder ve performansı artırır. Bu yapılandırmayı doğru şekilde uygulayarak sunucu yönetimini kolaylaştırabilirsiniz. Daha fazla Metin2 geliştirici rehberi için Metin2Lobby sayfamızı takip etmeyi unutmayın!
[DEV SHARE] Creating Automatic Log Cleanup Rule [WITH PICTURES] MySQL
As developers or system administrators running Metin2 servers, controlling and organizing logs is very important. Especially on Metin2 servers with high player traffic, logs can grow rapidly and fill up disk space. In such cases, manually cleaning logs is both time-consuming and poses systemic risks. Therefore, creating automatic log cleanup rules brings great convenience. In this article, we will explain in detail how to create an automatic log cleanup rule in the MySQL database.
What is MySQL Event Scheduler?
MySQL Event Scheduler is a feature that automatically executes SQL commands at specified times. With this feature, we can perform deletion operations periodically in log tables, for example, automatically deleting log entries older than 7 days.
Activating Event Scheduler
First, ensure that the event scheduler feature is active. You can check this by running the following query in the command line:
If the value is OFF, activate it with the following command:
Creating an Automatic Log Cleanup Rule
Let's proceed with an example log table. Assume we have a table named 'game_log', and it has a time field called 'log_time'. We want to delete records older than 7 days based on this field.
Command Explanation:
- CREATE EVENT IF NOT EXISTS: Creates the event if no event with the same name exists.
- ON SCHEDULE EVERY 1 DAY: This event runs every day.
- DO DELETE FROM: Deletes rows matching the specified condition.
- WHERE log_time < DATE_SUB(NOW(), INTERVAL 7 DAY): Deletes records older than 7 days.
Additional Security and Performance Suggestions
1. Take Backups: As always, taking backups before making changes to the database is crucial.
2. Test in a Test Environment: It’s good practice to test before using in production environments.
3. Archive Log Records: Before deletion, you can archive old logs into a separate table.
Listing and Dropping Events
To list created events:
To drop an event:
Conclusion
Automatic log cleanup rules are highly beneficial for ensuring efficient and trouble-free operation of Metin2 servers. By using MySQL Event Scheduler to regularly clean logs, you can optimize disk usage and improve performance. By correctly implementing this configuration, you can ease server management. Do not forget to follow our page Metin2Lobby for more Metin2 developer guides!
Log databasesine giriyoruz.. Ardından Query>> New Query diyoruz
Kod:
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
Yukardaki Kodları ekliyoruz ve Sol Ustte Run Seçeneğini Tıklıyoruz.
Run dedikten sonra kapatıyoruz ve Üstte Event Bolumune Tıklıyoruz
karşımıza gelen ekranda
Kod:
truncate table log
yazıyoruz
Ardından Schedule Sekmesine Gelip Zamanlamayı ayarlıyalım
Ben 10 saniyede bir log tablosunu temizlemsini istedim siz nasıl yaparsanız yapın.
NOT: Diğer Log Tabloları için sizde yeni zamanlanmış görevler ekleyebilirsiniz. Yorum Atmayı Unutmayınız.
[DEV PAYLASIM] Otomatik Log Temizleme Kuralı Oluşturma [RESİMLİ ANLATIM] MySQL
Metin2 sunucularında çalışan geliştiriciler veya sistem yöneticileri olarak logların kontrolü ve düzeni çok önemlidir. Özellikle yoğun oyuncu trafiği olan Metin2 sunucularında loglar hızla büyüyebilir ve disk alanını doldurabilir. Bu durumda manuel olarak logları temizlemek hem zaman kaybı hem de sistemsel risk taşır. Bu nedenle otomatik log temizleme kuralları oluşturmak büyük kolaylık sağlar. Bu yazıda, MySQL veritabanında otomatik log temizleme kuralı nasıl oluşturulur detaylıca anlatılacaktır.
MySQL Event Scheduler Nedir?
MySQL Event Scheduler, belirlenen zamanlarda otomatik olarak SQL komutlarını çalıştırmaya yarayan bir özelliktir. Bu özellik sayesinde log tablolarında belirli aralıklarla silme işlemleri gerçekleştirebiliriz. Örneğin, 7 gün önceki log kayıtlarını otomatik silmek gibi.
Event Scheduler Aktif Edilmesi
Öncelikle event scheduler özelliğinin aktif olduğundan emin olmalıyız. Komut satırında şu sorguyu çalıştırarak kontrol edebiliriz:
Kod:
[COLOR=#9365b8]SHOW VARIABLES LIKE 'event_scheduler';[/COLOR]
Eğer değer OFF ise şu komutla aktif edebilirsiniz:
Kod:
[COLOR=#9365b8]SET GLOBAL event_scheduler = ON;[/COLOR]
Otomatik Log Temizleme Kuralı Oluşturma
Şimdi örnek bir log tablosu üzerinden gidelim. Diyelim ki 'game_log' adında bir tablomuz var ve bu tablonun 'log_time' adında bir zaman alanı var. Bu alana göre 7 gün önceki kayıtları silmek istiyoruz.
Kod:
[COLOR=#9365b8]CREATE EVENT IF NOT EXISTS clean_old_logs[BR][/BR]ON SCHEDULE EVERY 1 DAY[BR][/BR]DO[BR][/BR]DELETE FROM game_log WHERE log_time < DATE_SUB(NOW(), INTERVAL 7 DAY);[/COLOR]
Komut Açıklaması:
- CREATE EVENT IF NOT EXISTS: Eğer aynı isimde bir event yoksa oluşturur.
- ON SCHEDULE EVERY 1 DAY: Bu event her gün çalışır.
- DO DELETE FROM: Belirtilen koşula göre satırları siler.
- WHERE log_time < DATE_SUB(NOW(), INTERVAL 7 DAY): 7 günden eski olan kayıtları siler.
Ekstra Güvenlik ve Performans Önerileri
1. Backup Alınması: Her zaman olduğu gibi, veritabanında işlem yaparken yedek alınması çok önemlidir.
2. Test Ortamında Deneme: Gerçek ortamda kullanmadan önce test veritabanında denemek iyi olur.
3. Log Kayıtlarını Arşivleme: Silmeden önce eski logları ayrı bir tabloya taşıyarak arşivleme yapabilirsiniz.
Event Listeleme ve Silme
Oluşturduğunuz eventleri listelemek için:
Kod:
[COLOR=#9365b8]SHOW EVENTS;[/COLOR]
Bir eventi silmek için ise:
Kod:
[COLOR=#9365b8]DROP EVENT IF EXISTS clean_old_logs;[/COLOR]
Sonuç
Otomatik log temizleme kuralları, Metin2 sunucularının verimli ve sorunsuz çalışmasını sağlamak için oldukça faydalıdır. MySQL Event Scheduler kullanarak logları düzenli olarak temizlemek, disk kullanımını optimize eder ve performansı artırır. Bu yapılandırmayı doğru şekilde uygulayarak sunucu yönetimini kolaylaştırabilirsiniz. Daha fazla Metin2 geliştirici rehberi için Metin2Lobby sayfamızı takip etmeyi unutmayın!
[DEV SHARE] Creating Automatic Log Cleanup Rule [WITH PICTURES] MySQL
As developers or system administrators running Metin2 servers, controlling and organizing logs is very important. Especially on Metin2 servers with high player traffic, logs can grow rapidly and fill up disk space. In such cases, manually cleaning logs is both time-consuming and poses systemic risks. Therefore, creating automatic log cleanup rules brings great convenience. In this article, we will explain in detail how to create an automatic log cleanup rule in the MySQL database.
What is MySQL Event Scheduler?
MySQL Event Scheduler is a feature that automatically executes SQL commands at specified times. With this feature, we can perform deletion operations periodically in log tables, for example, automatically deleting log entries older than 7 days.
Activating Event Scheduler
First, ensure that the event scheduler feature is active. You can check this by running the following query in the command line:
Kod:
[COLOR=#9365b8]SHOW VARIABLES LIKE 'event_scheduler';[/COLOR]
If the value is OFF, activate it with the following command:
Kod:
[COLOR=#9365b8]SET GLOBAL event_scheduler = ON;[/COLOR]
Creating an Automatic Log Cleanup Rule
Let's proceed with an example log table. Assume we have a table named 'game_log', and it has a time field called 'log_time'. We want to delete records older than 7 days based on this field.
Kod:
[COLOR=#9365b8]CREATE EVENT IF NOT EXISTS clean_old_logs[BR][/BR]ON SCHEDULE EVERY 1 DAY[BR][/BR]DO[BR][/BR]DELETE FROM game_log WHERE log_time < DATE_SUB(NOW(), INTERVAL 7 DAY);[/COLOR]
Command Explanation:
- CREATE EVENT IF NOT EXISTS: Creates the event if no event with the same name exists.
- ON SCHEDULE EVERY 1 DAY: This event runs every day.
- DO DELETE FROM: Deletes rows matching the specified condition.
- WHERE log_time < DATE_SUB(NOW(), INTERVAL 7 DAY): Deletes records older than 7 days.
Additional Security and Performance Suggestions
1. Take Backups: As always, taking backups before making changes to the database is crucial.
2. Test in a Test Environment: It’s good practice to test before using in production environments.
3. Archive Log Records: Before deletion, you can archive old logs into a separate table.
Listing and Dropping Events
To list created events:
Kod:
[COLOR=#9365b8]SHOW EVENTS;[/COLOR]
To drop an event:
Kod:
[COLOR=#9365b8]DROP EVENT IF EXISTS clean_old_logs;[/COLOR]
Conclusion
Automatic log cleanup rules are highly beneficial for ensuring efficient and trouble-free operation of Metin2 servers. By using MySQL Event Scheduler to regularly clean logs, you can optimize disk usage and improve performance. By correctly implementing this configuration, you can ease server management. Do not forget to follow our page Metin2Lobby for more Metin2 developer guides!
