Mongo例外

时间:2016-02-11 23:13:49

标签: mongodb exception

我最近在PC上遇到了一些存储问题,因此我更改了mongo.conf文件以减小日志的大小。这些是我投入的。

mmapv1:
    smallFiles: true

但是,每次当我尝试使用新的更改运行mongo时,我都会收到此错误(没有更改它可以正常工作)。你能告诉我这是什么问题吗?

  

2016-02-11T22:32:14.002 + 0000 I FTDC [ftdc]检测到不干净的全时诊断数据捕获关闭,发现临时文件,某些指标可能已丢失。行

     

2016-02-11T22:32:14.023 + 0000 W FTDC [ftdc]'UnknownError中未捕获的异常捕获std :: boost类型的异常:: filesystem :: filesystem_error:boost :: filesystem :: file_size:没有这样的文件或目录:全日制诊断数据捕获子系统中的“/data/db/diagnostic.data/metrics.interim.temp”。关闭全职诊断数据捕获子系统。

3 个答案:

答案 0 :(得分:17)

我会尝试删除目录/data/db/diagnostic.data

您也可以通过以下选项启动mongo来禁用诊断数据集:

setParameter:
    diagnosticDataCollectionEnabled: false

答案 1 :(得分:3)

MongoDb失败后,当HD达到100%时,我遇到了同样的问题。这是日志:

2016-10-03T10:13:42.017+0000 I CONTROL  [initandlisten] MongoDB starting : pid=12630 port=27017 dbpath=/var/lib/mongo 64-bit host=drft006
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] db version v3.2.9
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] modules: none
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] build environment:
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten]     distmod: rhel62
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten]     distarch: x86_64
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2016-10-03T10:13:42.018+0000 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { port: 27017, unixDomainSocket: { filePermissions: 511 } }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-10-03T10:13:42.045+0000 I -        [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2016-10-03T10:13:42.045+0000 W -        [initandlisten] Detected unclean shutdown - /var/lib/mongo/mongod.lock is not empty.
2016-10-03T10:13:42.045+0000 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2016-10-03T10:13:42.045+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=93G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-10-03T10:13:42.465+0000 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data'
2016-10-03T10:13:42.465+0000 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-10-03T10:13:42.467+0000 I NETWORK  [initandlisten] waiting for connections on port 27017
2016-10-03T10:13:43.012+0000 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2016-10-03T10:13:43.045+0000 W FTDC     [ftdc] Uncaught exception in 'UnknownError: Caught std::exception of type boost::filesystem::filesystem_error: boost::filesystem::file_size: No such file or directory: "/var/lib/mongo/diagnostic.data/metrics.interim.temp"' in full-time diagnostic data capture subsystem. Shutting down the full-time diagnostic data capture subsystem.

kill - 编辑了mongod并清除了诊断文件夹的内容:

> rm -f  /var/lib/mongo/diagnostic.data/*

mongo log重启后显示:

2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] MongoDB starting : pid=12803 port=27017 dbpath=/var/lib/mongo 64-bit host=drft006
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] db version v3.2.9
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] allocator: tcmalloc
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] modules: none
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] build environment:
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten]     distmod: rhel62
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten]     distarch: x86_64
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten]     target_arch: x86_64
2016-10-03T10:17:46.745+0000 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { port: 27017, unixDomainSocket: { filePermissions: 511 } }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-10-03T10:17:46.772+0000 I -        [initandlisten] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2016-10-03T10:17:46.772+0000 W -        [initandlisten] Detected unclean shutdown - /var/lib/mongo/mongod.lock is not empty.
2016-10-03T10:17:46.772+0000 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2016-10-03T10:17:46.772+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=93G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-10-03T10:17:47.128+0000 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data'
2016-10-03T10:17:47.128+0000 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-10-03T10:17:47.129+0000 I NETWORK  [initandlisten] waiting for connections on port 27017

和mongo还可以。

答案 2 :(得分:1)

如果您使用的是nodejs,请尝试在服务器代码中禁用/删除调试模式。

步骤:

  1. rm -rf /{your_db_name}/diagnostic.data/
  2. 删除或评论mongoose.set('debug', true);
  3. 重新启动mongo和节点服务器
相关问题