Mongodb
Mongodb 不重啟集合,WiredTiger.wt 可能已損壞
我相信我的 MongoDB 沒有徹底關閉。我可以在沒有我所有收藏的新位置重新啟動它。如果我嘗試在舊位置修復或啟動它,則會出現以下錯誤:
[ec2-user@ip-172-31-30-192 tmp]$ mongod --repair --dbpath /data 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] MongoDB starting : pid=31865 port=27017 dbpath=/data 64-bit host=ip-172-31-30-192 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] db version v3.2.16 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] git version: 056bf45128114e44c5358c7a8776fb582363e094 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.0-fips 29 Mar 2010 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] allocator: tcmalloc 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] modules: none 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] build environment: 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] distmod: amazon 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] distarch: x86_64 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] target_arch: x86_64 2017-08-20T16:20:30.951+0000 I CONTROL [initandlisten] options: { repair: true, storage: { dbPath: "/data" } } 2017-08-20T16:20:30.972+0000 I - [initandlisten] Detected data files in /data created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'. 2017-08-20T16:20:30.972+0000 I STORAGE [initandlisten] Detected WT journal files. Running recovery from last checkpoint. 2017-08-20T16:20:30.972+0000 I STORAGE [initandlisten] journal to nojournal transition config: create,cache_size=17G,session_max=20000,eviction=(threads_min=4,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), 2017-08-20T16:20:30.981+0000 E STORAGE [initandlisten] WiredTiger (-31802) [1503246030:981472][31865:0x7f6ad1d9fd80], file:WiredTiger.wt, connection: unable to read root page from file:WiredTiger.wt: WT_ERROR: non-specific WiredTiger error 2017-08-20T16:20:30.981+0000 E STORAGE [initandlisten] WiredTiger (0) [1503246030:981530][31865:0x7f6ad1d9fd80], file:WiredTiger.wt, connection: WiredTiger has failed to open its metadata 2017-08-20T16:20:30.981+0000 E STORAGE [initandlisten] WiredTiger (0) [1503246030:981548][31865:0x7f6ad1d9fd80], file:WiredTiger.wt, connection: This may be due to the database files being encrypted, being from an older version or due to corruption on disk 2017-08-20T16:20:30.981+0000 E STORAGE [initandlisten] WiredTiger (0) [1503246030:981564][31865:0x7f6ad1d9fd80], file:WiredTiger.wt, connection: You should confirm that you have opened the database with the correct options including all encryption and compression options 2017-08-20T16:20:30.981+0000 I - [initandlisten] Assertion: 28718:-31802: WT_ERROR: non-specific WiredTiger error 2017-08-20T16:20:30.982+0000 I STORAGE [initandlisten] exception in initAndListen: 28718 -31802: WT_ERROR: non-specific WiredTiger error, terminating 2017-08-20T16:20:30.982+0000 I CONTROL [initandlisten] dbexit: rc: 100
有沒有辦法修復我的 Wiredtiger.wt 文件或將我的收藏和索引從舊位置移動到新位置?
現在有一個官方修復選項在電腦突然關閉後對我有用https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/
- 在 –dbpath 中創建數據文件的備份副本
- 使用 –repair 啟動 mongod
mongod --dbpath /data/db --repair
完成後,dbpath 應該包含修復的數據文件和一個空的 mongod.lock
集合被修復,沒有數據失去。
你有沒有看到這個我過去用它來解決這個問題: