备份mongodb数据库

MongoDb是一个新的文档型数据库,但是因为它有点新,所以还是需要手动配置一些东西的。

甚至在特别简单易用的宝塔面板,都没有mongodb做自动备份适配,这里就来大概说一下mongodb的备份方式。

手动备份

mysql的备份是通过使用mysqldump导出指定数据库来实现,mongodb也提供了mongodump作为导出数据的方法。

命令格式:mongodump --host 主机名 --port mongo端口 --out 输出路径

如果提示找不到该命令,则需要手动安装一下,此处不做多赘述。

尝试使用一下命令:mongodump –host localhost –port 27017 –out /root/mongo_dump

接着在/root/mongo_dump目录下我们就看到了备份文件。

自动备份思路&脚本编写

可以写一个bash,每天执行一次,将文件输出到/tmp/mongo_backup底下。

利用上一篇文章提到的rclone,就可以实现每日将备份上传到OneDrive了。

#!/bin/bash
echo "正在备份...."
rm -rf /tmp/mongo_backup  # 删除该目录,防止出bug
echo "正在导出mongo数据库...."
mongodump --host localhost --port 27017 --out /tmp/mongo_backup
echo "压缩导出后的文件...."
cur_date="`date +%Y-%m-%d,%H:%m:%s`"
tar -zcvf "/tmp/$cur_date.tar.gz" /tmp/mongo_backup
echo "完成压缩,正在上传到OD...."
mv /tmp/$cur_date.tar.gz /mnt/od/
echo "上传完成,删除残留文件..."
rm -rf /tmp/mongo_backup  # 删除该目录,防止出bug
echo "任务完成..."

可以根据需要修改备份路径,备份的服务器等,将该文件保存到任意路径。接着添加计划任务:

输入 crontab -e 打开编辑界面

另起一行,粘贴:0 1 * * * [脚本路径] > /dev/null 2>&1 &

大功告成,最后手动执行一次脚本测试即可。

还原数据

将备份文件下载下来,使用 tar -zxvf 压缩文件名.tar.gz 解压压缩包,使用 mongorestore [解压出来的路径] 命令即可完成恢复。

建议在恢复前清空一下数据库,在恢复前的清空操作再次使用mongodumo命令备份。

进阶参考

mongorestore/dump的详细用法:https://www.mongodb.com/docs/database-tools/mongorestore/

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