MongoDB 备份

# 安装 MongoDump

新版本的 MongoDB 已经不包含 mongodump 备份工具了

需要自己手动下载

首先到官网中，选择对应版本的 MongoDB Command Line Database Tools

Download MongoDB Command Line Database Tools | MongoDB

点击 copy link 复制下载链接

接着到服务器中安装压缩包

Copy
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.7.4.tgz

并解压

Copy
tar -zxvf mongodb-database-tools-ubuntu2004-x86_64-100.7.4.tgz

重命名为 mongodb-database-tools

Copy
mv mongodb-database-tools-ubuntu2004-x86_64-100.7.4 mongodb-database-tools

接着进入 mongodb-database-tools/bin 目录下

将 mongodump 文件移动到 mongodb 所在的 bin 目录

Copy
mv mongodump /usr/local/mongodb/bin/

# 备份

现在就可以使用 mongodump 进行备份操作

例如

Copy
mongodump --uri="mongodb://root:root@localhost:27017/XXX"

就会在当前的目录下生成一个 dump 目录，里面就是 XXX 这个 collection 的备份文件

# 定时备份

## 编辑执行脚本

将备份的命令编辑成 sh 文件，例如 command.sh

Copy
#!/bin/bash

#获取当前时间
current_time=$(date +"%Y%m%d%H%M%S")

mongodump --uri="mongodb://XXX:XXX@198.52.0.0:27017/XXX"
mongodump --uri="mongodb://XXX:XXX@198.52.0.0:27017/XXX"
mongodump --uri="mongodb://XXX:XXX@198.52.0.0:27017/XXX"

#重命名文件
mv dump dump_$current_time

并且授予可执行权限

Copy
chmod +x ./command.sh

## 定时备份

使用 crontab 进行定时执行

Copy
crontab -e

在文件中添加

Copy
# 每天凌晨3点执行备份mongodb脚本
0 3 * * * /home/mongodbDump/command.sh

查看当前用户所有定时任务可以通过

Copy
crontab -l