跳转至

执行数据#

根据您的执行设置和数量,您的 n8n 数据库可能会增大并耗尽存储空间。

为了避免这种情况,n8n 建议您不要保存不必要的数据,并启用旧执行数据的清理功能。

为此,请配置相应的环境变量

减少保存的数据#

工作流级别的配置

您也可以使用工作流设置在单个工作流基础上配置这些设置。

您可以选择 n8n 保存哪些执行数据。例如,您可以只保存结果为 Error 的执行。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# npm
# 保存以错误结束的执行
export EXECUTIONS_DATA_SAVE_ON_ERROR=all

# 不保存成功的执行
export EXECUTIONS_DATA_SAVE_ON_SUCCESS=none

# 不保存每个执行的节点进度
export EXECUTIONS_DATA_SAVE_ON_PROGRESS=false

# 不保存手动启动的执行
export EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false
1
2
3
4
5
6
7
8
9
# Docker
docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e EXECUTIONS_DATA_SAVE_ON_ERROR=all \
 -e EXECUTIONS_DATA_SAVE_ON_SUCCESS=none \
 -e EXECUTIONS_DATA_SAVE_ON_PROGRESS=true \
 -e EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false \
 docker.n8n.io/n8nio/n8n
1
2
3
4
5
6
7
# Docker Compose
n8n:
    environment:
      - EXECUTIONS_DATA_SAVE_ON_ERROR=all
      - EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
      - EXECUTIONS_DATA_SAVE_ON_PROGRESS=true
      - EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false

启用执行清理#

执行清理会按照定期计划删除已完成的执行以及它们的执行数据和二进制数据。n8n 默认启用清理。出于性能原因,清理首先标记要删除的目标,然后稍后永久删除它们。

当满足以下任一条件时,n8n 会清理执行:

  • 年龄:执行完成超过 EXECUTIONS_DATA_MAX_AGE 小时(默认:336 小时 -> 14 天)。
  • 数量:执行总数超过 EXECUTIONS_DATA_PRUNE_MAX_COUNT(默认:10,000)。当发生这种情况时,n8n 会从最旧到最新删除执行。

请记住:

  • 状态为 newrunningwaiting 的执行不符合清理条件。
  • 带注释的执行永久免于清理。
  • 清理遵守 EXECUTIONS_DATA_HARD_DELETE_BUFFER 小时的安全缓冲期(默认:1 小时),以确保在用户构建或调试工作流时最近的数据保持可用。
1
2
3
4
5
6
7
8
# 启用执行清理
export EXECUTIONS_DATA_PRUNE=true

# 已完成的执行必须多老(小时)才有资格进行软删除
export EXECUTIONS_DATA_MAX_AGE=168

# 要保留的已完成执行的最大数量。可能不会严格清理回到确切的最大数量。设置为 `0` 表示无限制。
export EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
1
2
3
4
5
6
7
# Docker
docker run -it --rm \
 --name n8n \
 -p 5678:5678 \
 -e EXECUTIONS_DATA_PRUNE=true \
 -e EXECUTIONS_DATA_MAX_AGE=168 \
 docker.n8n.io/n8nio/n8n
1
2
3
4
5
6
# Docker Compose
n8n:
    environment:
      - EXECUTIONS_DATA_PRUNE=true
      - EXECUTIONS_DATA_MAX_AGE=168
	  	- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000

SQLite

如果您使用默认的 SQLite 数据库运行 n8n,任何清理数据的磁盘空间不会自动释放,而是重新用于将来的执行数据。要释放此空间,请配置 DB_SQLITE_VACUUM_ON_STARTUP 环境变量或手动运行 VACUUM 操作。

二进制数据清理

二进制数据清理对活跃的二进制数据模式进行操作。例如,如果您的实例将数据存储在 S3 中,后来切换到文件系统模式,n8n 只会清理文件系统中的二进制数据。这在将来可能会改变。

此页面是否
💬 微信

🚀 与作者交流

关注公众号
n8n实战笔记公众号
n8n实战笔记
📚 教程 💡 案例 🔧 技巧
添加微信
添加作者微信
1对1 专业指导
⚡ 快答 🎯 定制 🚀 支持