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

时间:2015-09-07 16:35:33

标签: neo4j

我的本​​地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. 删除旧处理过的文件是否安全?
  4. 逻辑日志在文档中引用,我认为这些文件是相同的文件: 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 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:5)

更新

在neo4j 3.x中,配置已更改为:

dbms.tx_log.rotation.retention_policy=<true/false>
dbms.tx_log.rotation.retention_policy=<amount> <type>

有关详细信息,请参阅https://neo4j.com/docs/operations-manual/current/configuration/transaction-logs/

答案 2 :(得分:1)

属性文件有一个用于旋转TX日志的参数:

private static void Main(string[] args)
    {
        #region Extract Model Face Detections From Video Clips

        var modelVideos = Directory.GetFiles(@"ModelsVideos\", "*.MOV");

        foreach (var modelVideo in modelVideos)
        {
            var capture = new Capture(modelVideo);

            var framesQueue = new Queue<Image<Gray, byte>>();

            capture.ImageGrabbed += (sender, eventArgs) =>
            {
                var currentFrame = capture.RetrieveGrayFrame();
                framesQueue.Enqueue(currentFrame);
            };

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