本文介绍:
mongodump 是数据备份命令,常见选项如下:
--host <hostname>
数据库主机名--port <port>
数据库端口--db <dbname>
数据库名称--username <username>
数据库登录用户名--password <password>
数据库登录密码--collection <collection>
数据库集合名--uri <connection_string>
数据库连接字符串--gzip
压缩备份文件--out <output_directory>
备份文件输出路径# 备份本机 27017 端口的 mydatabase 数据库,输出路径 /backup/
$ mongodump --host localhost --port 27017 --db mydatabase --out /backup/
# 使用数据库连接字符串备份数据,输出路径 /backup/
$ mongodump --uri mongodb://user:password@localhost:27017/mydatabase --out /backup/
# 备份本机 27017 端口的 mydatabase 数据库,通过用户名密码验证权限,输出路径 /backup/
$ mongodump --host localhost --port 27017 --db mydatabase --username xxx --password yyy --out /backup/
# 备份本机 27017 端口的 mydatabase 数据库,只备份 users 集合,输出路径 /backup/
$ mongodump --host localhost --port 27017 --db mydatabase --collection users --out /backup/
# 备份本地 27017 端口的 mydatabase 数据库,并使用 gzip 压缩,输出路径 /backup/
$ mongodump --host localhost --port 27017 --db mydatabase --out /backup/ --gzip
mongorestore 是数据恢复命令,常见选项如下:
--host <hostname>
数据库主机名--port <port>
数据库端口--db <dbname>
数据库名称--username <username>
数据库登录用户名--password <password>
数据库登录密码--collection <collection>
数据库集合名--uri <connection_string>
数据库连接字符串--gzip
压缩备份文件--drop
在恢复前删除目标集合--out <output_directory>
备份文件输出路径# 恢复整个数据库
$ mongorestore --host localhost --port 27017 --db mydatabase /backup/mongodb/mydatabase
# 恢复单个集合
$ mongorestore --host localhost --port 27017 --db mydatabase --collection users /backup/dump/mydatabase/users.bson
# 使用连接字符串恢复
$ mongorestore --uri mongodb://user:password@localhost:27017/mydatabase /backup/dump/mydatabase
# 恢复并解压
$ mongorestore --host localhost --port 27017 --db mydatabase --gzip /backup/dump/mydatabase
# 在恢复前删除目标集合
$ mongorestore --host localhost --port 27017 --db mydatabase --drop /backup/dump/mydatabase
#!/bin/bash
# 备份目录路径
BACKUP_DIR="/var/backups/mongodb"
# 时间戳,用于创建备份文件名
DATE=$(date +%Y%m%d%H%M%S)
# 备份文件名
BACKUP_FILE="$BACKUP_DIR/mongodb_backup_$DATE"
# 日志文件路径
LOG_FILE="/var/log/mongodb_backup.log"
# 这部分需要修改为你自己的配置
MONGO_HOST=""
MONGO_PORT=""
MONGO_DB=""
MONGO_USER=""
MONGO_PWD=""
# 创建备份目录
mkdir -p $BACKUP_DIR
# 执行 mongodump 备份并记录日志
mongodump --host $MONGO_HOST --port $MONGO_PORT --db $MONGO_DB --username $MONGO_USER --password $MONGO_PWD --out $BACKUP_FILE >> $LOG_FILE 2>&1
# 压缩备份文件并记录日志
tar -czf $BACKUP_FILE.tar.gz -C $BACKUP_DIR mongodb_backup_$DATE >> $LOG_FILE 2>&1
# 删除原始备份目录
rm -rf $BACKUP_DIR/mongodb_backup_$DATE
# 删除超过 7 天的备份文件并记录日志
find $BACKUP_DIR -type f -name "*.tar.gz" -mtime +7 -exec rm {} \; >> $LOG_FILE 2>&1
# 打印脚本执行结果并记录日志
echo "MongoDB backup completed at $(date)" >> $LOG_FILE 2>&1
$ chmod +x backup_mongodb.sh
在终端输入如下命令,观测脚本执行结果。
$ /usr/local/bin/mongodb_backup.sh
如果有报错,大多是数据库连接问题,检查数据库相关配置是否正确。
执行如下命令会打开一个定时任务编辑器
$ crontab -e
添加如下配置,含义是每天凌晨3点执行备份脚本。
0 3 * * * /usr/local/bin/mongodb_backup.sh
↶ 返回首页