我最近在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”。关闭全职诊断数据捕获子系统。
答案 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,请尝试在服务器代码中禁用/删除调试模式。
步骤:
rm -rf /{your_db_name}/diagnostic.data/
mongoose.set('debug', true);