n8n veritabanı neden büyür: Execution verilerini temizleme

n8n veritabanının executionlar nedeniyle neden büyüdüğü ve EXECUTIONS_DATA_PRUNE, saklama süresi ile limitlerin veri miktarını nasıl otomatik olarak sınırladığı.

n8n her workflow çalıştırmasında execution verilerini kendi veritabanında saklar ve temizlik yapılmazsa bu veritabanı, aktif workflowlarda genellikle hızla birkaç gigabayta ulaşır. Çözümün adı Execution Data Pruning: n8n, tamamlanmış executionları, belirlenen saat sayısından daha eski olduklarında veya kaydedilen toplam execution sayısı bir limiti aştığında otomatik olarak siler. Bu davranış, kendi barındırılan n8n örneklerinde doğrudan yapılandırmada ayarlanan EXECUTIONS_DATA_PRUNE, EXECUTIONS_DATA_MAX_AGE ve EXECUTIONS_DATA_PRUNE_MAX_COUNT gibi ortam değişkenleri üzerinden kontrol edilir. Güncelleme: Temmuz 2026.

n8n veritabanı executionlar nedeniyle neden bu kadar hızlı büyüyor?

Bir workflowun her çalıştırılması, her bir düğümün input, output ve durumunu içeren bir kayıt oluşturur ve günde birkaç yüz çalıştırmayla bu hızla önemli bir veri hacmine dönüşür. n8n, bu sırada varsayılan olarak hem yayınlanmış workflowların başarılı hem de başarısız çalıştırmalarını, hem de editördeki manuel test çalıştırmalarını kaydeder. Yüksek tetikleme sıklığına sahip birçok workflow işleten, örneğin saatlik senkronizasyonlar veya webhook tarafından tetiklenen süreçler yürüten kullanıcılar, bu büyümeyi özellikle executions listesinin yüklenme sürelerinde ve veritabanı dosyasının boyutunda fark eder. Resmi n8n dokümantasyonuna göre pruning bu nedenle varsayılan olarak etkindir, böylece veritabanı kontrolsüz şekilde büyümez.

EXECUTIONS_DATA_PRUNE ayarı tam olarak ne yapar?

EXECUTIONS_DATA_PRUNE, varsayılan değeri true olan ve n8n'in tamamlanmış executionları otomatik olarak silip silmediğini belirleyen bir boolean anahtardır. Değişken etkinse, n8n önce eski executionları silinmek üzere işaretler (soft delete) ve ardından bunları kalıcı olarak kaldırır (hard delete). Dokümantasyona göre bu iki aşamalı yaklaşım performansa hizmet eder, çünkü asıl silme işlemi devam eden işleyişi engellemeden arka planda gerçekleşir. Sürecin tam işleyişine ilişkin ayrıntılar n8n dokümantasyonunda execution verilerinin yönetimi bölümünde açıklanmıştır.

Verilerin ne kadar süre saklanacağını hangi ortam değişkenleri belirler?

Pruning, iki koşuldan biri karşılandığında devreye girer: bir executionun yaşı bir limiti aşar veya kaydedilen toplam execution sayısı bir limiti aşar. İlgili değişkenler executions referansında belgelenmiştir.

  • EXECUTIONS_DATA_MAX_AGE: tamamlanmış bir executionun silinmek üzere işaretlendiği saat cinsinden yaş, varsayılan değer 336 saat, yani 14 gün.
  • EXECUTIONS_DATA_PRUNE_MAX_COUNT: veritabanında kalması gereken maksimum execution sayısı, varsayılan değer 10.000, 0 değeri limit olmadığı anlamına gelir.
  • EXECUTIONS_DATA_HARD_DELETE_BUFFER: saat cinsinden güvenlik tamponu, varsayılan değer 1, çok yeni tamamlanmış verileri sorun giderme için kullanılabilir kalmaları amacıyla bilinçli olarak kalıcı silmeden hariç tutar.
  • EXECUTIONS_DATA_PRUNE_HARD_DELETE_INTERVAL / EXECUTIONS_DATA_PRUNE_SOFT_DELETE_INTERVAL: ilgili silme işleminin dakika cinsinden ne sıklıkla başladığı, varsayılan değerler sırasıyla 15 ve 60 dakika.

Veritabanı olarak SQLite kullanıldığında dokümantasyon ek olarak önemli bir not verir: pruning ile boşalan disk alanı SQLite tarafından dahili olarak yeniden kullanılır, ancak otomatik olarak işletim sistemine geri verilmez. Disk alanını gerçekten boşaltmak için n8n, ya DB_SQLITE_VACUUM_ON_STARTUP ortam değişkenini ayarlamayı ya da VACUUM komutunu manuel olarak çalıştırmayı önerir.

