首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

库后,除了跑路还能怎么办?

我听说过挺多库的事件,于是开玩笑的略改一下:“日后你删了库后,不要把师傅说出来就行了”,不知道那些库的工程师们,其师傅有没有交代过这句话,emmm。。。...话说日后,孙悟空真的过一个数据库里的记录,这就是:生死薄。...投标应标咱不管了,可是删除了数据库怎么办? 等传票?拿护照?跑路去?nonono !以 MySQL 为例,这里对库语句做下分类: 1....使用 rm -rf 命令误删整个 MySQL 实例,只要还有备份节点就可以找回。...四面美团,收割 offer MySQL 优化实战记录 龙岗一个月350的出租房,我搬出来了 程序员工作 996 生病 ICU ? 一次非常有趣的 SQL 优化经历 如何阅读Java源码?

1K10

库后,除了跑路还能怎么办?

我听说过挺多库的事件,于是开玩笑的略改一下:“日后你删了库后,不要把师傅说出来就行了”,不知道那些库的工程师们,其师傅有没有交代过这句话,emmm。。。...话说日后,孙悟空真的过一个数据库里的记录,这就是:生死薄。...投标应标咱不管了,可是删除了数据库怎么办? 等传票?拿护照?跑路去?nonono !以 MySQL 为例,这里对库语句做下分类: 1....使用 rm -rf 命令误删整个 MySQL 实例,只要还有备份节点就可以找回。...操作需谨慎,库别跑路! 热门内容: 1、我特么富得给老铁发键鼠套装了! 2、mybatis-plus支持分布式事务了? 3、记住:永远不要在MySQL中使用UTF-8 4、终结HashMap面试?

66810
您找到你想要的搜索结果了吗?
是的
没有找到

库不必跑路!详解 MySQL 数据恢复

链接:http://dwz.date/caSp 日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生。但是,如果每次库都跑路的话,怕是再也不好找工作了吧!...所以,库跑路不是上上策。 1、前言 数据恢复的前提的做好备份,且开启 binlog,格式为 row。如果没有备份文件,那么删掉库表后就真的删掉了,lsof 中还有记录的话,有可能恢复一部分文件。...但若刚好数据库没有打开这个表文件,那就只能跑路了。如果没有开启 binlog,那么恢复数据后,从备份时间点开始的数据都没了。...我在测试环境搭建了两个 MySQL 节点,节点二延迟600秒,新建 a,b 两个表,每秒插入一条数据模拟业务数据插入。...限制: binlog 格式必须为 row,且 binlog_row_image=full; 仅支持5.6与5.7; 只能回滚 DML(增、、改)。

1.3K30

库不跑路:论MySQL数据恢复

