相信很多人都听过删库跑路
这个词,用搜索引擎检索删库跑路
,可以看到很多程序员删库跑路的讨论和新闻。
但是,严格来讲,大部分程序员想删库跑路
也做不到。为什么呢?因为没有数据库的删除权限。——真正能删库跑路
的是运维,再准确点DBA。
那么平时业务中的删除是怎么做的呢?答案是逻辑删除
。
逻辑删除:又名软删除,与物理删除、硬删除相对应,含义是并没有实际的删除数据,只是将数据标记已删除
(例如增加is_deleted字段)。
为什么要用逻辑删除?
物理删除
很好理解,就是真的把数据给删了。
以MySQL为例,假如数据删了,应该怎么恢复呢?主要方式有两种。
利用 binlog 日志
binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。
使用binlog恢复数据,本质上就是通过binlog找到所有DML操作,去掉错误的SQL语句,然后执行其它的SQL语句,就可以将数据恢复。
binlog恢复数据示意图如下:
可以看到,恢复时候不仅需要停掉数据库,假如数据量大的话,去筛选恢复数据sql就
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。