mongo全量+增量备份

 尤正航   2020-11-05 11:46   251 人阅读  0 条评论

mongo开启单点oplog,先以单点启动,然后配置复制集参数,设置oplog大小。

mongodb的全量备份(非普通备份)


首先mongo不能以单点模式运行,需要以集群模式开启oplog日志记录。

具体操作:

1.修改配置文件参数把/etc/mongodb.cnf 的replication选项的注释全部开启,并且稍微设置大一些oplog的oplogSizeMB=10240  也就是10G。

2.重启mongo

mongod -f /etc/mongodb.cnf --shutdown

3.登录mongo

mongo -u -p -authenticaionDatabase admin

use admin;

rs.initiate();


此时是没有添加集群节点,会显示为secondery,不用慌张,等一会会自动显示为primary主节点

rs.status() 查看集群状态;

use local ;

db.oplog.rs.findOne();可以看到有oplog写入了



1、全量备份

全量备份前先记录oplog的timestamp:

由于复制操作是先复制数据,复制完成后再写入oplog,有可能相同的操作会同步两份,不过MongoDB在设计之初就考虑到这个问题,将oplog的同一个操作执行多次,与执行一次的效果是一样的

echo "db.getSiblingDB('local').oplog.rs.find({},{"ts":1}).sort({"ts":-1}).limit(1)"|mongo -uroot -pchenshuzhen --authenticationDatabase admin|egrep -vie 'MongoDB|bye' >/data/backup/mongo/ts.txt

mongodump -u -p   --authentciationDatabase admin --gzip -d database -o outfile
2、增量备份此时需要用到ts的time。
mongodump -d local -c oplog.rs --query "{"ts":{$gte:Timestamp(1551688223, 1)}}" -o outfile


第二次增量:


tail -f lasted.outfile|grep timestamp > /tmp/1.txt

mongodump -d local -c oplog.rs --query "{"ts":{$gte:Timestamp(timestamp, 1)}}" -o out

本文转载自:HTTPS://mp.weixin.qq.com/s/WLrvM2u1_pcMNhlrNOopTQ

 本文系网络转载,如有侵权请联系删除

版权归原作者所有,本文仅作为学习使用


本文地址:https://cjava.net/post/116.html
版权声明:本文为原创文章,版权归 尤正航 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?