zoukankan      html  css  js  c++  java
  • mongoDB数据库的修复

    mongoDB数据库的修复

    标签: 数据库mongodbdatabasefile文档
     分类:
    查看mongodb.log日志,发现日志里有以下语句:
    ..............
    Mon Mar  317:46:37 [conn148] Assertion: 10295:getFile(): bad file number value (corrupt db?): run repair

    ..............

    com.MongoDB.MongoException: bad offset:0 accessing file: /data/dbdata/db.0 - consider repairing database

    翻译 为: 声明: getFile():错误的文件数值(损坏的数据库?):运行修复

    查了查mongodb的文档,遂用以下方法进程修复:

    首先停止mongod服务,删除 mongodb.log,也可以备份一下
    # rm -rf  /data/mongodb/mongodb.log

    删除mongodb进程文件
    # rm -rf  /mongodb/mongod.lock

    进行修复

    # /usr/local/mongodb/bin/mongod --repair --dbpath /mongodb/ --repairpath /mongodb/repair/

    如果后台执行

    ./mongod --repair --dbpath /data/dbdata --repairpath /data/repair/ --logpath /data/dblog/mongodbrepair.log --fork


    这时mongodb进程会在/mongodb/repair/ 目录下储存临时的修复数据库文件,文件目录为“$tmp_repairDatabase_0”所以此目录空间要足够大。
    生产环境数据库为100G,修复进行了大约3个半小时,在“/mongodb/repair/$tmp_repairDatabase_0"目录下产生了近30G的数据库临时文件,修复完成后数据库临时文件自动清除。

    之后开启mongod服务,检查数据库,发现读写正常,mongodb.log没有出现错误。修复OK!

    原理是:把数据重新读一遍,然后写到另一个库中

  • 相关阅读:
    Codeforces 689A Mike and Cellphone
    栈的一些基本操作
    Intersecting Lines POJ 1269
    Segments POJ 3304 直线与线段是否相交
    Toy Storage POJ 2398
    CF471D MUH and Cube Walls
    P 3396 哈希冲突 根号分治
    P1445 [Violet]樱花
    P6810 「MCOI-02」Convex Hull 凸包
    P3455 [POI2007]ZAP-Queries
  • 原文地址:https://www.cnblogs.com/xiaojikuaipao/p/6518890.html
Copyright © 2011-2022 走看看