mysql删除检验_实验:模拟场景中误删除mysql数据库表,然后使用全备份以及二进制日志文件恢复操作...

一、实验环境:

1、准备两台虚拟机,一台用于破坏数据库,一台用于还原,两台在同一个网络

2、两台最小化安装centos 7系统,并直接yum安装maraidb数据库

3、准备一个测试数据库文件,例如,hellodb_innodb.mysql 测试库里面最少有两个表。

二、实验步骤:

1、开启数据库的二进制日志功能

vim /etc/my.cnf

[mysqld] 下面加入log-bin 表示开启二进制日志功能

4b10d68f760e9db96fd47f0e865b470d.png

2、完全备份

mysqldump -A -F --master-data=2 --single-transaction |gzip > /data/all.sql.gz

备份数据库文件并用gzip压缩,存放到/data目录

7fa775b96de680ee9275c5d1bf14abfd.png

3、直接连接数据库修改任意表

insert students (name,age)values('a',20);

insert students (name,age)values('b',30);

12435c53997a655667c67c1d48c0c4ae.png

select * from students 查询新加入的表信息

9261b2922ae82a8ced1fb5e05ef994be.png

4、模拟删除数据库表

drop table students;如图下,已将students表删除;

932bdeebe05c8cf1c396235596d7744e.png

5、假装不知道,继续修改其他表

insert teachers (name,age)values('zhangsir',30);

8ed2262a96f30e9e6c33fbe9042216ce.png

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 将文件导入到数据库中

b0eaba2956c5c0a45333053e0e71b773.png

9、还原增量备份

less /data/all.sql 查看二进制日志位置

c4b3e28ce1b1ff5d91477844841d3f5d.png

确定二进制日志,以及起始位置为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工具,生成新的二进制日志

f879c4c6e02a7bb3b4ec1f1d05727007.png

vim /data/binlog.sq

找到drop table students; 这条sql语句,注释有关此行

ce033534dcb8e0e4deddd35a3795d6bb.png

mysql < /data/binlog.sql

导入二进制日志文件

恢复用户的访问

三、检验数据的完整性

show databases;

show tables

231e9a51159dec56e35e75713ac0a04d.png

上图中的students表已经恢复过来

678f011db76e3b0cf65995b385f41e19.png

2d83ff1db05648d85bfbb2071c03f79b.png

如图所示,之前做的修改也都回来了。实验目的达到了。

四、实验总结

mariadb 数据库破坏后,需要借助完全备份+二进制日志文件进行还原,两者缺一不可,两者都非常重要,生产中既要保护好备份的数据库文件,同时还需要保护好二进制文件,从而保证数据还原的完整性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值