资讯专栏INFORMATION COLUMN

Mongodb 定时备份和恢复

高璐 / 2025人阅读

摘要:就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦最后的一个参数,设置备份数据所在位置,例如。指定备份的目录你不能同时指定和选项。

定时对数据库进行备份可以有效地保护数据

MongoDB 数据备份

在 MongoDB 中我们使用 mongodump 命令来备份 MongoDB 数据

语法如下:

> mongodump -h dbhost -d dbname -o dbdirectory -u user -p password

-h MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017

-d 需要备份的数据库实例,例如:test

-o 备份的数据存放位置,例如:c:datadump,当然该目录需要提前建立,在备份完成后,系统自动在dump目录下建立一个test目录,这个目录里面存放该数据库实例的备份数据。

-u -p 如果有设置用户和密码,需要设置对应的用户名和密码,否则没有权限

MongoDB 数据恢复

mongodb 使用 mongorestore 命令来恢复备份的数据

>mongorestore -h <:port> -d dbname 

--host <:port>, -h <:port>:
MongoDB所在服务器地址,默认为: localhost:27017

--db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2

--drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

最后的一个参数,设置备份数据所在位置,例如:c:datadumptest。

你不能同时指定 和 --dir 选项,--dir也可以设置备份目录。

--dir:
指定备份的目录

你不能同时指定 和 --dir 选项。

定时备份 mongodb 环境

操作系统: Centos 7

一、 备份 shell 脚本 (/home/crontab/mongobk.sh)
#!/bin/sh
# dump 命令执行路径,根据mongodb安装路径而定
DUMP=/usr/bin/mongodump
# 临时备份路径
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now
# 压缩后的备份存放路径
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list
# 当前系统时间
DATE=`date +%Y-%m-%d`
# 数据库账号
DB_USER=user
# 数据库密码
DB_PASS=password
# 代表删除7天前的备份,即只保留近 7 天的备份
DAYS=7
# 最终保存的数据库备份文件
TAR_BAK="mongod_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d dbname -o $OUT_DIR/$DATE
# 压缩格式为 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除 15 天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit
二、创建对应的备份目录
mkdir -p /home/backup/mongodb_bak/mongodb_bak_now
mkdir -p /home/backup/mongodb_bak/mongodb_bak_list
三、修改文件属性,使其可执行
chmod +x MongoDB_bak.sh
四、添加到计划任务

cron服务是Linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

/sbin/service crond start

/sbin/service crond stop

/sbin/service crond restart

/sbin/service crond reload

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可

查看当前用户的crontab,输入 crontab -l;

编辑crontab,输入 crontab -e;

删除crontab,输入 crontab -r

1 进入编辑界面
 crontab -e 
2 添加任务
30 18 * * * /home/crontab/mongobk.sh

基本格式 :

        *  command

分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用或者 /1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

3 保存后退出,启动服务
service crond start 
4 设置开机自启动
chkconfig crond on
参考资源

centos(7.0) 上 crontab 计划任务

MongoDB的备份(mongodump)与恢复(mongorestore)

MongoDB 备份(mongodump)与恢复(mongorestore)

Centos7:利用crontab定时执行任务

Linux下MongoDB自动备份

mongodb 中文文档

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19041.html

相关文章

  • nodebb搭建,维护,discuz!数据迁移至mongo

    摘要:原文链接为什么选择了我也不知道官方中文论坛官方文档中文文档安装此处的方式是安装部署不用考虑环境配置问题,但是相应的也会有一些弊端比如文件的修改等变得麻烦下方为镜像的为了修改文件方便,加了一个文件夹方便和宿主机文件交换同步上传的 原文链接 为什么选择了NodeBB?我也不知道~~~ NodeBB官方Github NodeBB中文论坛 NodeBB官方文档 NodeBB中文文档 安装 此...

    Charlie_Jade 评论0 收藏0
  • 为你的mongodb砌堵墙吧,防止被攻击勒索

    摘要:起因年月,当大家都在为的逝去写总结,并为年的到来做计划的时候,一波黑客发动了一轮攻击,攻击的对象瞄准了数据库。他们删除了所有数据库数据,并留下一个勒索数据库。不幸的是,我也成为这幸运的一员。谨记,安全,安全,安全。 起因 2017年1月,当大家都在为16的逝去写总结,并为17年的到来做计划的时候,一波黑客发动了一轮攻击,攻击的对象瞄准了mongodb数据库。他们删除了所有数据库数据,并...

    calx 评论0 收藏0
  • 为你的mongodb砌堵墙吧,防止被攻击勒索

    摘要:起因年月,当大家都在为的逝去写总结,并为年的到来做计划的时候,一波黑客发动了一轮攻击,攻击的对象瞄准了数据库。他们删除了所有数据库数据,并留下一个勒索数据库。不幸的是,我也成为这幸运的一员。谨记,安全,安全,安全。 起因 2017年1月,当大家都在为16的逝去写总结,并为17年的到来做计划的时候,一波黑客发动了一轮攻击,攻击的对象瞄准了mongodb数据库。他们删除了所有数据库数据,并...

    Meathill 评论0 收藏0
  • MongoDB备份恢复

    摘要:不填写该参数会默认备份所有实例。指定备份的数据库的集合可以和配合使用。数据恢复命令参数所在服务器地址,默认为需要恢复的数据库实例,例如,当然这个名称也可以和备份时候的不一样,比如恢复的时候,先删除当前数据,然后恢复备份的数据。 更多内容欢迎来到博客 :https://imjianjian.github.io MongoDB数据备份 命令:mongodump 参数: -h: 服务器地址...

    keithxiaoy 评论0 收藏0
  • MongoDB备份恢复

    摘要:一的导入与导出导出工具概念中的工具可以把一个导出成格式或格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。恢复工具概念是从备份中恢复数据的工具,它主要用来获取的输出结果,并将备份的数据插入到运行的中。 一、Mongodb的导入与导出 1.1、导出工具:mongoexport 概念: mongoDB中的mongoexport工具可以把一个collection导出成J...

    2450184176 评论0 收藏0

发表评论

0条评论

高璐

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<