mongodb删除记录后磁盘没变 mongodb被删除数据库_备份文件

 

背景

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

mongodb删除记录后磁盘没变 mongodb被删除数据库_mongodb_02

 

解决方案

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

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

数据恢复至MongoDB实例

mongodb删除记录后磁盘没变 mongodb被删除数据库_nosql_03

 

数据恢复至自建数据库

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

mongodb删除记录后磁盘没变 mongodb被删除数据库_mongodb删除记录后磁盘没变_04

 

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

MongoDB单库恢复操作步骤

  1. 登录MongoDB管理控制台
  2. 在页面左上角,选择实例所在的资源组和地域
  3. 在左侧导航栏,单击副本集实例列表
  4. 找到目标实例,单击实例ID。
  5. 单击目标实例ID或目标实例所在行操作列,并选择管理。
  6. 单击全量备份页签。
  7. 通过以下任意一种方法选择需要恢复的数据库。

        7.1、按时间点创建实例

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

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

                7.1.3、

mongodb删除记录后磁盘没变 mongodb被删除数据库_备份文件_05

 

                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. 单击确定,等待实例备份完成。
  1. 下载备份文件。
  2. 将下载的备份文件复制到自建MongoDB所在客户端(即安装有Mongorestore工具的客户端)。

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