MongoDB服務(wù)啟動異常 status=14

MongoDB進(jìn)程 kill -9之后導(dǎo)致服務(wù)起不來了

[root@yaong etc]# systemctl status mongod.service
● mongod.service - MongoDB Database Server
......
  Process: 9526 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)
......
Aug 19 10:26:12 yaong systemd[1]: mongod.service: control process exited, code=exited status=14
......

從網(wǎng)上找了找相關(guān)資料,大致說法是:mongo內(nèi)存管理很特殊,kill -9 很可能影響存庫操作

如果不是在寫磁盤的時候宕掉,可以通過repair命令進(jìn)行修復(fù),會丟失最后一次寫磁盤的時刻到宕掉時刻期間的數(shù)據(jù)

如果趕上寫磁盤的時候進(jìn)程宕掉,repair也不能恢復(fù)數(shù)據(jù),很可能會丟失掉全部數(shù)據(jù)

嘗試進(jìn)行修復(fù)

[root@yaong etc]# /usr/bin/mongod -f /etc/mongod.conf --repair
about to fork child process, waiting until server is ready for connections.
forked process: 9575
child process started successfully, parent exiting

再次查看服務(wù)狀態(tài)

[root@yaong etc]# systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Active: failed (Result: exit-code) since Thu 2021-08-19 10:27:05 CST; 6s ago
  Process: 9618 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=1/FAILURE)
 ......
Aug 19 10:27:05 yaong systemd[1]: mongod.service: control process exited, code=exited status=1
......

燃鵝還是存在其他問題,鑒于庫里沒有存啥數(shù)據(jù),統(tǒng)統(tǒng)干掉,重頭再來

rm -rf /var/lib/mongo/*
rm -rf /var/log/mongodb/*
cat /var/run/mongodb/mongod.pid
rm -rf /data/db/mongod.lock
rm -rf /var/lib/mongo/mongod.lock

再次啟動服務(wù),服務(wù)就起來了

[root@yaong mongodb]# systemctl restart mongod
[root@yaong mongodb]# systemctl status mongod.service
● mongod.service - MongoDB Database Server
   Active: active (running) since Thu 2021-08-19 10:47:14 CST; 3s ago
     Docs: https://docs.mongodb.org/manual
  Process: 10836 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
    ......
 Main PID: 10839 (mongod)
   CGroup: /system.slice/mongod.service
           └─10839 /usr/bin/mongod -f /etc/mongod.conf
                     
[root@yaong etc]# ps -ef | grep mongo
mongod   10839     1  0 10:47 ?        00:00:22 /usr/bin/mongod -f /etc/mongod.conf
root     15949  1627  0 12:25 pts/0    00:00:00 grep --color=auto mongo

至此,提醒大家停止mongo進(jìn)程一定要謹(jǐn)慎,推薦三種較穩(wěn)妥的方式:

交互模式下:

use admin
db.shutdownServer()

mongo命令:

mongod --shutdown

系統(tǒng)命令

kill

除了服務(wù)啟動模式,還可以命令行后臺啟動

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
[root@yaong etc]# ps -ef | grep mongo
root     10222     1  5 10:37 ?        00:00:01 mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
root     10281  1627  0 10:38 pts/0    00:00:00 grep --color=auto mongo

與之對應(yīng)的是停止進(jìn)程的命令

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown

produced by yaong

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容