最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

被小伙伴们吓哭了:可怕的命令

来源:动视网 责编:小采 时间:2020-11-09 19:19:11
文档

被小伙伴们吓哭了:可怕的命令

被小伙伴们吓哭了:可怕的命令:杀手级命令:rm -rf2014-5-17-某软件公司在生产环境误删数据库文件悲剧一:妹子在生产服务器上本意删除Oracle,但脚本中有一句:rm -rf $ORACLE_BASE/*不幸变量 ORACLE_BASE 未赋值Tomcat/MySQL...全删了事故发生后,没有及时发现,造成部分数据写入磁
推荐度:
导读被小伙伴们吓哭了:可怕的命令:杀手级命令:rm -rf2014-5-17-某软件公司在生产环境误删数据库文件悲剧一:妹子在生产服务器上本意删除Oracle,但脚本中有一句:rm -rf $ORACLE_BASE/*不幸变量 ORACLE_BASE 未赋值Tomcat/MySQL...全删了事故发生后,没有及时发现,造成部分数据写入磁

  1. 杀手级命令:rm -rf
  2. 2014-5-17-某软件公司在生产环境误删数据库文件
  3. 悲剧一:
  4. 妹子在生产服务器上本意删除Oracle,但脚本中有一句:rm -rf $ORACLE_BASE/*
  5. 不幸变量 ORACLE_BASE 未赋值
  6. Tomcat/MySQL...全删了
  7. 事故发生后,没有及时发现,造成部分数据写入磁盘,加大了不可恢复的几率
  8. 悲剧二:
  9. 找到脱机备份,发现备份文件只有1KB,里面只有几行熟悉的 mysqldump 注释。可用的、最接近的备份时间是2013年年底
  10. 应对:
  11. 把盘 umount,防止继续有数据写入
  12. 把盘以只读方式挂到另一台服务器上进行操作
  13. 用 ext3grep 工具恢复出了 MySQL 几个 binlog 文件
  14. 将 binlog 文件复制到测试服务器,运行 mysqlbinlog /usr/mysql-bin.000010 | mysql -uroot -p 命令,执行 binlog 还原
  15. 数据成功恢复
  16. 2013-6-26-”下厨房“误删数据库主节点分区
  17. 悲剧一
  18. 意图重建备份节点,需要把原来的从节点删除,重新安装,所以先使用了 rm -f 方式删除备份节点分区上的所有文件
  19. 5分钟后,发现刚才删除的是数据库主节点的分区
  20. 悲剧二
  21. 由于4月23日数据库主节点迁移并升级到 MySQL 5.5,导致备份任务停止
  22. 在长达两个月的时间里,一直没有将数据库备份节点恢复工作提上日程
  23. 只有主节点上开启了 binlog
  24. 应对
  25. 把整个分区 dd 成镜像,准备做将来硬盘恢复的备份
  26. 把 memcache 里的数据 dump 出来,以备可能的恢复(郑昀注:但只 dump 了一半,有人把服务重启了)
  27. 重新启用原来的从数据库,由于数据时间只到4月23日,需要调整近两月表结构变更,让最新的代码可以跑起来
  28. 联系上沃趣科技和北亚数据恢复中心,到7月1日上午,北亚数据恢复中心提取到几乎是完整的 ibdata1 文件,至7月2日凌晨4点,恢复了这次得到的所有数据
  29. 7月2日下午4点,北亚提取到 ibdata1 剩下的文件碎片,得到了完整的 ibdata1 文件,MySQL 无报错启动,从而得到了6月26日凌晨事故前的完整数据库
  30. 郑昀注1:对上述两个事件,都是”在MySQL运行情况下通过rm -rfs删除数据库文件“,那么文件到底删了吗?请看下厨房的事后总结:
  31. 『事后从沃趣科技的数据库工程师那里得知,我们第一时间停止 MySQL 防止硬盘继续写入这个应急措施是错误的,即使分区完全没有文件,MySQL 的进程继续运行,只要保留这个现场,可以从内存中获取更多的数据库结构信息,对恢复数据非常有帮助。』
  32. 郑昀注2:有人认为第一时间应该停止 Web 服务,而不是停止 MySQL 实例
  33. Redis的 shutdown 命令
  34. 据传,某东电商网站在某年双十一前出过一次不小的事故,原因居然是程序中要断开 Redis 的链接(命令应为:disconnect),但代码中写的是 shutdown……——Fenng
  35. rsync的源目录和目标目录写反了
  36. 悲剧的是,rsync 不仅同步很快,删除文件速度也很快,你把一个空目录当成源,那真正的源目录的数据瞬间消失……

总结:

备份是王道。

备份的可恢复性检查是王道中的王道。

保持清醒(严禁饮酒操作¥%#^)。

遇事冷静。

参考资源:

1,老周,2014,一次心惊肉跳的服务器误删文件的恢复过程;

2,下厨房,2013,下厨房6月26日数据丢失事故总结;


赠图1枚:

文档

被小伙伴们吓哭了:可怕的命令

被小伙伴们吓哭了:可怕的命令:杀手级命令:rm -rf2014-5-17-某软件公司在生产环境误删数据库文件悲剧一:妹子在生产服务器上本意删除Oracle,但脚本中有一句:rm -rf $ORACLE_BASE/*不幸变量 ORACLE_BASE 未赋值Tomcat/MySQL...全删了事故发生后,没有及时发现,造成部分数据写入磁
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top