日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生,那么,如果连数据都恢复不了,还要什么 DBA。...如果没有开启 binlog,那么恢复数据后,从备份时间点开始的数据都没得了。如果 binlog 格式不为 row,那么在误操作数据后就没有办法做闪回操作,只能老老实实地走备份恢复流程。...--datadir= --copy-back 2.3.基于时间点恢复 基于时间点的恢复依赖的是binlog日志,需要从 binlog 中找过从备份点到恢复点的所有日志...节点,节点二延迟600秒,新建 a,b 两个表,每秒插入一条数据模拟业务数据插入。...是由美团点评公司技术工程部开发维护的一个回滚 DML 操作的工具,项目链接 MyFlash 限制: binlog格式必须为row,且 binlog_row_image=full 仅支持5.6与5.7 只能回滚DML(增、

1.5K20

MySQL--增,,改

将查询结果添加到另一张表中 insert into newGrade select * from grade; 2、删除 语法: delete from 表名 删除表中所有的记录 (使用delete删除的数据可以恢复...,得开事务,删除时一定要带条件,不然就是删除所有记录) delete from newgrade newgrade表中所有的数据都被删除了 语法: delete from 表名 where 条件 delete...newgrade where gradeid>=5 and gradeid<=7 delete from newgrade where gradename='二年级' 程序中最为常见的用法就是根据主键进行删除数据...语法: truncate table 表名; 彻底删除数据不可恢复,不使用, truncate 删除之后会将自增也还原 无论是执行truncate删除还是delete删除,主外键关系检查打开的时候...,子表中有引用主表的数据时,删除操作都会报错 先查看foreign_key_checks系统变量的值,show VARIABLES like 'foreign_key_checks' 结果是ON 打开状态

14510

MySQL库到跑路(一)——MySQL数据库简介

MySQL是一个关系型数据库管理系统,MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,就增加了速度并提高了灵活性。...   G、提供TCP/IP、ODBC和JDBC等多种数据库连接途径    H、提供用于管理、检查、优化数据库操作的管理工具    I、可以处理拥有上千万条记录的大型数据库 3、MySQL应用 与大型数据库例如...二、MySLQ存储引擎 1、MySQL存储引擎简介 插件式存储引擎是MySQL数据库最重要的特性之一,用户可以根据应用的需要选择如何存储和索引数据库,是否使用事务等。...mySQL默认支持多种存储引擎,以适应不同领域的数据库应用需要。...MySQL Workbench(GUITOOL)一款专为MySQL设计的ER/数据库建模工具,是著名的数据库设计工具DBDesigner4的继任者。

2K20

MYSQL 基本操作-管理数据数据【之增,,改】

文章目录 前言 MYSQL基本操作-表的相关操作04 修改数据表 修改表名 修改字段排列顺序 修改字段数据类型 修改字段名字 添加字段 删除字段 删除数据MYSQL基本操作-管理数据数据05...插入记录 修改表中的全部数据 删除记录 删除表中的全部数据 结语 ---- 前言 内容: MYSQL基本操作-表的相关操作04 MYSQL 基本操作-管理数据数据【之增,,改】05 MYSQL基本操作...可以看到跟删除库差不多 实际栗子 # 删除表如果存在 drop table if exists customers; MYSQL基本操作-管理数据数据05 插入记录 insert 属于DML语句(数据操纵语句...customers插入如下的数据。...delete from customers; 结语 下一篇:MYSQL 基本操作-select 查询语句-06

82710

除了 MySQL,这些数据库你都认识么?

比较经典的关系型数据库产品有 MySQL、Oracle、PostgreSQL、Microsoft SQL Server 等。其中,MySQL 由于开源又易学,已经成为后端开发同学必学的数据库技术。...对于大多数项目,用 MySQL 等关系型数据库来存储数据就足够了。但关系型数据库不是银弹!在某些场景下,比如要存储的数据间没有关系时,它并不是最佳的选择。...解决特定问题的数据库 相信很多同学对数据库的印象就停留在 MySQL 和 Redis。的确,以上两类数据库几乎已经可以解决所有问题! 但是,未必是最适合的。...数据库也是一样,除了传统的关系和非关系型数据库之外,还有很多用于解决特定问题的数据库。...除了灵活之外,文档数据库也有很高的可扩展性,适用于内容管理系统(比如博客)、文档协同编辑系统等。 个人比较推荐学习的文档数据库是 MongoDB,入门难度极低,对前端同学也很友好。

81160

MySQL 案例:Delete 数据后磁盘空间未释放

问题描述 在 MySQL 中使用 delete 语句删除数据之后,监控视图中可用的磁盘空间没有增加,磁盘使用率没有下降等等。...解决方案 delete 不释放空间是 MySQL 自身机制的原因,需要重建表才可以释放磁盘空间,可以参考的操作: 执行 optimize table ${table_name}。...问题分析 在 MySQL 的机制中,delete 删除的行只是被标记为删除状态,如果删除的行很多,整个数据页(innodb_page)的行都会被删除的时候,数据页也只会标记为删除,都不会真正的物理删除,...这说明数据虽然删了,但是并没有被释放,仍旧被 test1 表占用,只是显示处于 free 状态,以后再写入新数据的时候就可以直接复用,而不需要在申请新的磁盘空间了。

9.7K124

MySQL - 库了,但是很慢

mysql 上执行了一句 drop database 半天没有完成,详细的慢查询日志如下,那当时MySQL 在做什么呢?...可以看到在库时调用的是 mysql_rm_db 这个函数,而这个函数又调用了 mysql_rm_table_no_locks 函数,mysql_rm_table_no_locks 会去清理数据字典。...现在问题就来了,如果只是要清理数据字典!那库为什么会慢呢?回答这个问题还需要更加深入地分析才行。...这里可以看到 drop table 要清理数据字典里面对应表的元数据,但是这个清理不只是删除一条记录这么简单,它还要把磁盘上的文件也清理掉。...我在分析清理文件的时候发现 vfs 并没有 rm_file 这样的 API ,而是采用“以写代” 的方式来完成删除操作; 也就是说操作系统并不直接去删除文件,而是把文件系统里面对应的 inode 标记为

2.3K20

库跑路】使用Binlog日志恢复误删的MySQL数据

前言 “库跑路”是程序员经常谈起的话题,今天,我就要教大家如何!库!跑!路! ?...开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQL的binlog日志是什么?通常是用来干什么的?...模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。 写这篇文章的初衷,是有一次我真的险些把测试数据库的一张表给删除了,当时吓出一身冷汗。...好了,回归正题,这篇文章就是想让大家放心,MySQL就算进行了误删操作,也基本都能够抢救回来。尤其是大公司内,数据可不是你想就能删掉的,有无数权限/备份阻拦着你。...结语 库跑路不用怕,其他开发运维都等着恢复你的数据呢,多好的练手机会是不是。

4.1K20

MySQL库到跑路_高级(一)——数据完整性

作者:天山老妖S 链接:http://blog.51cto.com/9291927 一、数据完整性简介 1、数据完整性简介 数据冗余是指数据库中存在一些重复的数据数据完整性是指数据库中的数据能够正确反应实际情况...2、数据完整性实现方式 ? MySQL不支持Check约束,虽然可以在列上添加check约束,但不起作用。...2、主键 MySQL的主键名总是PRIMARY, 当创建主键约束时,如果表的存储引擎是innoDB,系统默认会在所在的列和列组合上建立对应的唯一索引。...可以在数据数据类型整数型的列上添加自增主键。 ?...四、参照完整性 1、参照完整性简介 MySQL参照完整性一般是通过MySQL外键(foreign key)实现的。 外键(仅innoDB支持)所引用表的列必须是主键。

1.9K20

库不跑路!我含泪写下了 MySQL 数据恢复大法…

相关文章 MySQL备份策略:https://segmentfault.com/a/1190000019955399 MySQL数据恢复:https://segmentfault.com/a/1190000020116271...如果没有开启 binlog,那么恢复数据后,从备份时间点开始的数据都没得了。如果 binlog 格式不为 row,那么在误操作数据后就没有办法做闪回操作,只能老老实实地走备份恢复流程。...--datadir= --copy-back 2.3 基于时间点恢复 基于时间点的恢复依赖的是binlog日志,需要从 binlog 中找过从备份点到恢复点的所有日志...节点,节点二延迟600秒,新建 a,b 两个表,每秒插入一条数据模拟业务数据插入。...限制: binlog格式必须为row,且 binlog_row_image=full 仅支持5.6与5.7 只能回滚DML(增、、改) 5.2.1 安装 # 依赖(centos) yum install

58730

MySQL系列】- binlog预防库跑路

说白了就是二进制日志记录了对 MySQL 数据库执行更改的所有操作,若操作本身没有导致数据库发生变化,该操作可能也会写入二进制文件。...审计(audit):用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击。 binlog的格式 MySQL有好3种格式记录binlog,具体的格式取决于MySQL数据库的版本。...至于update或者delete等修改数据的语句,还是会记录所有行的变更。 binlog的参数 log_bin:是否开启binlog,MySQL8.0之前默认是关闭的,之后默认是开启的。...binlog默认在MySQL数据路径下。 max_binlog_size:单个binlog文件的最大值,默认值也是最大值是1GB,最小值为4096 byte。...总结 开启binlog会使MySQL性能下降,官网中测试表名性能会下降1%左右。但是binlog的开启利大于弊,在数据需要恢复和主从复制的情况下,binlog的利显得更大。

77830

MySQL存储过程与定时

在工业监控里面,需要对每天的数据,进行记录,时间长了之后,MySQL数据库很容易撑爆。这时候,如果允许可以对之前的数据进行一次清除,只记录几个月内的数据。...repeat循环*/     UNTIL done END REPEAT;     /*关闭游标*/     close g_cursor; select 'OK'; end $ delimiter; 在MySQL...id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 执行脚本: call p_clearOldData('2019_03', 7); 会发现, 表确实被删除了, 且别的表并未受到影响...在不能发后台包的情况下, 可以通过mysql定时任务和存储过程, 来实现定时表操作。...*注: 以上操作,不推荐在MySQL中通过定时任务和存储过程来实现此功能,推荐通过后台定时任务执行表操作。

1.4K20
领券