2018年,1月22日,由于機房意外斷電,一分片 config伺服器斷電導緻該config庫無法啟動,相關報錯如下:

關鍵報錯資訊:
2018-01-22T15:18:43.863+0800 I -[initandlisten ] Detected data file in D:\mongodata\cfg created by the 'wiredTiger' storage
engine,so setting the active storage engine to 'wiredTiger'.
2018-01-22T15:18:43.865+0800 W- [initandlisten ] Detected unclean shutdown -D:\mongodata\cfg\mongod.lock is not empty .
2018-01-22T15:18:43.866+0800 w STORAGE [initandlisten ] Recovering data from the last clean checkpoint.
根據網上查到的處理方法:
1、 關閉啟動視窗
2、 删除 D:\mongodata\cfg\mongod.lock ,
3、 執行修複操作: D:\MongoDB\Server\3.2\bin\mongod --configsvr --replSet configReplSet --port 27001
--dbpath D:\mongodata\cfg --repair
2018-01-22T15:46:50.530+0800 I STORAGE [initandlisten] Repairing collection loc
al.system.replset
2018-01-22T15:46:50.531+0800 I STORAGE [initandlisten] Verify succeeded on uri
table:collection-4--3441646246172970043. Not salvaging.
2018-01-22T15:46:50.545+0800 I INDEX [initandlisten] build index on: local.sy
stem.replset properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.syste
m.replset" }
2018-01-22T15:46:50.545+0800 I INDEX [initandlisten] building index
using bulk method
2018-01-22T15:46:50.569+0800 I STORAGE [initandlisten] finished checking dbs
2018-01-22T15:46:50.569+0800 I CONTROL [initandlisten] now exiting
2018-01-22T15:46:50.569+0800 I NETWORK [initandlisten] shutdown: going to close
listening sockets...
2018-01-22T15:46:50.570+0800 I NETWORK [initandlisten] shutdown: going to flush
diaglog...
2018-01-22T15:46:50.570+0800 I NETWORK [initandlisten] shutdown: going to close
sockets...
2018-01-22T15:46:50.571+0800 I STORAGE [initandlisten] WiredTigerKVEngine shutt
ing down
2018-01-22T15:46:50.769+0800 I STORAGE [initandlisten] shutdown: removing fs lo
ck...
2018-01-22T15:46:50.770+0800 I CONTROL [initandlisten] dbexit: rc: 0
4、修複操作沒有明顯的報錯, 重新啟動config庫, 問題依然存在,報錯與上述提到的日志一緻
由于是副本集 分片叢集,且該config庫隻是一個片的config庫,該副本集分片叢集一共有3台config庫,于是決定删除該config庫
的data目錄 D:\mongodata\cfg下的所有資料檔案以從叢集其他節點重新同步 ,該config庫重新同步資料後恢複正常。