记一次Linux服务器 误删数据的恢复操作
今天把自己的一个服务器的数据 误操作删除了一个重要的数据表,心想,嗯,真特么的想扇自己个耳光,哈哈哈
好,事不宜迟,进入正文
事情是这样的。我执行了TRUNCATE操作,导致表清空了,那么静下心来想
所有线上服务器,数据库一定要每天凌晨定一个时间段进行备份,不然后果真的会很严重
好了,正文继续
1.先查找binlog
命令行输入
mysql -uroot -p
进入mysql命令行后输入
show master status
这里能看到有一个binlog文件了,那么我们下面接下来的操作都是跟这个文件有关的,但是这个作为原始文件,不能执行,因为线上服务器随时都会产生新数据,会改变binlog文件,所以我们应该copy一份出来 那么不知道这个文件在哪里怎么办呢?这时候find命令就非常有用了,这时候就不要在mysql命令行里操作了
find / -type f -name mysql-bin.000005
2.备份binlog文件,以便恢复数据操作使用
这样我们就能找到我们这个log文件的位置 然后我们复制一份到根目录下,方便后续操作
cp /www/server/data/mysql-bin.000005 ~/
根据自己的路径操作就好,然后我们就得到这个备份的文件了
这里插一个自己的小插曲,之前是想直接操作binlog文件,把错误节点的那句 TRUNCATE语句删除,然后重新导入这份binlog去恢复的,但是发现这个问题
就提示第一行的问题,这个很明显是提示我编码格式的问题,然后前前后后折腾了1个小时去尝试解决这个问题,发现都没用,后来想我可以使用binlog命令导出一份sql文件去操作,应该就能解决,所以我的第三部是
3.binlog文件导出成一份sql文件
mysqlbinlog /www/server/mysql/mysql-bin.000005 > ~/005.sql
通过这个命令导出一份sql文件到根目录,这时候我们回到mysql命令行,输入
show binlog events\G
这时候就能看到我们最后操作的节点了然后打开刚刚导出的005.sql文件我们把27722后面的操作都删除掉,重新保存一下
4.恢复数据到数据库
最好是建立一个新的数据库来恢复备份的数据,然后新库跟旧库做一个同步,以免新数据被覆盖,但是这是因为这是我自己的服务器,我是关闭了网站操作的,所以数据都是比较固定,不怕出问题,接下来进入mysql命令行 输入
source ~/005.sql
然后一堆神奇的sql代码过后,在查看数据库 发现,咦!数据回来了!
数据库恢复数据是万不得已的操作,所以每次删数据清空数据库的时候最好都是先备份一份再操作,还有一定每天都要备份一份数据库数据,以免造成不必要的损失
最后写这份博客更多的是提醒自己不要再误操作,不备份数据库了
记一次Linux服务器 误删数据的恢复操作相关推荐
- linux如何查看丢弃数据包,导致Linux服务器丢弃数据包?
我们使用Linux作为服务器操作系统时,为了达到高并发处理能力,充分利用机器性能,经常会进行一些内核参数的调整优化,但不合理的调整常常也会引起意想不到的其他问题,本文就一次Linux服务器丢包故障的处 ...
- 024-一次心惊肉跳的服务器误删文件的恢复过程
2019独角兽企业重金招聘Python工程师标准>>> 一次心惊肉跳的服务器误删文件的恢复过程 来源:zhouyu 链接:www.cnblogs.com/zhouyu629/p/37 ...
- 硬盘分区误删数据如何恢复呢?
办公中,每天都会使用到电脑,而电脑硬盘存储着我们制作而成的各种数据文件.当然为了更方便的对文件进行管理和分类,不少小伙伴们会把硬盘分成不同的磁盘.但硬盘分区时,难免误删或丢失了一些重要文件.在这种情况 ...
- linux文件被覆盖如何恢复_在Linux下误删文件后恢复
1.给虚拟主机添加一块磁盘,磁盘为/dev/sdb,如下: 2.格式化磁盘,并进行挂载 # mkfs.ext4 /dev/sdb # mkdir /usr/local/dbdata/ # mount ...
- Linux中误删文件的恢复方法
Linux中误删文件的恢复方法 做为Linux的从业者大家对"rm -rf"这个命令肯定又爱又恨. 他的简洁霸气,势不可挡,可谓"十步杀一人,千里不留行", 他 ...
- SQL Server 2014 数据库误删数据的恢复处理
一.序言 作为程序开发人员或 DBA,经常会接触到数据库(以 SQL Server 2014 数据库为例)的增.删.改查操作.执行 delete 语句时不小心误删数据表的记录情况,而数据库之前又没有任 ...
- 解决重启Linux服务器后数据消失问题
目录 一.挂载 1.重新挂载 2.数据消失的原因 二.重启服务器 1.shutdown 2.其它关机重启指令 参考自 一.挂载 1.重新挂载 使用 reboot 命令重启服务器后,服务器内挂载的文件全 ...
- linux 服务器之间数据复制—scp
文章目录 一.命令详情介绍 二.使用实例 三.批量文件传输 另一个方法 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝 ...
- linux查询MySQL数据库操作,Linux服务器上查看mysql数据库操作日志
前两天客户打电话跟我讲,系统中有条订单数据丢失了,这让我很诧异.好好的数据怎么说丢,就丢了.此事必有蹊跷,于是今天我要一探究竟,看看数据是否录入数据库中去了.经过之前初步的排查,发现数据应该是被人为删 ...
最新文章
- labview叠加白噪声_强化学习中Ornstein-Uhlenbeck噪声是鸡肋吗?
- Dubbo之——将Dubbo服务打包成Jar包
- vhdl变量赋初值_5.5 C++自动变量
- 二分查找(对半搜索)
- boot loader能全部用C程序编写吗
- 加载中_GIS地图在项目中的加载显示
- Sandy引擎学习笔记:摄影机
- 锡安赞歌 mp3下载
- 你可能对电灯泡一无所知
- 如何从io.Reader 中读数据
- cookie中JSESSIONID的由来
- java中html的树状_HTML中的树状选择
- 调试一个开源的车牌识别算法遇到的总结
- EXCEL VBA 二维表转换成一维表
- shopex php5.3,shopex.4.85支持php5.3 | 学步园
- tensorflow模型量化篇(1)量化方法及动态范围量化
- win11 删除系统自带输入法
- 链游StarSharks(星鲨)全方位介绍
- [MATLAB]从键盘输入一个带有字母构成的字符串,要求大写变小写,小写变大写输出。
- 故障电弧检测技术现状及难点