Skip to content

执行数据(Execution data)#

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

🌐 Depending on your executions settings and volume, your n8n database can grow in size and run out of storage.

为避免此错误,n8n 建议你不要保存不必要的数据,并启用旧执行数据的清理功能。

🌐 To avoid this, n8n recommends that you don't save unnecessary data, and enable pruning of old executions data.

要做到这一点,请配置相应的环境变量

🌐 To do this, configure the corresponding environment variables.

减少保存的数据(Reduce saved data)#

Configuration at workflow level

You can also configure these settings on an individual workflow basis using the workflow settings.

You can select which executions data n8n saves. For example, you can save only executions that result in an Error.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# npm
# Save executions ending in errors
export EXECUTIONS_DATA_SAVE_ON_ERROR=all

# Don't save successful executions
export EXECUTIONS_DATA_SAVE_ON_SUCCESS=none

# Don't save node progress for each execution
export EXECUTIONS_DATA_SAVE_ON_PROGRESS=false

# Don't save manually launched executions
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

启用执行修剪(Enable executions pruning)#

执行清理会定期删除已完成的执行及其执行数据和二进制数据。n8n 默认启用清理功能。出于性能考虑,清理首先会标记待删除的目标,然后在稍后永久移除它们。

🌐 Executions pruning deletes finished executions along with their execution data and binary data on a regular schedule. n8n enables pruning by default. For performance reasons, pruning first marks targets for deletion, and then later permanently removes them.

当出现以下任一情况时,n8n 会修剪执行记录:

🌐 n8n prunes executions when either of the following condition occur:

  • 年龄:执行已在 EXECUTIONS_DATA_MAX_AGE 小时前完成(默认:336 小时 -> 14 天)。
  • 计数:执行总数超过 EXECUTIONS_DATA_PRUNE_MAX_COUNT(默认值:10,000)。当发生这种情况时,n8n 会从最旧的执行开始删除。

请注意:

🌐 Keep in mind:

  • 状态为 newrunningwaiting 的执行不符合修剪条件。
  • 带注释的执行(例如,带有标签或评分的执行)永远不会被剪枝。
  • 修剪遵循 EXECUTIONS_DATA_HARD_DELETE_BUFFER 小时(默认:1小时)的安全缓冲期,以确保在用户构建或调试工作流时,最近的数据仍然可用。
1
2
3
4
5
6
7
8
# Enable executions pruning
export EXECUTIONS_DATA_PRUNE=true

# How old (hours) a finished execution must be to qualify for soft-deletion
export EXECUTIONS_DATA_MAX_AGE=168

# Max number of finished executions to keep. May not strictly prune back down to the exact max count. Set to `0` for unlimited.
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 操作。

Binary data pruning

Binary data pruning operates on the active binary data mode. For example, if your instance stored data in S3, and you later switched to filesystem mode, n8n only prunes binary data in the filesystem. This may change in future.