前言
- 若是你的数据库被删了,我在这先表示同情,先冷静,深呼吸,放松,
准备跑路!
- 我是由于数据库权限没有设置好,设置成了DDL权限,同事误操做致使数据库被删除。
- 个人数据库的环境是,阿里云的RDS mysql5.7 高可用版,若是你不是阿里云的RDS可能不大合适此文章。必定要开启RDS的SQL洞察功能能够查看sql记录。
事发
数据库被删了,平台登不上看错误日志,发现数据库不见了???赶忙提交工单让阿里云技术人员查看问题,获得回复:html
[问题定义]
描述问题:数据丢失
[处理建议]
请您在DMS或者mysql命令行确认下。
若是数据丢失,请您考虑使用DMS数据追踪或者克隆实例方法恢复数据
1.请您使用DMS数据追踪功能恢复数据,请您详见:https://help.aliyun.com/document_detail/63780.html
2.请您使用克隆实例按时间点恢复方法恢复数据,请您详见:https://help.aliyun.com/document_detail/96147.html
请您考虑开启SQL洞察功能查看实例的操做记录,SQL审计日志:记录对数据库执行的全部操做。经过审计日志记录,您能够对数据库进行故障分析、行为分析、安全审计等操做。
SQL洞察开启后才可查看相关记录。
请您详见:https://help.aliyun.com/document_detail/96123.html
============================
阿里云售后提示您:
对于涉及到数据的增删改查等测试,建议您先经过控制台或其余方式备份,或者建立一个新的测试环境,以避免误操做带来的生产环境数据丢失风险!
感谢您对阿里云的支持
数据丢失分红2种状况mysql
- 少部分数据被删除能够经过上面的DMS数据追踪功能恢复数据来恢复
- 数据库被删除只能用上面的第二种方法克隆实例按时间点恢复方法恢复数据来恢复
我是最惨的第二种状况。sql
处理
- 已经确认数据被删除了,网站挂上维护公告,让项目处于维护模式不能有新数据写入,关闭队列、定时任务等
- 使用RDS左边的SQL洞察功能查找数据库被删语句的时间
- 按照教程使用克隆实例按时间点恢复方法恢复数据操做:
- 进入出事RDS的管理界面
- 在左侧导航栏中,选择备份恢复
- 在页面右上角,单击数据库恢复(原克隆实例)
- 在弹出的页面中,选择新实例的计费方式(建议选择按量付费)
- 选择上面找出来的执行删库的时间,提早一秒
- 单击当即购买。
- 勾选《关系型数据库 RDS服务条款》,单击去支付,完成支付便可。
- 而后在RDS列表就看到一个新的RDS启动中
- 最后要很是有耐心的等待启动完成(我在这等了2个小时左右,大概150GB数据,仅供参考)
- 条件容许的状况下,把须要恢复的RDS数据库主库的CPU配置买高点,CPU直接影响恢复速度!!!
- 启动完成后的RDS数据就是刚才选择时间的数据
- 而后进行数据库迁移
- 进入数据传输(DTS)控制台。
- 在左侧导航栏中,选择数据迁移
- 单击建立迁移任务。
- 源数据库信息选择刚启动的RDS 数据库帐号密码和出事的RDS同样,须要高权限帐号 点击测试连接
- 目标数据库信息选择出事的RDS 密码同上 点击测试连接
- 单击受权白名单并进入下一步。
- 只选择结构迁移和全量数据迁移。 不要勾选增量迁移!
- 在左侧的迁移对象框中,选择要迁移的对象,单击>将这些对象移入已选择对象框框中。 选择你要恢复的数据库
- 开始迁移,弹出选择框,选择迁移最大的规格。(越大速度越快)
- 耐心等待进度条,我这边80GB的数据等了5小时
- 数据迁移成功能够用数据追踪功能 查看删库最后几条sql是否被成功恢复。
- 测试项目是否恢复正常
最后
发生这种事情能够提早制定跑路计划,提早购买人身意外险,若是数据库失败能够按计划执行。:)数据库