Hangi executionlar hiçbir zaman otomatik olarak silinmez?

Her execution temizliğe tabi değildir. Dokümantasyona göre, new, running veya waiting durumundaki executionlar henüz tamamlanmadıkları için silmenin dışında tutulur. Ayrıca, editörde etiket veya değerlendirme verilmiş olan, yani açıklama eklenmiş executionlar kalıcı olarak korunur. Bu, tüm pruningi devre dışı bırakmadan tek tek önemli test çalıştırmalarını veya dikkat çekici hataları otomatik silmeden hedefli şekilde korumak için kullanışlıdır.

Her workflow için gerçekte nelerin kaydedileceğini nasıl belirlersiniz?

Pruning devreye girmeden önce, bir executionun kaydedilip kaydedilmeyeceğine workflow ayarı karar verir. Workflow editöründe bunun için sağ üstteki üç nokta menüsünden Settings öğesini açar ve orada başarısız, başarılı ve manuel executionların kaydedilip kaydedilmeyeceğini ayrı ayrı belirlersiniz. Ayrıca Save execution progress seçeneği, n8n'in çalıştırma sırasında her bir düğümün durumunu kaydedip kaydetmediğini kontrol eder; bu, dokümantasyona göre gecikmeyi artırabilir ama karşılığında hata noktasından yeniden başlatmaya olanak tanır. Yüksek hacimli üretim workflowları için, global pruning değişkenlerini değiştirmeden önce hangi executionların gerçekten uzun vadede önemli olduğunu tam olarak kontrol etmeye değer. NordFlux'un n8n otomasyonu kapsamında bu yapılandırma, kendi barındırılan bir sistemin veritabanının kalıcı olarak performanslı kalması ve veri egemenliğinin müşteride kalması için sunucu tarafında temel kurulumun bir parçasıdır.

n8n Execution Data Pruning hakkında sık sorulan sorular

EXECUTIONS_DATA_PRUNE'ı devre dışı bırakırsam ne olur?

Değişken false olarak ayarlanırsa, n8n artık hiçbir executionı otomatik olarak silmez ve veritabanı sınırsız şekilde büyümeye devam eder. Bu, kısa test aşamaları veya hata ayıklama için mantıklı olabilir, ancak sürekli işletimde risklidir çünkü veritabanı dosyası er ya da geç performans ve disk alanı açısından sınırlarına dayanır. Üretim örnekleri için pruningi etkin bırakıp bunun yerine EXECUTIONS_DATA_MAX_AGE ve EXECUTIONS_DATA_PRUNE_MAX_COUNT'u kendi ihtiyaçlarınıza göre ayarlamanız önerilir.

Prune limitine ulaşıldıktan sonra tamamlanmış executionlar veritabanından gerçekte ne kadar hızlı kaybolur?

Bu, yapılandırılan aralıklara bağlıdır: n8n varsayılan olarak her 60 dakikada bir soft delete adaylarını kontrol eder ve her 15 dakikada bir kalıcı hard delete işlemini gerçekleştirir. Ayrıca varsayılan olarak bir saat olan hard delete tamponu, çok yeni tamamlanmış executionların hemen kaybolmamasını sağlar. Pratikte, yapılandırmaya bağlı olarak, bir executionun veritabanını gerçekten terk etmesi birkaç saate kadar sürebilir.

Önemli tek tek executionları otomatik silmeye karşı koruyabilir miyim?

Evet, açıklamalı executionlar, yani n8n editöründe etiket veya değerlendirme verilmiş olanlar, dokümantasyona göre otomatik temizliğin dışında tutulur. Bu, genel pruningi devre dışı bırakmadan, dikkat çekici tek tek hata durumlarını veya referans çalıştırmalarını kalıcı olarak izlenebilir tutmak için uygundur. Rutin executionların büyük çoğunluğu için otomatik silme yine de etkin kalır.

SQLite ile pruningden sonra manuel olarak yapmam gereken bir şey var mı?

Evet, çünkü SQLite silinen disk alanını otomatik olarak işletim sistemine geri vermez, bunun yerine gelecekteki executionlar için dahili olarak kullanmaya devam eder. Kullanılan disk alanını gerçekten azaltmak isteyenlerin, n8n dokümantasyonuna göre ya DB_SQLITE_VACUUM_ON_STARTUP'u ayarlaması ya da VACUUM komutunu ara sıra manuel olarak çalıştırması gerekir. Veritabanı olarak PostgreSQL kullanıldığında bu sorun genellikle daha az belirgindir, çünkü depolama yönetimi farklı şekilde çalışır.

NordFlux hakkında

NordFlux UG (haftungsbeschränkt)

NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.

Hakkımızda daha fazlası
Ücretsiz ön analiz

Otomasyon veya KI hakkında somut sorularınız mı var?

Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.