首页 > 数据库 >mongodb使用备份后的oplog做时间点恢复

mongodb使用备份后的oplog做时间点恢复

时间:2024-04-28 15:14:26浏览次数:20  
标签:tmp -- mongodb 备份 db 192.168 oplog

环境:
OS:Centos 7
DB:mongodb 5.0

1.数据库备份
/opt/mongodb-database-tools/bin/mongodump -h 192.168.56.101:29001 -u test -p test123 --authenticationDatabase admin --db=db_pushmsg -o /tmp/bak

记录下备份的完成时间:
2024-04-28T14:39:24.628+0800 done dumping db_pushmsg.user (847999 documents)
2024-04-28T14:39:24转换成UTC时间:1714286364
该时间点用于导出oplog的开始时间点

 

2.模拟删除表
myrepl:PRIMARY> db.user.drop();


3.导出备份完成时候之后的oplog
mkdir /tmp/oplog
/opt/mongodb-database-tools/bin/mongodump -h 192.168.56.101:29001 -u test -p test123 --authenticationDatabase admin --db=local -c oplog.rs --query '{"ts":{"$gt": {"$timestamp":{"t":1714286364, "i":1}}}}' -o /tmp/oplog

解析:
/opt/mongodb-database-tools/bin/bsondump /tmp/oplog/local/oplog.rs.bson>/tmp/oplog.txt

找到删除表的时间点
[root@dsc1 tmp]# cat /tmp/oplog.txt|grep drop
{"op":"c","ns":"db_pushmsg.$cmd","ui":{"$binary":{"base64":"rco6crFcRn+aE24ikQd51w==","subType":"04"}},"o":{"drop":"user"},"o2":{"numRecords":{"$numberInt":"1000000"}},"ts":{"$timestamp":{"t":1714286707,"i":1}},"t":{"$numberLong":"3"},"v":{"$numberLong":"2"},"wall":{"$date":{"$numberLong":"1714286707948"}}}

删除的时间点为:1714286707

 

4.备份文件和oplog备份拷贝到异机
[root@dsc1 tmp]# scp -r bak [email protected]:/tmp/
[root@dsc1 tmp]# scp -r oplog [email protected]:/tmp/

 

5.异机恢复数据库
/opt/mongodb-database-tools/bin/mongorestore -h 192.168.56.103:27001 -u test -p test123 --authenticationDatabase admin -d db_pushmsg /tmp/bak/db_pushmsg

 

6.日志应用
/opt/mongodb-database-tools/bin/mongorestore -h 192.168.56.103:27001 -u test -p test123 --authenticationDatabase admin --oplogReplay --oplogLimit "1714286707:1" /tmp/oplog/local/oplog.rs.bson

 

标签:tmp,--,mongodb,备份,db,192.168,oplog
From: https://www.cnblogs.com/hxlasky/p/18163762

相关文章

  • mongodb异机做时间点恢复(基于时间范围查询导出oplog)
    环境:OS:Centos7DB:mongodb5原环境:1主2从,异机恢复的环境:单机(oplog.rs是否开启都可以,开启可以参考:https://www.cnblogs.com/hxlasky/p/17979922) 1.模拟写入数据连接主库模拟写入数据/usr/local/services/mongodb/bin/mongo192.168.56.101:29001useadmindb.auth("......
  • Oracle-无备份情况下,如何手动恢复控制文件
    1.测试场景本文主要模拟在控制文件没有备份的情况下丢失,如何根据已有的参数文件、数据文件、在线日志信息去手动生成控制文件。2.测试环境Oracle单实例:11.2.0.4数据文件目录:/u01/app/oracle/oradata/HJDB/datafile在线日志目录:/u01/app/oracle/oradata/HJDB/onlinelog3.创建......
  • Proxmox VE 8.2 引入 VMware 导入向导、增强的备份选项和高级 GUI 功能
    ProxmoxVE8.2引入VMware导入向导、增强的备份选项和高级GUI功能ProxmoxVE8.2发布-开源虚拟化管理平台请访问原文链接:https://sysin.org/blog/proxmox-ve-8/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgProxmoxServerSolutions发布了其服务器虚拟化......
  • mongodb异机做时间点恢复(异机建议部署免密登录)
    环境:OS:Centos7DB:mongodb5原环境:1主2从,异机恢复的环境:单机(oplog.rs是否开启都可以,开启可以参考:https://www.cnblogs.com/hxlasky/p/17979922) 1.查看当前的表数据情况myrepl:PRIMARY>usedb_pushmsg;switchedtodbdb_pushmsgmyrepl:PRIMARY>showtables;app......
  • MongoDB基础操作
    目录一、什么是MongoDB二、MongoDB与关系型数据库对比三、数据类型四、部署MongoDB1、下载二进制包2、下载安装包并解压3、创建用于存放数据和日志的目录,并修改权限4、启动MongoDB4.1前台启动4.2后台启动4.3、配置文件启动服务4.4、配置systemd服务4.5、systemctl启动MongoDB5、......
  • MongoDB db.collection.explain()
    db.collection.explain()封装了explain命令,推荐使用db.collection.explain()来执行explain命令。 db.collection.explain()返回以下方法的查询计划:aggregate()、count()、find()、remove()、distinct()、findAndModify() 因此,db.collection.explain()的使用方法就是......
  • 选择企业文件同步备份系统 需要注意这几点
    企业文件同步备份系统,是几乎每个企业都会用到的,都是为了保障业务数据的连续性、提高数据的可用性,让数据价值最大化。 企业在进行文件同步备份时可能会面临的问题包括:1、数据传输效率低下:在面对海量小文件时,传统备份方式需要对每个文件进行打开、读取、关闭操作,导致备份效率极......
  • mongodb 分片创建使用汇总
    5.Mongodb1.查看分片:db.runComand({listshards:1})2.查看数据存储情况:showdbs3.查看分片状态:sh.status()4.开启数据库分片配置:db.runComand({enablesharding:"testdb"})db.enableSharding("testdb")db.shardCollection("testdb.persons",{id:1})5.创建索引(如果有......
  • 6.prometheus监控--监控redis/rabbitmq/mongodb
    1.监控redis1.1安装方式1.1.1二进制源码安装方式参考nginx二进制安装方法redis_exporter下载地址:https://github.com/oliver006/redis_exporter/releases系统服务:cat>/etc/systemd/system/redis_exporter.service<<"EOF"[Unit]Description=PrometheusRedisExport......
  • SQL Server实战一:创建、分离、附加、删除、备份数据库
      本文介绍基于MicrosoftSQLServer软件,实现数据库创建、分离、附加、删除与备份的方法。目录1交互式创建数据库2Transact-SQL指定参数创建数据库3交互式分离数据库testbase14使用系统存储过程分离数据库testbase25数据库文件备份:分离数据库再复制其物理文件6数据库文件......