跳至内容

执行数据#

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

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

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

减少保存的数据#

工作流级别的配置

您也可以使用工作流设置为每个单独的工作流配置这些设置。

您可以选择n8n保存哪些执行数据。例如,您可以仅保存结果为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

# Save successful executions
export EXECUTIONS_DATA_SAVE_ON_SUCCESS=all

# 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

启用数据修剪#

您可以启用数据清理功能,在指定时间后自动删除已完成的执行记录。如果不设置EXECUTIONS_DATA_MAX_AGE,默认值为336小时(14天)。

您可以选择在EXECUTIONS_DATA_MAX_AGE设置的时间之前清理已完成执行数据,使用EXECUTIONS_DATA_PRUNE_MAX_COUNT参数。这设置了数据库中存储执行记录的最大数量。当达到限制时,n8n会开始删除最旧的执行记录。这有助于解决数据库性能问题,特别是当您使用SQLite时。数据库大小仍可能超过您设置的限制:尚未完成的旧执行记录不会被删除,即使它们本应被删除。

1
2
3
4
5
6
7
8
9
# npm
# Activate automatic data pruning
export EXECUTIONS_DATA_PRUNE=true

# Number of hours after execution that n8n deletes data
export EXECUTIONS_DATA_MAX_AGE=168

# Number of executions to store
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将仅修剪文件系统中的二进制数据。此行为在未来可能会发生变化。

优云智算