DBA的悲伤,不是没有做备份,就是没有做有效的备份。日光之下,并无鲜事。 都说一个没有删过数据库的DBA,职业生涯是不完整的,不过当你删过之后,你的DBA生涯可能就完(整)了。 今天我们要讲一个做了五重备份但无一有效备份最终导致数据库恢复失败全面崩溃的故事。 今日,据GitLab.com官方网站发布声明称由于其产品数据库问题导致的网站无法正常访问。GitLab网站的主要功能如下: GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公
在数据处理和管理过程中,误删数据是一个极为令人头疼的问题。特别是在没有备份的情况下,一旦数据被删除,可能会导致不可估量的损失。然而,幸运的是,对于某些情况,我们仍然有一些方法可以尝试恢复误删的数据。在本篇博客中,我将向您介绍一些用于恢复误删数据的技术和方法,以及如何在代码中实现它们。
在 IT 圈内,“删库跑路”已经成为程序员经常提及的一句玩笑话。虽然是玩笑话,但却反映了数据库内数据对企业的重要性。2020年的“微盟事件”就直接让香港主板上市公司微盟集团的市值一天之内蒸发超10亿元,数百万用户受到直接影响。
当业务对数据库进行了误操作,导致了数据的丢失或其他问题的发生。此时,虽然可以通过备份恢复或数据闪回等方式能够对数据库进行恢复,但是该过程可能会导致业务出现较长时间的中断,最终影响业务系统的稳定性。
编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》一书收录了大量现实案例,现在整理分享给大家,共为警示。 📷 案例分享 ---- 误删除Oracle软件 硬件维护人员删除归档日志的时候,把节点2的整个ORACLE_HOME都删除了。在删除的时候没有注意到目录改变了,还键盘做了一个向上的动作,刚好就是刚刚使用的 rm -rf *,然后一个下意识的动作回车就这么按下去了。 空格
看到标题,有的童鞋心中暗想“数据删除有什么可提的呢?不就是执行个delete语句吗?有什么难的呀?”其实呢数据删除没有你想的这么简单,一般情况下公司会明确的要求数据只能逻辑删除,不能物理删除。那什么优势逻辑删除,什么又是物理删除呢?
删库跑路也是个老梗了,可见在运维数据库的过程中误删除数据,或者开发的代码有bug,造成数据的误删除屡见不鲜。不过现在也有许多用于恢复或预防误删除的方案,例如SQL管理系统,将要执行的SQL先交由管理员审核,然后由管理员备份一个镜像数据库,在镜像上执行该SQL,并在执行后还原镜像。这样经过层层把关就可以大大减小出现误操作的几率。
Flashback恢复数据的原理是通过修改binlog内容,拿回原库进行回放,前提是binlog_format=row和binlog_row_image=FULL。
MySQL 的主从复制( Replication )关系,不太严谨的叫法是 “同步” 或者 “主从同步”。实际上在早期,MySQL 的主从并不能实现真正的 “同步”( Sync ),而是 “异步” 的( Async )。
本文档主要以CentOS7操作系统为例,介绍如何使用开源工具Extundelete快速恢复被误删除掉的数据。
redo是引擎层的日志,而且是InnoDB特有的。InnoDB的redo log是有固定大小的,比如可以配置为 一组4个文件(logfile-1,logfile-2,logfile-3,logfile-4),每个文件的大小是1GB,那么它总共可以记录4GB的操作。一个环状循环结构,从头开始写,写到末尾又回到开始循环写。
编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》一书收录了大量现实案例,现在整理分享给大家,共为警示。 在数据库日常管理过程中,有些威胁来自数据库外部,而有些威胁则来自数据库内部,对于数据库外部,破坏性的操作有rm,而在数据库内部,同样有破坏性操作,如Truncate。 案例分享 ---- 误删除数据表 原来接手一个部门的所有数据库,结果漏了一个,也没人告诉我,所以我不知道这个数据库存在。一
敲黑板:在Linux操作系统中,文件名只是inode号码便于识别的绰号,操作系统通过inode号来识别文件,而非文件名。
SQL数据库修复的三大核心技术: 1、磁盘阵列分析重组技术; 2、数据库恢复与修复技术; 3、SCSI盘物理故障开盘技术。
本次恢复的数据库安装在客户本地服务器上,服务器操作系统为windows2008 r2 。在当前环境内安装有mysql5.6单实例,引擎类型为innodb,表内数据存储所使用表空间类型为独立表空间。未进行数据库备份,未开启binlog。
一个同事不小心使用rm -rf命令误删了自己的代码,这意味着一个月的工作丢失了(一个月没有备份过代码,看来他以前一定没经历计算机崩溃的灾难)。我们知道rm命令无法撤销,那么有没有办法恢复这个被删除的目录以及其中的全部文件呢?
这几天,一直在关注微盟删库事件的进展,在3月1日晚上,微盟发布最新公告称数据已经全面找回。而此时,距离事故发生的2月23日晚,过了有足足七天七夜,也就是7*24小时。
以下以oracle数据库为例,介绍关于表中数据删除的解决办法。(不考虑全库备份和利用归档日志)
每逢假期,我们总会接收到很多数据库故障救急请求,因此我甚至经常发出以前的一个总结:警惕数据库假期综合症,呼吁大家提高警惕,防范疏忽下发生的故障和问题。 在这个元旦假期中,我们同样收到了很多的紧急援助请求,这其中大多是熟悉的问题,包括: 数据库回滚段问题导致的ORA-01555错误; SYSTEM表空间坏块导致的BootStrap失败,2662错误; 误删除导致的数据丢失; 空间不足导致的归档挂起; 阳光之下,并无新事,这些问题大都是我们以前曾经面对过的,很多专家已经写过了很多案例,如果大家对类似的问题感兴
每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug。
hi,偶然间看到在linux运行了rm命令之后还能恢复,很是神奇所以就看了下,不知道是不是真的,管他呢先转载啊,不行再删呗反正怎么都是灌水,此文教程并未测试,如有问题请@原作者,在我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,一旦误删没办法了然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,假如真的不小心删除了不该删除的文件,比如数据库、日志或执行文件,咋办呢?今天带大家一起看看大神是如果拯救被误删的文件。
shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~ 今天就来聊聊 linux 下一个常见的问题:如何避免误删目录。下文会详细的讲述不同的场景下误删目录,以及相应的解决方案。 1、变量为空导致误删文件 base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file 这种情况下如果 cmd 执行出错或
大家好,我是Stanley「史丹利」,今天聊 Linux 下rm危险命令禁用,昨天我们终于把集团剩余的1200台服务器禁用rm命令了。
对于进程正在使用文件的场景,数据可以恢复是由于Linux系统下文件包含两个部分:inode 和 block ,其中 inode 中每个文件都有 2 个计数器:i_count 和 i_nlink 。只有当 i_count 和 i_nlink 均为 0 时,文件才算被删除,但被其他进程调用的文件,i_count 将不为 0。
那大概是一个春暖花开的季节,我的内心是激动澎湃的,因为已经安排了休假计划。在这前几天,已经把一个新项目的数据库环境都部署好了,包括 自动化备份。
每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有 bug,呵呵。
shell 作为一门 linux 下使用广泛的系统语言,语法简单,上手容易,但是想要用好,少犯错误,也不是那么容易的一件事,可谓虽是居家旅行之良药,但也是杀人灭口之利器~
首先看下MySQL误删数据排名最前的几种是什么,然后说几点平时预防误操作导致文件/数据丢失不成熟的建议,最后再说万一发生误操作时,怎么以最快速度进行补救。
关于删库跑路的事故现在已经屡见不鲜了,数据备份的必要性是企业数据管理极其重要的一项工作。关于数据备份、恢复也有很多场景及方法,本系列也会将主要的几种工具通过案例进行演示。
2.此时不要关闭mysql服务,查询到mysql的句柄号,通过句柄号恢复ibd文件
每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵。
张乐奕 云和恩墨副总经理,Oracle ACE总监,ACOUG 联合创始人 没有删除过数据库的DBA职业生涯是不完整的,删除过数据库还能幸存的DBA一定是订阅了“Oracle”公众号。 昨晚有朋友在微信群中求助讨论,误删除了一个MySQL的数据库,整个恢复过程和以下文章中提到的步骤完全相同,只要MySQL主进程还没有退出,从文件句柄中可以恢复文件最终挽回损失。类似的lsof找到那些被标记为Deleted的文件(以下是参考示意图)。 让我们完整的再复习一下这篇文章的步骤,一定要记住这种方法: 今天有
IT运维的核心是确保信息系统安全、高效、平稳的运行,IT运维是IT管理非常核心和重点的部分,也是内容最多、最繁杂的部分。没有经历过系统宕机、数据异常、数据丢失、删库跑路等事故的运维,不配谈人生。
每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,哈哈。
背景 在运用Linux时会出现一些误操作,导致系统无法正常使用,比如删除了某个重要依赖库,或者删除了rpm等等。在这里记录下具体的操作步骤,供以后参考。 意义 学会在使用Linux系统出现误删除系统重要文件时,能使用救援模式来恢复系统。 案例详解 当我们删除了Linux系统重要库文件时,该如何恢复,比如在这里我们删除/lib64/libc.so.6这个文件看看系统有什么变化。 删除/lib64/libc.so.6这个文件后很多的基本命令都无法使用了,包括关机都已无法执行,看来这是个很危险的操作,删
格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 –database 数据库名 > 文件名.sql
在运用Linux时会出现一些误操作,导致系统无法正常使用,比如删除了某个重要依赖库,或者删除了rpm等等。在这里记录下具体的操作步骤,供以后参考。
2022年4月5日Atlassian开始出现中断,之后数百个Atlassian Jira和Confluence用户停运。 用本周这家软件公司的原话来说,这起事件是在该公司运行一个流氓脚本(rogue script)后发生的。 该脚本原本用来删除遗留数据,却不料“误删除了一些站点,以及那些站点的所有相关产品,包括相连接的产品、用户和第三方应用程序。” 受Atlassian中断影响的客户在4月11日收到了这条消息:“由于为您的站点重新构建的过程很复杂,到目前为止,我们都无法确认更确切的估计恢复时间
关于EasyRecovery是一款操作安全、用户自主操作的非破坏性的只读应用程序,它不会往源驱上写任何东西,也不会对源驱做任何改变。它支持从各种各样的存储介质恢复删除或者丢失的文件,其支持的媒体介质包括:硬盘驱动器、光驱、闪存、以及其它多媒体移动设备。为了保持驱动器上删除或者丢失的文件,所有被恢复的文件必须保存到另外的存储设备或者系统里的其它驱动器名下。无论文件是被命令行方式删除,还是被应用程序或者文件系统删除,还是从回收站删除,EasyRecovery都能恢复被删除的文件。
1. 重要数据假删除的基本实现 业务数据删除功能,对于一些重要数据采用“假删除”的实现方式,即数据并非从数据库中delete,而是标识该记录为已删除,数据显示时过滤掉该部分数据;对于非重要数据采用直接删除的实现方式。 1.1. 假删除的实现 数据库表增加deleted字段,默认值为0表示数据未被删除,删除操作时,将deleted字段更新为1表示数据已被删除,查询数据时使用deleted=0过滤。 1.2. 删除数据的恢复 假删除的目的是防止重要数据被误删除,一旦被误删除后,则需要数据恢复的功能。 系统添加
自己的朋友杰哥的微信公众号:(杰哥的IT之旅)里面很多干货,感兴趣的小伙伴可以关注下。
领取专属 10元无门槛券
手把手带您无忧上云