2)进行完全备份
[root@MySQL ~]# mkdir /mysql.bak
[root@MySQL ~]# mysqldump -uroot -p123 zhangsan 成绩表 > /mysql.bak/zhangsan_成绩表-$(date +%F).sql
[root@MySQL ~]# ls -l /mysql.bak/
3)开启日志文件
[root@MySQL ~]# vim /usr/local/mysql/my.cnf
在 [mysqld] 下添加:
log_bin=/usr/local/mysql/mysql-bin
必看视频!获取2024年最新Java开发全套学习资料 备注Java
4)重启服务
[root@MySQL ~]# systemctl restart mysqld
[root@MySQL ~]# netstat -anpt | grep mysqld
5)查看生成的日志文件
[root@MySQL ~]# ll /usr/local/mysql/mysql-bin.* # 查看生成的日志文件
[root@MySQL ~]# mysqladmin -uroot -p123 flush-logs # 刷新日志
[root@MySQL ~]# ll /usr/local/mysql/mysql-bin.* # 再次查看生成的日志文件
6)再次录入样本
[root@MySQL ~]# mysql -uroot -p123
mysql> use zhangsan;
mysql> insert into 成绩表 values(‘王五’,‘66’);
mysql> insert into 成绩表 values(‘赵六’,‘55’);
mysql> select * from 成绩表;
7)进行增量备份
[root@MySQL ~]# mysqladmin -uroot -p123 flush-logs # 刷新日志
[root@MySQL ~]# ls -l /usr/local/mysql/mysql-bin.* # 查看生成的日志文件
[root@MySQL ~]# cp /usr/local/mysql/mysql-bin.000002 /mysql.bak/
8)模拟故障,删除成绩表
[root@MySQL ~]# mysql -uroot -p123 -e ‘drop table zhangsan.成绩表;’
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
9)先恢复完全备份,再进行增量恢复
先恢复完全备份:
[root@MySQL ~]# mysql -uroot -p123 zhangsan < /mysql.bak/zhangsan_成绩表-2021-02-17.sql
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
再增量恢复:
[root@MySQL ~]# mysqlbinlog --no-defaults /mysql.bak/mysql-bin.000002 | mysql -uroot -p123
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
2.基于位置的恢复
- 模拟故障,删除成绩表。
[root@MySQL ~]# mysql -uroot -p123 -e ‘drop table zhangsan.成绩表;’
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
查看二进制文件来根据位置恢复:
[root@MySQL ~]# mysqlbinlog --no-defaults /mysql.bak/mysql-bin.000002 | grep -v “/”
1)先恢复完全备份,再进行基于停止位置恢复
- 指定
停止位置
,即不恢复赵六
的用户数据。
先恢复完全备份:
[root@MySQL ~]# mysql -uroot -p123 zhangsan < /mysql.bak/zhangsan_成绩表-2021-02-17.sql
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
再指定停止位置恢复数据:
[root@MySQL ~]# mysqlbinlog --no-defaults --stop-position=‘450’ /mysql.bak/mysql-bin.000002 | mysql -uroot -p123
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
- 再次模拟故障,指定起始位置:即只恢复
赵六
的数据,跳过王五
的数据。
[root@MySQL ~]# mysql -uroot -p123 -e ‘drop table zhangsan.成绩表;’
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
2)先恢复完全备份,再进行基于起始位置恢复
先恢复完全备份:
[root@MySQL ~]# mysql -uroot -p123 zhangsan < /mysql.bak/zhangsan_成绩表-2021-02-17.sql
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
再指定起始位置恢复数据:
[root@MySQL ~]# mysqlbinlog --no-defaults --start-position=‘450’ /mysql.bak/mysql-bin.000002 | mysql -uroot -p123
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
3.基于时间的恢复
- 模拟故障,删除成绩表。
[root@MySQL ~]# mysql -uroot -p123 -e ‘drop table zhangsan.成绩表;’
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
查看二进制文件来根据时间恢复
[root@MySQL ~]# mysqlbinlog --no-defaults /mysql.bak/mysql-bin.000002 | grep -v “/”
1)先恢复完全备份,再指定结束时间进行恢复
[root@MySQL ~]# mysql -uroot -p123 zhangsan < /mysql.bak/zhangsan_成绩表-2021-02-17.sql
[root@MySQL ~]# mysql -uroot -p123 -e ‘select * from zhangsan.成绩表;’
[root@MySQL ~]# mysqlbinlog --no-defaults --stop-datetime=‘2021-02-18 0:25:19’ /mysql.bak/mysql-bin.000002 | mysql -uroot -p123
最后
我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
18 0:25:19’ /mysql.bak/mysql-bin.000002 | mysql -uroot -p123
最后
我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
[外链图片转存中…(img-OEgW11JS-1716437041963)]
还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
[外链图片转存中…(img-A4gjIz3k-1716437041964)]