背景
下午6点,风和日丽,办公室静悄悄的,一切都充满着祥和平静,但暴风雨前总是平静的,果然没过一会儿,隔壁部门的大诚哥就来找我:“小米,MongoDB数据能恢复吗?我删除了一个表怎么创建回来?”,我弱弱地问一句:“哪个环境?”,他说:“正式环境”,我:“……”,想准时下班的愿望泡汤了
解决方案
我们的这个项目是用云MongoDB部署的,默认每天凌晨都会进行一次备份,但现在距离凌晨备份已经很长时间了,无法使用自动备份的数据,只能看看云MongoDB是否可以恢复。
幸好,云MongoDB数据恢复功能可以最大程度地减少因数据库误操作引起的损失。云数据库MongoDB版提供了多种数据恢复方案,可满足不同场景下MongoDB数据库的数据恢复需求。
数据恢复至MongoDB实例
数据恢复方法 |
支持的实例类型 |
适用场景 |
注意事项 |
从备份点新建实例 |
单节点实例、副本集实例 |
适用于恢复整个实例,且对数据的时效性要求不高的场景 |
此操作将会基于备份数据创建一个新的实例,并将数据恢复至新实例中。 |
按时间点新建实例 |
副本集实例、分片集群实例 |
适用于多个库或整个实例的数据恢复场景,将数据还原至某个时间点 |
|
MongoDB单库恢复 |
副本集实例 |
适用于单个或多个数据库快速数据恢复的业务场景,例如误删了某个集合或文档。 |
|
直接恢复数据至当前实例 |
副本集实例(三节点) |
无 |
直接恢复数据到当前实例存在较大风险,建议使用按时间点新建实例的功能来恢复数据,做好数据校验后,再通过DTS工具迁移回原实例。 |
数据恢复至自建数据库
还可以将云数据库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.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、备份数据库。
5.1、在目标实例页面右上方,单击备份实例。
5.2、在备份实例 面板,选择备份方法 为逻辑备份。
5.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”,全部都是干货。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/5457.html