MySQL数据库基于时间点、日志文件、位置的备份

实验案例:
实验环境:

某学校近期在进行期中考试,要求数据库管理员负责一班、二班学生的考试成绩录入。为保证数据的可靠性,数据库管理员在录入学生成绩后均要做数据库备份,并且为了测试数据是否可用,模拟数据丢失故障,进行数据还原。

需求描述

在数据库表中,分三次录入学生考试成绩,具体的考试成绩信息参照下图

MySQL数据库基于时间点、日志文件、位置的备份_第1张图片

首次录入成绩后做该表的完全备份,后两次成绩的录入之后,分别做增量备份。

模拟数据丢失,并使用增量备份分别基于位置和时间点恢复一班所有学生成绩与二班陈铭与付杰的成绩。

推荐步骤:

更改数据库密码,重新登录数据库
MySQL数据库基于时间点、日志文件、位置的备份_第2张图片

创建数据库与表
首先创建一个库

mysql> create
database benet;

切换benet数据库

mysql> use benet;

创建表,表的名字为student

mysql> create table student(姓名 char(2),班级 char(2),学号 char(8),语文 char(3),数学 char(3),英语 char(3), 理综 char(3),primary key (理综));

在这里插入图片描述

在student表中插入数据,分别录入学生成绩

MySQL数据库基于时间点、日志文件、位置的备份_第3张图片

查看录入的数据
MySQL数据库基于时间点、日志文件、位置的备份_第4张图片

创建备份文件夹

[root@centos01 ~]# mkdir ./test

将第一次录入成绩的同学成绩备份下来

[root@centos01 data]# cp mysql-bin.000003
/root/test/

第一次做完全备份,分别备份表和库

[root@centos01~]#mysqldump -uroot -ppwd@123
benet student > ./test/benet_student.sql

[root@centos01 test]# mysqldump -u root -p
–database benet > ./test/benet_ku.sql

在这里插入图片描述

模拟数据丢失
删除student表

MySQL数据库基于时间点、日志文件、位置的备份_第5张图片

恢复表

MySQL数据库基于时间点、日志文件、位置的备份_第6张图片

删除库
MySQL数据库基于时间点、日志文件、位置的备份_第7张图片

使用source命令恢复库

mysql> source ./test/benet_ku.sql
MySQL数据库基于时间点、日志文件、位置的备份_第8张图片

刷新二进制日志做日志切割

[root@centos01 data]# mysqladmin -u root -p
flush-log

分别完成后两次成绩的录入做增量备份
MySQL数据库基于时间点、日志文件、位置的备份_第9张图片

[root@centos01 data]# cp mysql-bin.000004
/root/test/

模拟数据丢失

MySQL数据库基于时间点、日志文件、位置的备份_第10张图片

查看备份的二进制日志id

[root@centos01 ~]# mysqlbinlog --no-defaults ./test/mysql-bin.000004

MySQL数据库基于时间点、日志文件、位置的备份_第11张图片

分别使用基于位置和时间点恢复两名同学的成绩

insert into student (姓名,班级,学号,语文,数学,英语,理综) value (‘李宁’,‘一班’,‘20170824’,‘92’,‘98’,’‘11105’,‘235’);

使用基于位置的恢复信息

删除陈铭付杰两名学生成绩

MySQL数据库基于时间点、日志文件、位置的备份_第12张图片

通过基于位置恢复陈铭

[root@centos01
~]# mysqlbinlog --start-position=‘1831’ ./test/mysql-bin.000004 | mysql -u root -p

MySQL数据库基于时间点、日志文件、位置的备份_第13张图片
MySQL数据库基于时间点、日志文件、位置的备份_第14张图片

通过时间点恢复

[root@centos01
~]# mysqlbinlog --stop-datetime=‘2019-10-31 11:47:18’ ./test/mysql-bin.000005 |mysql -u root -p

MySQL数据库基于时间点、日志文件、位置的备份_第15张图片
备份的作用和常见的故障类型
备份的作用:发生灾难或者误操作将损失降到最低,能够快速恢复数据保证数据稳定运行常见的故障类型:数据库程序故障,人为发生误操作,运算错误,物理故障磁盘损坏,不可抗力的自然灾害

你可能感兴趣的:(MySQL)