【实验环境】
某学校近期在进行其中考试,要求数据库管理员负责一班、二班学生的考试成绩录入,为保证数据的可靠性,数据库管理员在录入学生成绩后均要做数据库备份,并且为了测试备份数据是否可用,模拟数据丢失故障,进行数据还原。
【需求描述】
在数据库表中,分三次录入徐文胜考试成绩,具体的考试成绩信息分别参见表
一班学生成绩
姓名 班级 学号 语文 数学 英语 理综
张三 一班 20170822 110 105 92 235
李四 一班 20170820 95 115 110 260
王五 一班 20170818 95 103 108 270
赵六 一班 20170816 100 109 112 265
二班学生成绩(1)
姓名 班级 学号 语文 数学 英语 理综
李宁 二班 20170824 92 98 105 235
陈铭 二班 20170826 111 107 96 204
二班学生成绩(2)
姓名 班级 学号 语文 数学 英语 理综
付杰 二班 20170828 115 118 116 268
郭尚 二班 20170830 111 99 80 259
首次录入成绩后,做该表的完全备份,后两次成绩的录入之后,分别做增量备份
模拟数据丢失,并使用增量备份分别基于位置和时间点恢复一班所有学生成绩与二班陈铭与付杰的成绩
【推荐步骤】
【推荐步骤】
1.创建数据库与表
2.分三次录入学生成绩,并在分别进行完全备份与增量备份
3.模拟数据丢失,进行数据恢复
【实验步骤】
1.创建bdqn数据库和qzcj表。
Mysql> create database bdqn;
Mysql>create table bdqn.qzcj (姓名 char(2),班级 char(2),学号 char(8),语文 char(3,)数学 char(3),英语 char(3),理综 char(3));
2.录入一班学生成绩并进行完全备份及数据切割。
Mysql>insert into bdqn.qzcj values(‘张三’,’一班’,’20170822’,’110’,’105’,’92’,’235’);
Mysql>insert into bdqn.qzcj values(‘李四’,’一班’,’20170820’,’95’,’115’,’110’,’260’);
Mysql>insert into bdqn.qzcj values(‘王五’,’一班’,’20170818’,’95’,’103’,’108’,’270’);
Mysql>insert into bdqn.qzcj values(‘赵六’,’一班’,’20170816’,’100’,’109’,’112’,’265’);
[root@centos01~]#mysqldump -uroot -ppwd@123 bdqn qzcj > bdqn_qzcj.sql
[root@centos01~]#mysqladmin -uroot -ppwd@123 flush-log
3.录入二班(1)学生成绩并进行增量备份(数据切割)。
[root@centos01~]#mysqladmin -uroot -ppwd@123 flush-log
4.录入二班(2)学生成绩并进行增量备份(数据切割)。
[root@centos01~]#mysqladmin -uroot -ppwd@123 flush-log
5.模拟数据丢失。
[root@centos01~]#mysqldump -uroot -ppwd@123 bdqn < bdqn_qzcj.sql
6.基于位置恢复二班(1)学生成绩
[root@centos01 ~]# mysqlbinlog --start-position=‘312’ ./mysql-bin.000010 --stop-position=‘524’ ./mysql-bin.000010
7.基于时间恢复二班(2)学生成绩
[root@centos01 ~]# mysqlbinlog --start-datetime=‘2020-11-30 20:10:01’ ./mysql-bin.000010 --stop-datetime=‘2020-11-30 20:10:20’ mysql-bin.000010
8.验证,通过二进制日志恢复二班所有学生成绩。