V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
livc
V2EX  ›  MongoDB

MongoDB 机器重启数据丢失

  •  
  •   livc · 2017-12-28 21:01:36 +08:00 · 10584 次点击
    这是一个创建于 2517 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第一次用 MongoDB,在 test 数据库里面建了一个 collection,insert 了一些数据,之后机器意外重启,再启动 MongoDB 发现 test 是空的,整个 collection 都不见了。。。请问这种情况有办法恢复吗? insert 后是需要手动保存的吗?
    17 条回复    2018-01-15 18:34:34 +08:00
    defunct9
        1
    defunct9  
       2017-12-28 21:03:59 +08:00 via iPhone
    开 ssh,我去看看
    okletswin
        2
    okletswin  
       2017-12-28 21:06:12 +08:00
    test 是临时库。。。 只要你生产环境别用它就好
    livc
        3
    livc  
    OP
       2017-12-28 21:16:49 +08:00 via iPhone
    @okletswin 算是生产环境,为了方便没建新库直接放在 test 里了…… test 重启会自动清空?
    changnet
        4
    changnet  
       2017-12-28 22:29:29 +08:00 via Android
    mongo 默认有一个 test 库,说是没密码都能进的那个,你不会用了这个吧
    livc
        5
    livc  
    OP
       2017-12-28 22:32:40 +08:00
    @changnet #4 就是用的这个,难道重启会被清空?还是被脱裤了。。
    zjp
        6
    zjp  
       2017-12-28 23:43:26 +08:00 via Android
    果然又看到了一楼,运维的职业病吗 →_→
    defunct9
        7
    defunct9  
       2017-12-29 07:19:24 +08:00 via iPhone
    @zjp 哈哈,有无 log,mongo 的配置,都是需要看看才知道撒
    cosformula
        8
    cosformula  
       2017-12-29 07:36:15 +08:00 via Android   ❤️ 1
    一个可能的思路,你在第一次启动的时候是否配置了 --dbpath,两次启动的 dbpath 是否不同
    luosiding
        9
    luosiding  
       2017-12-29 18:08:56 +08:00
    mongodb 是内存数据库,先存数据在打印 log 存入本地,你这种情况就是这种,现存进去了,但是没保存,所以没有持久话
    Livid
        10
    Livid  
    MOD
       2018-01-02 16:38:15 +08:00
    如果你直接用 mongod 启动,那么数据是在 /data/db

    但是如果是用系统的包带的启动脚本的话,数据可能会在 /var/lib/mongodb
    livc
        11
    livc  
    OP
       2018-01-14 20:47:21 +08:00
    @changnet 新建了另外一个名字的数据库,重启后再次丢失。。。

    @defunct9

    @cosformula 没有任何配置 直接 mongod 启动的,都在 dbpath=/data/db

    @luosiding 怎么个保存法?保存在本地吗?

    @Livid 在 dbpath=/data/db,但是重启就没有了。

    整个数据库都不见了。
    ```
    > show dbs
    Warning 0.078GB
    admin (empty)
    local 0.078GB
    ```

    我的 MongoDB 是运行在 docker 里的,但是这几次都是 VPS CPU 占用莫名超过 100,然后所有程序全挂了,ssh 也上不去,只能强制重启,上去后发现数据全没了,不知道是不是 MongoDB 被攻击?
    defunct9
        12
    defunct9  
       2018-01-14 23:02:53 +08:00 via iPhone
    开 ssh,我上去看看。因为你根本表述不清情况,说了一大通,现在才说是 docker,那么你 docker 文件层用的是那个,挂了永久数据卷没有,一堆问题。
    cosformula
        13
    cosformula  
       2018-01-15 09:00:21 +08:00 via Android
    @livc 看到 warning,你打开 warning 数据库就知道。
    被 bot 连上然后删库了,你开了公网连接还没用密码吧。
    livc
        14
    livc  
    OP
       2018-01-15 09:30:36 +08:00 via iPhone
    @defunct9
    docker start xxxxx
    docker attach xxxxx
    mongod
    没了。
    defunct9
        15
    defunct9  
       2018-01-15 09:34:59 +08:00
    不清楚,再过 12 天,继续又蹦出来一些新东西,大家继续猜火车。
    livc
        16
    livc  
    OP
       2018-01-15 12:38:32 +08:00
    @cosformula #13 果然是被脱裤了,马蛋,我直接 mongod 启动的,没有其他配置,刚学习 mongodb 的。。
    cosformula
        17
    cosformula  
       2018-01-15 18:34:34 +08:00 via Android
    @livc 吃一堑长一智
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:19 · PVG 06:19 · LAX 14:19 · JFK 17:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.