崩溃后重启MongoDB

时间:2017-02-17 14:20:42

标签: mongodb database

我使用以下命令在Ubuntu服务器的后台运行MongoDB:

mongod --fork --logpath /var/log/mongod.log

但有时候数据库崩溃而我必须手动重启,我的问题是如果数据库崩溃会如何自动重启?

我尝试添加/etc/init/mongodb.conf

respawn
respawn limit 10 90

但是,如果我杀死monogodb进程,它还没有自动启动。有什么问题?

由于

1 个答案:

答案 0 :(得分:0)

根据您使用的操作系统,您应该使用为https://docs.mongodb.com/manual/administration/install-on-linux/分发的软件包,然后使用提供的启动脚本。

对于ubuntu,您需要创建systemd文件

如果您从我之前提供的链接安装.deb软件包,则可以通过执行以下操作来创建systemd脚本。

使用内容

创建/etc/systemd/system/mongodb.service
package main

import (
    "encoding/json"
    "fmt"
)

type myMapping map[string]string

func (mm myMapping) UnmarshalJSON(b []byte) error {
    var temp []map[string]string
    if err := json.Unmarshal(b, &temp); err != nil {
        return err
    }
    for _, m := range temp {
        for k, v := range m {
            mm[k] = v
        }
    }
    return nil
}

func main() {
    data := []byte(`
            [
                {"abc's": "n;05881364"},
                {"abcoulomb": "n;13658345"},
                {"abcs": "n;05881364"}
            ]`)

    resultingMap := myMapping{}
    if err := json.Unmarshal(data, &resultingMap); err != nil {
        panic(err)
    }
    fmt.Println(resultingMap)
}
然后跑 systemctl启动mongodb systemctl启用mongodb

然后,只要你想开始,就可以使用systemctl restart mongodb。