开发者社区> 问答> 正文

mongo分片config在断电后无法重启,

日志中提示local/collection-2--3934278836415457309.wt: encountered an illegal file format or internal value
这个要如何修复

2016-06-29T13:32:05.632+0800 E STORAGE [initandlisten] WiredTiger (0) 1467178325:631711, file:local/collection-2--3934278836415457309.wt, txn-recover: read checksum error for 8192B block at offset 1417216: block header checksum of 1023793447 doesn't match expected checksum of 1454217490
2016-06-29T13:32:05.632+0800 E STORAGE [initandlisten] WiredTiger (0) 1467178325:632711, file:local/collection-2--3934278836415457309.wt, txn-recover: local/collection-2--3934278836415457309.wt: encountered an illegal file format or internal value
2016-06-29T13:32:05.632+0800 E STORAGE [initandlisten] WiredTiger (-31804) 1467178325:632711, file:local/collection-2--3934278836415457309.wt, txn-recover: the process must exit and restart: WT_PANIC: WiredTiger library panic

展开
收起
zh05660 2016-06-29 16:07:37 4844 0
1 条回答
写回答
取消 提交回答
  • 1.启停止MongoDB  执行mongod,启MongoDB服务器mongod选项命令执行 mongod --help  主要选项:  --dbpath  指定数据目录默认值C:\data\db每mongod进程都需要独立数据目录要3mongod  实例必须3独立数据目录mongod启数据库目录创建mongod.lock文件  文件用于防止其mongod纯净使用该数据目录  --port  指定服务器监听端口号默认端口27017.要运行mongod进程则要给每指定同端口号  --logpath  指定志输路径文件夹读写权限系统文件存创建已文件覆盖掉  清除所原志记录想要保留原志需使用--logappend选项  --config  指定配置文件加载命令行未指定各种选项  2.配置文件启  MongoDB支持文件获取配置信息.需要配置非或者要自化MongoDB启用.  指定配置文件用-f或--config选项.  :  mongod --config refactorConfig.txt  refactorConfig.txt内容:  #start MongoDB port = 10000 dbpath = "f:\mongo\db" logpath = "f:\mongo\log\MongoDB.txt" rest = true  配置文件命令行功能  mongod --dbpath "f:\mongo\db" --logpath "f:\mongo\log\MongoDB.txt" --rest --port 10000  配置文件特点:  a.#行注释  b.指定选项语种"选项=值"形式.选项区写.  c.命令行--rest关选项,值要设true  3.停止MongoDB  使用shutdown命令{"shutdown":1},命令要admin数据库使用.shell提供辅助函数:  use admin  db.shutdownServer()  4. 监控  使用管理接口,默认情况,启mongod启基本http服务器,该服务默认端口28017.浏览器输入  localhost:28017.些链接需要mongod启,用--rest选项启rest支持 才能进.启rest支持,  mongod启使用--nohttpinterface关闭管理接口.  5.serverStatus  要获取运行MongoDB服务器统计信息,基本工具serverStatus命令  db.runCommand({"serverStatus":1})  serverStatus返键解释:  "globalLock"值表示全局写入锁占用服务器少间(单位微秒)  "mem"包含服务器内存映射少数据,服务器进程虚拟内存驻内存占用情况(单位MB)  "indexCounters"表示B树磁盘检索("misses")内存检索("hits")数.比值始升,要考虑加内存.  "backgroundFlushing"表示台做少fsync及用少间  "opcounters"文档包含每种主要操作数  "asserts"统计断言数  6.mongostat  serverStatus虽强,服务器监控说容易.MongoDB提供mongostat  mongostat输些serverStatus提供重要信息,每秒输新行,比前看静态数据实性要.  输列,别 inserts/s commands/s vsize %locked,与serverStatus数据相应.  使用第三插件进行数据库监控.  7.安全认证  认证基础知识  每MongoDB实例数据库都用户,启安全性检查,数据库认证用户才能执行读或写操作.  认证文,MongoDB普通数据作admin数据库处理.admin数据库用户称超级用户(管理员).  认证,管理员读写所数据库,执行特定管理命令,listDatabasesshutdown.  启安全检查前,至少要管理员帐号,shell连接没启安全检查服务器  面添加管理员refactor_root,test数据库添加两普通账号,其读权限.shell创建读用户要  addUser第三参数设true.调用addUser必须响应数据库写权限.所数据库调用addUser,  没启安全检查.  重启数据库,重启加入 --auth 命令行选项,启安全检查  第连接,能test数据库执行任何操作,作读用户认证,能查找,能插入数据.能读写用户认证,能查找插入  数据,能使用show dbs 列举所数据库.超级用户认证,所欲.  8.认证工作原理  数据库用户帐号文档形式存储system.users集合.文档结构  { "_id" : ObjectId("5006a037dff37e149322fd83"), "user" : "refactor_read_write", "readOnly" : false, "pwd" : "5a84584ac51d3f702461fce4c46b0d6b"//根据用户名密码散列 }  知道用户信息何存储及存储位置,进行管理工作.  删除帐户:  > db.system.users.remove({"user":"refactor_read"}) > db.auth("refactor_read","refactor") 0  用户认证,服务器认证连接绑定跟踪认证,说驱程序或工具使用连接池或故障切换  另节点,所认证用户必须每新连接重新认证.  MongoDB传输协议加密,需加密,用ssh隧道或者类似技术做客户端服务器间加密.  建议MongoDB服务器放防火墙或放应用服务器能访问网络.MongoDB必须能外面访问,  建议使用--bindip选项,指定mongod绑定本ip址.:能本机应用服务器访问,使用  mongod --bindip localhost  默认情况MongoDB启简单http服务器,便于查看运行,锁,复制等面信息,要想公些信息,用  --nohttpinterface关闭管理接口.  用--noscripting完全禁止服务端javascript执行  9.备份修复  MongoDB所数据都存放 数据目录 ,默认目录C:\data\db\.启MongoDB候用--dbpath指定数据目录.  论数据目录哪,都存放着MongoDB所数据.要想备份MongoDB,要简单复制数据目录所文件即.  除非服务器做完整fsync,允许写入,否则运行MongoDB创建数据目录副本并安全,备份能已经  破损,需要修复.  运行MongoDB创建数据目录副本并安全,所先服务器关,再复制数据目录.关闭数据库要停止业务.  10.mongodumpmongorestore  mongodump种能运行备份.mongodump运行MongoDB做查询,所查文档写入磁盘.  mongodump般客户端,所供运行MongoDB使用,即便处理其请求或执行写入没问题.  mongodump使用普通查询机制,所产备份定服务器数据实快照.服务器备份程处理写入,非明显.  mongodump备份查询其客户端性能产影响.  mongodump --help 获帮助  mongorestore备份恢复数据工具.  mongorestore获取mongodump 输结,并备份数据插入运行MongoDB实例.  :数据库test备份backup目录  mongodump -d test -o backup  使用mongorestore 恢复testNew 数据库 mongorestore -d testNew --drop backup/test/  -d指定要恢复数据库.--drop指恢复前删除集合(若存),否则数据与现集合数据合并,能覆盖些文档.  使用mongorestore --help获帮助信息  11.fsync锁  虽使用mongodumpmongorestore能停机备份,却失获取实数据视图能力.MongoDBfsync命令  能MongoDB运行复制数据目录损坏数据.  fsync命令强制服务器所缓冲区写入磁盘.选择锁住址数据库进步写入,知道释放锁止.写入锁让  fsync备份发挥作用关键.  shell,强制执行fsync并获写入锁:  db.runCommand({"fsync":1,"lock":1})  ,数据目录数据致,且数据实快照.锁,安全数据目录副本作备份.要数据库运行  快照功能文件系统,比LVM,EBS,用,拍数据库目录快照快.  备份,解锁:  db.$cmd.sys.unlock.findOne()  db.currentOp()  运行db.currentOp()确保已经解锁(初请求解锁花点间)  fsync命令,能非灵备份,用停掉服务器,用牺牲备份实性能.要付代价些写入操作  暂阻塞.唯耽误读写能保证实快照备份式通服务器备份.  12.属备份  虽面备份式灵,都没服务器备份.复制式运行MongoDB,前面提备份技术仅能用  主服务器,用服务器.服务器数据几乎与主服务器同步.太乎属服务器性能或者能能读写,  于能随意选择面3种备份式:关停,转存或恢复工具或fsync命令.服务器备份MongoDB推荐备份式.  13.修复  MongoDB存储式能保证磁盘数据能用,能损毁.MongoDB内置修复功能试着恢复损坏数据文件.  未停止MongoDB应该修复数据库.修复数据库式简单 mongod --repair 启服务器.  修复数据库实际程简单:所文档导马导入,忽略效文档.完,重建索引.数据量,花间,  所数据都要验证,所索引都要重建(MongoDB 1.8 版本引入志系统,使修复间打打缩短).  修复能比修复前少些文档,损坏文档删除.  修复数据库能起压缩数据作用.闲置控件(删除体积较集合,或删除量文档腾空间)修复重新利用.  修复运行服务器数据库,要shell用repairDatabases.  use test db.repairDatabase()
    

    “答案来源于网络,供您参考” 希望以上信息可以帮到您! 2.

    2019-09-27 20:37:54
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
Redis Cluster的基本原理 立即下载
Codis 集群演化与 Redis 异步迁移 立即下载