MongoDB增量备份

MongoDB的增量备份是通过Oplog来实现的。

在MongoDB复制集中,在主节点上的所有的对数据库的操作,都会在System -> local->Collections->oplog.rs 中记录下来。

增量备份可以通过对表中的相应时间中的操作记录进行备份,然后对备份的BSON文件进行恢复。

备份脚本

rem ******MongoDB backup start********
@echo off

echo wscript.echo DateDiff("s", "01/01/1970 00:00:00", Date())>sjc.vbs
for /f %%i in ('cscript sjc.vbs /nologo') do set startDate=%%i
set /a "startDate=%startDate%-28800"
echo %startDate%
set /a "endDate=%startDate%+86400"
echo %endDate%
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"

md E:\mongodbBackup\backup_%Ymd%\

"C:\Program Files\MongoDB\Server\4.0\bin\mongodump.exe" --host=localhost --port=27017 --authenticationDatabase=admin -d local -c oplog.rs --query "{"ts":{$gte:Timestamp(%startDate%, 1),$lt:Timestamp(%endDate%, 1)},ns:/^spark-demo/}" -o E:\mongodbBackup\backup_%Ymd%\

@echo on
rem ******MongoDB backup end********

恢复脚本

"C:\Program Files\MongoDB\Server\4.0\bin\mongorestore.exe" --host=127.0.0.1 --port=27017 --oplogReplay --authenticationDatabase=admin E:\mongodbBackup\backup_20190917072132

 

posted @ 2019-09-19 20:26  荆棘满布  阅读(962)  评论(0编辑  收藏  举报