IT 界的有一个老梗,一次某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了…… 删库跑路,这一几乎每个程序员都懂得一个都市传说,让sudo rm -rf成了大佬蒙骗萌新的高频词汇...值得注意的是,犯罪嫌疑人已通过登录账号和IP地址被追查到,并且并非误操作,而是故意删库。 好吧,言归正传。本文我们来讨论下,程序员如何优雅地删库跑路。 1....4.MongoDB的删库跑路 # 删除当前数据库 use databaseName; db.dropDatabase() 5....删库中 可以即使在root用户下还是有些文件删不了,但是这些根本就不会影响到你需要跑路的后果。...删库完毕 删库完毕大部分命令失效,操作系统以及基本不可以用 重启试试 可以看到系统基本废了,不能用了,删库有风险使用需谨慎 开始跑路 8.后记 十二提醒你:道路千万条,数据第一条
“删库跑路”作为一种历史悠久、后果严重的公司资产损坏事故,一旦发生,后果难以估量,轻则业务短时间不可用,重则公司倒闭关门,甚至有人为此坐牢。已经发生的事件历历在目,希望大家引以为戒。...在实际工作中,诸如删除表数据、删除表乃至删除数据库等操作都较为常见,尤其是在测试和发布环境中。作为数据工程师,我们要注意掌握以下 Hive DDL 操作方法,并在生产环境中谨慎执行: 1....删除数据库 DROP DATABASE IF EXISTS mydb; -- 强制删除数据库,级联删除,会递归删除数据库中的所有表及其数据。
首先看下mysql误删数据排名最前的几种是: 1.误删文件 2.误删库、表 3.错误全表删除 / 更新 4.升级操作失误 都来看看你命中过几个,hoho。 简单说下我亲手造的一个大事故吧。...在这前几天,已经把一个新项目的数据库环境都部署好了,包括 自动化备份。 等我美美的出去玩的时候,悲剧发生了,业务要求进行数据回滚,但发现备份文件不可用,原因是 备份时指定的字符集和表字符集不一致。...删除数据库、表时,不要用drop命令,而是rename到一个专用归档库里; 2.删除表中数据时,不要直接用delete或truncate命令,尤其是truncate命令,目前不支持事务,无法回滚。...虽说现在大部分操作可以靠平台来完成了,但平台也不是万能的,不也发生过平台本身的缺陷造成数据丢失、代码回滚、部署失误等事故嘛,我就不点名了。 做好备份,不管是物理备份还是逻辑备份!...我们分别列举几种常见的情况: 1.执行DROP DATABASE / DROP TABLE命令误删库表,如果碰巧采用共享表空间模式的话,还有恢复的机会。如果没有,请直接从备份文件恢复吧。
在linux 下操作时经常需要用到rm -rf,一招不慎轻者从删库到跑路,重者跑路机会都没有。...(实际使用mv 来实现rm的删除加放入文件夹功能) 新增定时任务,定时清理回收站,防止过量空间占用 代码实现 rm 的实现:my_rm.sh 此脚本实现了 模拟rm命令进行文件以及文件夹的删除动作,同时模拟支持了
MongoDB 删库要跑路吗?其实有合理的备份,也不一定要跑路的。 在上一节,我们聊到了 MongoDB 5.x 副本集部署,这一节来聊聊副本集的数据备份。
[image-20210701173309480.png] 之前我们可能也听说过很多删数据跑路事件,其中一部分元凶正是这个命令。...定期备份 为了防止服务器上的数据(数据库、用户文件、配置文件等)被误删除,可以定期将服务器上重要的文件下载到本地或同步到其他存储空间上,一般使用定时脚本(crontab 命令等)或工具自动定时同步。...比如 mv 命令,作用是移动文件或改名,可以自己新建一个类似回收站的目录,然后把要删的文件扔进去。...项目地址:https://github.com/ali-rantakari/trash 权限管理 以上的方式对于个人服务器用户来说,一般就足够了,但如果是团队开发,多人同时在一台服务器上操作,就很难说谁突然删文件跑路了对吧...比如下列配置,禁止用户 yupi 使用 rm 命令,防止这货删文件跑路: [yupi] allowed = 'all' - ['rm'] --- 一般情况下,以上那么多种措施就足够防护了,也比较简单。
心里慌的一批的小林,跟我的朋友们说了这件事,朋友建议我先第一时间上报给 leader,不要把删库的事情瞒着。 于是,小林就向 leader 说了我删库事情,本以为会被痛批一顿。...不过你这么一整,我突然想起编译服务器半年没备份,我先备份一下我的编译服务器,防止哪天也被你们删库了。” 我:“????” 吃瓜的小伙伴,是不是觉得小林要删库跑路了?...哈哈哈,小林没跑路,反而是恢复了回来,所以接下来说说小林是如何「从删库到恢复」的。 正文 初探案发现场 来看看小林写的垃圾代码,是如何引发这次的删库。 ?...小林写的那么温柔的代码,竟然变成了穷凶极恶的删库代码。 ? 这下原因是找到了,反引号应该改成双引号才对。 小林你真菜呀,那么简单的赋值命令都写错。...小林现在是一个删过库没跑路的男人了,Goodbye, 我们下次见。
Redis作为最流行的内存数据库之一,几乎每个公司都对其有所依赖.而大家都会注意的问题是”mysql库的删库与跑路”,很容易忽略redis这个依赖性非常高的中间件,一旦出问题,势必对整个业务甚至整个公司有影响...再比如redis数据被误删了,缓存击穿,压垮数据库,系统雪崩....清空数据库: flushdb 清空所有记录: flushall 3. 服务关机: shutdown 4. 数据库互相交换swapdb swapdb 0 1 这将使数据库0与数据库1交换 5....重新加载rdb,加载与启动时加载类似,加载过程中只能服务部分只读请求(比如info,ping等) 8.1.3 debug loadaof 清空当前数据库,重新从aof文件里加载数据库 8.1.4 debug...请记住,一旦有人登录到您的服务器,就很容易规避我们已部署的redis特定的安全功能,所以防火墙很重要; 祸起萧墙,操作规范也非常重要,不要真的变成了删库跑路.
今天互联网圈子最火的一件事就是‘微盟被恶意删库’... ? 微盟公告 当然,该类事件在圈子内屡见不鲜,只是36小时恢复期比较长了......当然由于管理的不规范、权限的控制等问题依然可能造成某些人员恶意或非恶意的制造出‘删库跑路’事件。...下面盘点一下在我身边发生过的‘删库跑路’事件: 核心研发 应用服务器 4小时恢复 工作以来第一次接触的‘删库跑路’事件,当时公司的权限设置还是比较好的。...核心研发 删除数据库 3小时恢复 后来又发生一次删库事件,确实是删库,不存在争议! 研发收到leader的通知要删库某个数据库,相关数据已经迁移至其他平台存储。所以数据库要进行物理删除。...more... ---- 整体上来说,无论是在什么样的企业都会存在恶意或非恶意的删库事件。都是由于我们对于权限的控制与规则的控制没有做好。
刚见这条新闻波哥是有点不信的,一个公司的核心运维人员,要想搞破坏选择的时间、途径和方法都愚蠢到令人匪夷所思!!但是鉴于此人已经承认犯罪事实,那么咱们就不评判都有...
如果哪天不小心把表给删了,数据都没了或者一不留神被删库跑路了,那怎么把数据恢复呢?这就需要今天的主角binlog登场了。...说白了就是二进制日志记录了对 MySQL 数据库执行更改的所有操作,若操作本身没有导致数据库发生变化,该操作可能也会写入二进制文件。...这些事件使数据库从备份点更新,数据将变化恢复到指定的时间点(Point-in-time)。...主从复制(replication):主数据库向从数据库发送binlog到从数据库,从数据库执行和复制binlog从而将数据恢复到从数据库中。...审计(audit):用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击。 binlog的格式 MySQL有好3种格式记录binlog,具体的格式取决于MySQL数据库的版本。
延时节点解决方案 删库跑路也是个老梗了,可见在运维数据库的过程中误删除数据,或者开发的代码有bug,造成数据的误删除屡见不鲜。...但如果现有的数据库组建的都是PXC集群,没有Replication集群可以采用该方案吗?...在Master节点上创建临时库,这是为了先在临时库验证了数据的正确性之后再导入到业务库中,避免出现意外: create database temp_db; 然后导入数据: ?...把Master节点上的数据表重命名: rename table test_db.student to test_db.student_bak; 把临时库的数据表迁移到业务库中: rename table...,避免还原后覆盖新写入的数据 热备份数据库,以保证还原工作万无一失,关于备份相关内容可以参考:关于数据库的各种备份与还原姿势详解 清空需要恢复数据的数据表的全部记录,避免主键、唯一键约束的冲突 因为要恢复的是商品表
大家好,我是冰河~~ 今天,一位哥们打电话来问我说误操作了他们公司数据库中的数据,如何恢复。他原本的想法是登录数据库update一个记录,结果忘了加where条件,于是悲剧发生了。...那么,我们基于MySQL提供的这项设置,就可以轻松实现如何最大程度防止人为误操作MySQL数据库了。 什么?你不信?...不信我们就从MySQL的帮助说明说起,一起来看看如何基于MySQL的-u选项实现如何最大程度防止人为误操作MySQL数据库。...指定别名 我们可以将操作MySQL的命令做成别名,防止他人和DBA误操作数据库,将操作MySQL的命令做成别名也非常简单,这里,我们直接上示例了,如下所示。...如果想关闭连接服务器的会话终端,别名设置仍然有效,或者多个会话都能够使用这个别名来操作数据库,则我们可以将设置别名的命令添加到/etc/profile系统环境变量中,如下所示。
背景# 最近有一个需求,需要根据业务需求更新数据库中某张表的state字段数据,这其实是一个很简单的需求,sql语句就一行更新语句:update table set state = ?...一时之间还找不出究竟是什么引起的,隔了一段时间在同事的提醒下我才反应过来,如果不能及时知道问题的起因,那么排查问题的方向就会出错,拖得时间长了,造成的经济损失不可估量,幸好这个故障发生在国庆放假期间,不然真的就要跑路了
链接:http://dwz.date/caSp 日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生。但是,如果每次删库都跑路的话,怕是再也不好找工作了吧!...所以,删库跑路不是上上策。 1、前言 数据恢复的前提的做好备份,且开启 binlog,格式为 row。如果没有备份文件,那么删掉库表后就真的删掉了,lsof 中还有记录的话,有可能恢复一部分文件。...但若刚好数据库没有打开这个表文件,那就只能跑路了。如果没有开启 binlog,那么恢复数据后,从备份时间点开始的数据都没了。...4.2 使用延迟库跳过 4.2.1 不开启 GTID 使用延迟库恢复的关键操作在于 start slave until。...限制: binlog 格式必须为 row,且 binlog_row_image=full; 仅支持5.6与5.7; 只能回滚 DML(增、删、改)。
日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生,那么,如果连数据都恢复不了,还要什么 DBA。...如果没有备份文件,那么删掉库表后就真的删掉了,lsof 中还有记录的话,有可能恢复一部分文件,但若刚好数据库没有打开这个表文件,那就只能跑路了。...注意: 在新实例上恢复再dump出来是为了避免风险,如果是测试,可以直接在原库上操作步骤 2-6 只在 8.0 以前的版本有效 4.跳过误操作SQL 跳过误操作 SQL 一般用于执行了无法闪回的操作比如...删除表 b 后的数据库状态 chgnqm-3306>>show tables; +------------------+ | Tables_in_mytest | +------------------...是由美团点评公司技术工程部开发维护的一个回滚 DML 操作的工具,项目链接 MyFlash 限制: binlog格式必须为row,且 binlog_row_image=full 仅支持5.6与5.7 只能回滚DML(增、删、
据中国裁判文书网消息,原链家网(北京)科技有限公司数据库管理员韩冰因犯破坏计算机信息系统罪一审被判处有期徒刑七年,二审维持原判。...2018年6月4日 ,链家网(北京)科技有限公司数据库管理员韩冰利用其担任并掌握该公司财务系统“root”权限的便利,登录该公司财务系统,并将系统内的财务数据及相关应用程序删除,致使该公司财务系统彻底无法访问...被破坏的服务器是公司专门用于 EBS 系统的2台数据库服务器和2台应用服务器,存放着公司成立以来所有的财务数据,直接影响公司人员的工资发放等,对公司整个运行有非常重要的意义。...北京市海淀区人民法院判决认定:2018年6月4日14时许,被告人韩冰在位于本市海淀区上地三街福道大厦三层的链家网(北京)科技有限公司(以下简称链家公司),利用其担任链家公司数据库管理员并掌握公司财务系统
以我的经验推测,一定是生产环境的主备数据库都被删库了!并且大概率应该是做了rm -rf类型的极端操作。不用怀疑就是传说中的删库跑路!当然影响是产生了,人肯定跑不了!...(公众号回复 666,带你入圈) 02 防删库指南 除了微盟这次安全事故,关于删库跑路,一直是互联网的黑传说。...IT界有一个老梗,某论坛的数据库管理员抱怨自己老板一直虐待他,结果他一气之下就删库跑路了…… 再假设一种情况,如果在服务器维护的时候不小心执行了 rm -rf 命令……现在整台服务器被删光了肿么办???...03 关于云方案 先说下一点个人经历: 虽然没经历过删库跑路的情况,但是身边的程序员update语句不加where条件的情况发生过2次。 第一次,所在的公司是自建机房,由DBA团队管理数据库集群。...以上两个案例与删库跑路类似,都是数据丢失或数据污染之后的解决办法。但是处理起来,耗时不同。关键点在备份上! 给个建议!
2、索引的优点 A、提高数据检索效率,降低数据库的IO成本。 B、通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗。 C、大大加快数据的查询速度。...tablename DROP INDEX indexname; 8、索引信息的查看 SHOW INDEX FROM table_name; 9、索引的注意事项 A、索引不会包含有null值的列 在数据库设计时不要让字段的默认值为...B、使用短索引 C、索引列排序 因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。...3、查看索引占用的磁盘空间 schoolDB数据库索引占用的磁盘空间。...AS 'Total Index Size' FROM information_schema.TABLESWHERE table_schema LIKE 'schoolDB'; 查看schoolDB数据库数据占用的磁盘空间
避免删库跑路的最好办法 你好,我是悟空。 一、前言 1.1 删库跑路是什么? 删库跑路:是一个在开发和运维领域常见的幽默说法,但它指的是一种严重的故障情境:意外删除了生产数据库中的数据。...1.2 避免删除跑路的方式 权限控制: 限制对生产环境的直接访问和操作,确保只有受信任的人员才能执行敏感操作。 日志审计: 记录所有操作,包括谁、什么时间、做了什么操作,以便追踪和审计。...培训意识: 对员工进行安全意识培训,让他们了解删除跑路的危害,以及如何正确处理数据和执行操作。 而最最最重要的一种方式就是备份! 重要的事情说三遍:备份!备份!备份!...那么今天我们就来看下如何备份数据库以及重要的文件。...} expect eof" echo "完成远程备份 fdfs" rm -f $backup_location/$backup_time-fdfs-data.tar.gz* 六、总结 删库跑路是指某人恶意删除重要数据后逃避责任的行为
领取专属 10元无门槛券
手把手带您无忧上云