加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

误删除mysql数据库表该如何复原操作方法

发布时间:2023-09-25 16:00:07 所属栏目:MySql教程 来源:
导读:本文主要给大家介绍误删除mysql数据库表该如何恢复操作方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下误删除mysql数据库表该如何恢复操作方法吧。
本文主要给大家介绍误删除mysql数据库表该如何恢复操作方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下误删除mysql数据库表该如何恢复操作方法吧。
 
一、实验环境:
 
1、准备两台虚拟机,一台用于破坏数据库,一台用于还原,两台在同一个网络
 
2、两台最小化安装centos 7系统,并直接yum安装maraidb数据库
 
3、准备一个测试数据库文件,例如,hellodb_innodb.mysql 测试库里面最少有两个表。
 
二、实验步骤:
 
1、开启数据库的二进制日志功能
 
vim /etc/my.cnf
 
[mysqld] 下面加入log-bin 表示开启二进制日志功能
 
2、完全备份
 
mysqldump -A -F --master-data=2 --single-transaction |gzip >  /data/all.sql.gz
 
备份数据库文件并用gzip压缩,存放到/data目录
 
3、直接连接数据库修改任意表
 
insert students (name,age)values('a',20);
 
insert students (name,age)values('b',30);
 
select * from students 查询新加入的表信息
 
4、模拟删除数据库表
 
drop table students;如图下,已将students表删除;
 
5、假装不知道,继续修改其他表
 
insert teachers (name,age)values('zhangsir',30);
 
6、发现重要表删除,立即锁表
 
flush tables with read lock; 给表加上读锁
 
7、在另一台机子上还原
 
vim /etc/my.cnf
 
skip-networking 确保其它用户不能访问数据库,只能自己操作
 
rm -rf /var/lib/mysql 将原来的数据库文件删除,避免原来有文件
 
scp /data/all.sql.gz 192.168.190.129:/data
 
将原来备份的文件,复制到现主机的目录中
 
8、完全备份还原
 
gzip -d /data/all.sql.gz  解压打包的备份文件
 
mysql < /data/all.sql  将文件导入到数据库中
 
9、还原增量备份
 
less /data/all.sql 查看二进制日志位置
 
确定二进制日志,以及起始位置为245
 
scp /var/lib/mysql/mariadb-bin.000002 192.168.190.129:/data
 
将二进制文件拷贝过来
 
mysqlbinlog -- start-position=245 /data/mariadb-bin.000002 > /data/binlog.sql
 
使用mysqlbinlog工具,生成新的二进制日志
 
vim /data/binlog.sq
 
找到drop table students; 这条sql语句,注释有关此行

mysql < /data/binlog.sql
 
导入二进制日志文件
 
恢复用户的访问
 
三、检验数据的完整性
 
show databases;
 
show tables 

之前做的修改也都回来了。实验目的达到了。
 
四、实验总结
 
mariadb 数据库破坏后,需要借助完全备份+二进制日志文件进行还原,两者缺一不可,两者都非常重要,生产中既要保护好备份的数据库文件,同时还需要保护好二进制文件,从而保证数据还原的完整性。
 
看完以上关于误删除mysql数据库表该如何恢复操作方法,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章