如何以及何时删除旧的Neo4j事务日志文件。

11

我的本地 Neo4j 在 data/graph.db 中有大量的交易日志:

251M  3 Sep 16:44 neostore.transaction.db.0
255M  3 Sep 20:01 neostore.transaction.db.1
255M  3 Sep 23:20 neostore.transaction.db.2
251M  4 Sep 19:34 neostore.transaction.db.3
250M  4 Sep 22:16 neostore.transaction.db.4
134M  5 Sep 05:02 neostore.transaction.db.5
16B  5 Sep 09:57 neostore.transaction.db.6
16B  7 Sep 16:44 neostore.transaction.db.7

我正在备份graph.db文件夹(已停止neo4j实例)以便在另一个离线实例中重新加载,因此缩小文件夹大小将很好。

  1. 有哪些控制这些日志的方法?
  2. 如何检查给定的neostore.transaction.db.X文件是否已成功处理?
  3. 删除旧的处理过的文件是否安全?

文档中提到了逻辑日志,我认为这是相同的文件: http://neo4j.com/docs/stable/configuration-logical-logs.html

conf/neo4j.properties 中,我已将选项keep_logical_logs更改为100M size

# Keep logical logs, helps debugging but uses more disk space, enabled for
# legacy reasons To limit space needed to store historical logs use values such
# as: "7 days" or "100M size" instead of "true".
keep_logical_logs=100M size

我重新启动了neo4j,但它没有删除任何旧的日志文件。 当neo4j停止时,我能否手动执行此操作?或者这些文件都是必需的吗? 我停止了neo4j,备份了graph.db目录,删除了除neostore.transaction.db.7之外的所有文件,然后再次启动neo4j。它似乎很正常,但是...

谢谢!

3个回答

17

如果您的数据库状况良好,您可以删除所有的neostore.transaction.db.x文件,但我建议您备份它们。

  1. 停止Neo4j
  2. 删除neostore.transaction.db.x文件
  3. 启动Neo4j

1
谢谢@MicTech。您是否知道在neo4j文档中有关事务日志文件的任何“官方”信息? - RedCraig
1
它们用于恢复和在线备份,因此如果您干净地关闭数据库,则可以全部删除。除非您需要从该数据库中提取备份。 - Michael Hunger
@MichaelHunger,明确一下,如果我停止数据库,删除transaction.db文件,然后重新启动数据库。数据库会继续使用一段时间,然后我希望进行备份,那么我将无法备份吗?谢谢。 - RedCraig
2
不要删除所有的交易文件,否则会导致您的设置无法使用。降低交易文件的推荐方法是通过conf文件。 https://github.com/neo4j/neo4j/issues/12084 - bountrisv
这不是一个解决方案 - 不要手动删除日志 - 相反,使用保留策略来实现类似的结果。 - Yost777

7

1
属性文件中有一个参数用于旋转TX日志:
# Will keep logical logs which contains any transaction committed within 2 days
keep_logical_logs=2 days

请查看文档以获取有关可用选项的更详细信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接