一段mongo数据库数据丢失 引发的血案
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一段mongo数据库数据丢失 引发的血案相关的知识,希望对你有一定的参考价值。
2017年1月8日上无,一个晴朗的早上(大周末的晴朗的早上),我还在梦境中,被一个电话吵醒,众所周知,做运维的最怕在休息期间接到公司同仁电话!
起因:同事说线上的某个功能不能用了!(这个功能就是在mongo数据库中获取数据返给前端进行渲染)
经过:之前也出现过类似的问题,排查故障后是因为mongo实例挂掉(某种原因造成),这次没想到事情比之前的故障还要叫人毛骨悚然----------mongo的数据丢了 我的个天啊。里面存放了不到5千万条的数据啊。丢了这可咋弄啊?
解决:把mongo数据丢失关键字放到google上一搜,看到了一个帖子,《大批MongoDB因配置漏洞被攻击,黑客删除数据并勒索赎金》,心想完了数据很可能跟这个事情有关系!
不幸中的万幸,我的mongo数据是一天一备份的。不然我都不知道找谁哭去
数据还原:拿到之前的备份这根救命稻草,心(ri)里(ta)窃(lao)喜(lao)!我的mongo架构是做的主从读写分离模式的,首先不加验证的方式启动mongo的主、从、仲裁节点
关于如何配置mongo的主从读写分离技术,查看小编的另一篇文章:http://www.cnblogs.com/xinzhiyu/p/5907542.html
./mongod -f master.conf #启动主节点 ./mongod -f slave.conf #启动从节点 ./mongod -f arbiter.conf #启动仲裁节点
看一下配置文件内容:
master.conf
dbpath=/Disk/mongodb/data/master logpath=/Disk/mongodb/log/master.log pidfilepath=/Disk/mongodb/master.pid directoryperdb=true logappend=true replSet=testrs bind_ip=192.168.30.250 port=27017 oplogSize=10000 fork=true noprealloc=true
slave.conf
dbpath=/Disk/mongodb/data/slaver logpath=/Disk/mongodb/log/slaver.log pidfilepath=/Disk/mongodb/slaver.pid directoryperdb=true logappend=true replSet=testrs bind_ip=192.168.30.251 port=27017 oplogSize=10000 fork=true noprealloc=true
arbiter.conf
dbpath=/Disk/mongodb/data/arbiter logpath=/Disk/mongodb/log/arbiter.log pidfilepath=/Disk/mongodb/arbiter.pid directoryperdb=true logappend=true replSet=testrs bind_ip=192.168.30.251 port=27018 oplogSize=10000 fork=true noprealloc=true
使用mongo命令连接主数据库,创建管理员帐号。
./mongo --host=192.168.30.250:27017
本文出自 “精忠报国” 博客,请务必保留此出处http://xinsir.blog.51cto.com/5038915/1890428
以上是关于一段mongo数据库数据丢失 引发的血案的主要内容,如果未能解决你的问题,请参考以下文章