记阿里云mysql丢表丢数据的实践记录

第一时间挂工单,联系工程师指引,现在回过来想,第一时间要确认发生时间。

1.通过性能视图(马后炮的总结,实际凭记忆恢复了三四次才找到数据)

2.先恢复数据

通过Navicat工具,结构同步,数据同步恢复数据保证

3.原因排查

下载对应的Binlog日志文件

找到一台有mysql 5.7的库(注意与阿里云mysql的版本一致的)

怀疑的日志文件

参考指引

1.RDS MySQL实例实时生成本地日志(Binlog),当一个Binlog文件的大小超过 512 MB,或者写入超过6小时时,系统会自动切换到下一个序号的Binlog文件并继续写入。 参考;查看或删除MySQL本地日志(Binlog)_云数据库 RDS(RDS)-阿里云帮助中心

2.或者可以看下数据追踪,免费是近一个小时内可以追踪(更长时间涉及其他付费管控模式),可以追踪delete、update、insert 的语句的,drop没法追踪 数据追踪_数据管理(DMS)-阿里云帮助中心

binlog转sql的方法

复制代码
mysqlbinlog -vv --base64-output=decode-rows ats-mysql-bin.000872>000872.sql

排查语句,搜索丢失的表名快速定位语句

通过时间戳确定操作时间

4.其他问题

4.1执行binlog转sql的时候提示错误unknown variable 'default-character-set=utf8' 或者unknown variable 'character-set-server=utf8'

找到my.ini配置文件把default-character-set=utf8和character-set-server=utf8都注释掉,重启mysql再进行操作

4.2如何确定操作ip,操作账号,操作人?

基础版本不支持后台及时查看,需要升级高可用版本才行,配合信任ip可以减少非自主的操作

选择升级到高可用版本,高可用可以开启sql审计 升级高可用参考;基础系列升级为高可用系列_云数据库 RDS(RDS)-阿里云帮助中心 开启sql审计参考:https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/use-the-sql-explorer-and-audit-feature-on-an-apsaradb-rds-for-mysql-instance?spm=a2c4g.11186623.0.i10

相关推荐
敲个大西瓜11 小时前
Java项目常用数据归档方式
mysql
kyriewen13 小时前
面试官让我查各部门工资最高的员工,我用AI三秒写出窗口函数,他愣了
后端·mysql·面试
小码工作室13 小时前
使用 HAVING 进行 MySQL 集合筛选
mysql
罗超驿13 小时前
18.事务的隔离性和隔离级别:MySQL面试高频考点全解析
数据库·mysql·面试
小江的记录本14 小时前
【Java基础】Java 8-21新特性:JDK21 LTS:虚拟线程、模式匹配switch、结构化并发、序列集合(附《思维导图》+《面试高频考点清单》)
java·数据库·python·mysql·spring·面试·maven
木心术114 小时前
Windows系统下MySQL与AI工具集成方案:数据存储与调用实践
人工智能·windows·mysql
这个DBA有点耶15 小时前
SQL改写实战:子查询、CTE、窗口函数性能对比
数据库·mysql·性能优化
小江的记录本15 小时前
【Java基础】反射与注解:核心原理、自定义注解、注解解析方式(附《思维导图》+《面试高频考点清单》)
java·数据结构·python·mysql·spring·面试·maven
Java成神之路-15 小时前
深入拆解 MySQL InnoDB 隔离级别:从 MVCC 到临键锁
mysql
罗超驿16 小时前
19.告别复杂SQL!用MySQL视图把逻辑拆成“变量”式操作
数据库·mysql·面试