centos下配置mongodb定期备份
https://brickyang.github.io/2017/03/02/Linux-%E8%87%AA%E5%8A%A8%E5%A4%87%E4%BB%BD-MongoDB/
一、备份与还原
1、备份
备份到文件夹
mongodump -u **用户名** -p **密码** -o **输出文件夹**
备份到存档文件
mongodump -u **用户名** -p **密码** --gzip --archive=**要存档的文件**
建议使用备份到存档文件,官方说性能更好
2、还原(以备份到存档文件)
还原全库
mongorestore -u **用户名** -p **密码** --drop --gzip --archive=**存档文件**
还原单库
mongorestore -u **用户名** -p **密码** --drop --gzip --archive=**存档文件** --nsInclude="库名称.*"
还原单表
mongorestore -u **用户名** -p **密码** --drop --gzip --archive=**存档文件** --nsInclude="库名称.表名称"
建议还原都加 --drop 清除参数,避免发生未知错误
3、新版备份还原工具如果返回授权错误需要指定参数--authenticationMechanism
如:--authenticationMechanism="SCRAM-SHA-256"
同时需使用--uri参数来指定带认证的数据库链接,用-u和-p参数和默认链接参数会报错
如:--uri="mongodb://[username:password@]host1[:port1]"
官方文档:
https://www.mongodb.com/zh-cn/docs/database-tools/mongodump/
https://www.mongodb.com/zh-cn/docs/database-tools/mongorestore/
二、创建定期备份
1、创建备份脚本 /data/backup/mongod.sh
#!/bin/sh
DUMP=mongodump
# 临时目录,需事先建好
OUT_DIR=/data/backup/mongod/tmp
# 正式目录,需事先建好
TAR_DIR=/data/backup/mongod
DATE=`date +%Y_%m_%d_%H_%M_%S`
DB_USER=<数据库管理员账号>
DB_PASS=<账号密码>
DAYS=14
TAR_BAK="$DATE.tar.gz"
cd $OUT_DIR
# 删除临时目录下的文件及目录
rm -rf $OUT_DIR/*
# 创建一个临时目录
mkdir -p $OUT_DIR/$DATE
# 执行备份命令
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE
# 打包压缩备份文件
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除14天之前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete
2、为脚本添加执行权限
chmod +x /data/backup/mongod.sh
3、配置自动执行(仅对centos,其他系统未测)
vi /etc/crontab
在文件内添加
0 2 * * * root /data/backup/mongod.sh
表示每天凌晨2点以root身份执行备份脚本
然后重启crond
service crond restart
浙公网安备 33010602011771号