Konuyu Açan
#1
Konfigurasyon ve performans açısından MariaDB’de binlogların yönetimi kritik öneme sahiptir. Binloglar, veri bütünlüğü ve replikasyon süreçleri için vazgeçilmez olsa da, süre aşımı veya gereksiz dosyaların birikimi disk alanı sorunlarına yol açabilir. Bu nedenle, otomatik silme ve saklama politikası uygulamak ideal çözümlerden biridir.
Genellikle, MariaDB’de binlogların belirli bir süre veya dosya sayısına göre otomatik silinmesi için birkaç yöntem kullanılabilir. En yaygın olanı, MySQL/MariaDB’nin kendi yapılandırma parametreleri ile sınırlama yapmaktır. Ancak, daha gelişmiş kontrol ve otomasyon için zaman tabanlı scriptler yazmak gerekebilir.
Örneğin, aşağıdaki bash script, belirli bir süre (örneğin 7 gün) öncesine ait binlog dosyalarını silmek için kullanılabilir:
Bu script, belirli bir dizinde (örneğin /var/lib/mysql) bulunan ve isimleri ‘mysql-bin.*’ olan dosyaları, dosyanın son değiştirilme tarihi 7 günden eskiyse siler. Bu scripti cron ile düzenli çalıştırmak, otomatik saklama sağlar.
Daha gelişmiş kontrol için, MariaDB’nin kendi yapılandırma parametreleri kullanılabilir:
Örneğin, my.cnf dosyanıza aşağıdaki satırları ekleyebilirsiniz:
Bu ayar, binlogların 7 günden sonra otomatik silinmesini sağlar ve her binlog’un boyutunu 100MB ile sınırlar. Bu, genellikle en uygun ve güvenli yöntemdir.
Ancak, bazı durumlarda, belirli koşullarda veya özel ihtiyaçlarda, yukarıdaki otomasyonlar yetersiz kalabilir. Bu durumda, scriptleri ve yapılandırma ayarlarını bir arada kullanmak en iyi sonucu verir.
Sizlerin de deneyimlerini, önerilerini veya kullanmakta olduğunuz farklı yöntemleri paylaşmanızı bekliyorum. Bu alanda karşılaştığınız sorunlar veya çözümleriniz nelerdir?
Genellikle, MariaDB’de binlogların belirli bir süre veya dosya sayısına göre otomatik silinmesi için birkaç yöntem kullanılabilir. En yaygın olanı, MySQL/MariaDB’nin kendi yapılandırma parametreleri ile sınırlama yapmaktır. Ancak, daha gelişmiş kontrol ve otomasyon için zaman tabanlı scriptler yazmak gerekebilir.
Örneğin, aşağıdaki bash script, belirli bir süre (örneğin 7 gün) öncesine ait binlog dosyalarını silmek için kullanılabilir:
KOD
12345678910
#!/bin/bash
[b]Binlog dosyalarını belirli bir süre öncesine silmek için script[/b]
[b]7 gün öncesine ait dosyaları siler[/b]
LOG_DIR="/var/lib/mysql"
DAYS_OLD=7
find "$LOG_DIR" -name 'mysql-bin.*' -type f -mtime +$DAYS_OLD -exec rm -f {} \;
echo "7 günden eski binlog dosyaları silindi."
Bu script, belirli bir dizinde (örneğin /var/lib/mysql) bulunan ve isimleri ‘mysql-bin.*’ olan dosyaları, dosyanın son değiştirilme tarihi 7 günden eskiyse siler. Bu scripti cron ile düzenli çalıştırmak, otomatik saklama sağlar.
Daha gelişmiş kontrol için, MariaDB’nin kendi yapılandırma parametreleri kullanılabilir:
- expire_logs_days: Binlog’ların otomatik silinme süresi (gün cinsinden)
- max_binlog_size: Her binlog dosyasının maksimum boyutu
Örneğin, my.cnf dosyanıza aşağıdaki satırları ekleyebilirsiniz:
KOD
1234
[mysqld]
expire_logs_days = 7
max_binlog_size = 100M
Bu ayar, binlogların 7 günden sonra otomatik silinmesini sağlar ve her binlog’un boyutunu 100MB ile sınırlar. Bu, genellikle en uygun ve güvenli yöntemdir.
Ancak, bazı durumlarda, belirli koşullarda veya özel ihtiyaçlarda, yukarıdaki otomasyonlar yetersiz kalabilir. Bu durumda, scriptleri ve yapılandırma ayarlarını bir arada kullanmak en iyi sonucu verir.
Sizlerin de deneyimlerini, önerilerini veya kullanmakta olduğunuz farklı yöntemleri paylaşmanızı bekliyorum. Bu alanda karşılaştığınız sorunlar veya çözümleriniz nelerdir?
