MongoDB 误操作后的point in time recovery

在生产环境中,尽管我们尽力避免,但是还是会遇到误操作或是其他情况的出现。
这时候我们就需要进行Point in time recovery了。
我们point in time recovery 是基于oplog进行的,所以请确保oplog的size足够大,也请确保定时有冷备份(或是延时备份)

切记:在出现问题的时候,我们第一时间要做的时保护犯罪现场,停止应用写入,保护数据库数据与状态。有[......]

阅读全文

MongoDB数据库建模与表结构设计(视频)

这是之前分享出来的PPT的语音视频版本。

ps:忽略我把hidden念错。40多分钟一遍,第一次录完居然声音没进去,也是醉了。。。。
补充:shard在视频中一笔带过,因为这次分享是公司内的,手游的话,滚服开服的性质,多组Repl set 会更合适。
Shard的话可以大大扩展整个DB系统的承载能力,但是同时维护成本也会增加。

MongoDB如何新增索引

常规方法

数据量较小或者请求量不大的情况下,可以直接通过db.coll.ensureIndex({})建立,相关的参数可以 参考文档.

数据量较大时的通用方法

在数据量较大或请求量较大,直接建立索引对性能有显著影响时,可以利用复制集(数据量较大时一般为线上环境,使用复制集为必然选择.)中部分机器宕机不影响复制集工作的特性,轮转建立索引.
在复制集中,首先停掉一台从节点,去掉--re[......]

阅读全文