案例分析:记一次MongoDB误删集合的解决过程

 

背景

下午6点,风和日丽,办公室静悄悄的,一切都充满着祥和平静,但暴风雨前总是平静的,果然没过一会儿,隔壁部门的大诚哥就来找我:“小米,MongoDB数据能恢复吗?我删除了一个表怎么创建回来?”,我弱弱地问一句:“哪个环境?”,他说:“正式环境”,我:“……”,想准时下班的愿望泡汤了

 

解决方案

我们的这个项目是用云MongoDB部署的,默认每天凌晨都会进行一次备份,但现在距离凌晨备份已经很长时间了,无法使用自动备份的数据,只能看看云MongoDB是否可以恢复。

幸好,云MongoDB数据恢复功能可以最大程度地减少因数据库误操作引起的损失。云数据库MongoDB版提供了多种数据恢复方案,可满足不同场景下MongoDB数据库的数据恢复需求。

数据恢复至MongoDB实例

 

数据恢复至自建数据库

还可以将云数据库MongoDB的备份文件下载到本地,然后将数据恢复至自建数据库,可用于业务测试或数据分析等场景。

 

通过阅读官方文档我们分别采用了“MongoDB单库恢复”和“将MongoDB逻辑备份文件恢复至自建数据库”两种方式。

MongoDB单库恢复操作步骤

  1. 登录MongoDB管理控制台

  2. 在页面左上角,选择实例所在的资源组和地域

  3. 在左侧导航栏,单击副本集实例列表

  4. 找到目标实例,单击实例ID。

  5. 单击目标实例ID或目标实例所在行操作列,并选择管理。

  6. 单击全量备份页签。

  7. 通过以下任意一种方法选择需要恢复的数据库。

        7.1、按时间点创建实例

                7.1.1、单击按时间点创建实例。

                7.1.2、在按时间点创建实例面板,设置以下参数

                7.1.3、

 

                7.1.4、单击确定。

       7.2、从备份点创建实例

                7.2.1、在备份文件列表中,单击目标备份文件所在行操作列的,并选择从备份点创建实例。

                7.2.2、在从备份点创建实例面板,选择部分数据库,并勾选需要恢复的数据库库名。

                7.2.3、点击确定

8.新建实例

       8.1、在克隆实例页面,选择商品类型。

             8.1.1、副本集(包年包月):预付费,在创建实例时就需要支付费用。适合长期需求,价格比按量付费更实惠,且购买时长越长,折扣越多。

             8.1.2、副本集(按量付费):后付费,每小时根据实例配置生成1个收费订单,并扣除相应的账户余额。适合短期需求,用完可立即释放实例,节省费用。

          8.2、选择新购实例的配置信息,选择新购实例的配置信息

9.购买实例。

    9.1、单击立即购买。

     9.2、在确认订单页面,阅读并勾选云数据库MongoDB版服务协议。

     9.3、单击去支付。

     9.4、根据提示完成支付流程。

逻辑备份恢复至自建数据库

Mongorestore是MongoDB数据库自带的恢复工具,您可以通过Mongorestore将云数据库MongoDB副本集实例的逻辑备份文件恢复至自建MongoDB数据库中。

前提条件

  • 实例为MongoDB 4.2及以下版本的副本集实例。

  • 为保障兼容性,自建MongoDB数据库和云数据库MongoDB副本集实例的数据库版本相同。

准备工作

下载并安装与云数据库MongoDB实例数据库版本相同的MongoDB至自建MongoDB数据库所在客户端(本地服务器或云服务器ECS实例)。

操作步骤

  1. 登录MongoDB管理控制台。

  2. 在页面左上角,选择实例所在的资源组和地域。

  3. 在左侧导航栏,单击副本集实例列表。

  4. 单击目标实例ID或目标实例所在行操作列,并选择管理。

  5. 备份数据库。

    1. 在目标实例页面右上方,单击备份实例。

    2. 在备份实例 面板,选择备份方法 为逻辑备份。

    3. 单击确定,等待实例备份完成。

  6. 下载备份文件。

  7. 将下载的备份文件复制到自建MongoDB所在客户端(即安装有Mongorestore工具的客户端)。

mongorestore -h 127.0.0.1 --port 27017 -u root -p ******** --drop --gzip --archive=hins1111_data_20190710.ar -vvvv --stopOnError

写在最后

好兄弟可以点赞并关注我的公众号“javaAnswer”,全部都是干货。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件求生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值