① 物理备份:对对数据库操作系统的物理文件的备份
① 完全备份的优点
备份与恢复操作简单方便
② 完全备份的缺点
数据存在大量的重复
占用大量的备份空间
备份与恢复时间长
1、mysqldump对单个数据库进行完全备份
mysqldump -uroot -pabc123 mysql > /opt/ccc.sql
2、mysqldump对多个数据库进行完全备份
mysqldump -u root -pabc123 --databases school mysql > /opt/aa.sql
3、mysqldump对所有库进行完全备份
mysqldump -uroot -pabc123 --opt --all-databases > /opt/bb.sql
4、mysqldump备份表
在实际生产环境中,存在对某个特定表的维护操作,此时mysqldump同样发挥重大作用
mysqldump -uroot -pabc123 school info > /opt/cc.sql
5、mysqldump对表中结构进行备份
mysqldump -uroot -pabc123 -d school info > /opt/cc.sql
6、按日期打包备份
tar Jcvf /opt/mysql-$(data +%F).tar.xz /usr/local/mysql/data/
① source恢复表法
先删除表,假设表丢失
输入:source /opt/cc.sql 恢复路径
② mysql恢复数据
数据库丢失
在Linux输入:mysql -uroot -pabc123 school < /opt/aa.sql
就是将某一个起点时间的二进制日志导入数据库中,从而跳过某个发生错误的时间点实现数据恢复
使用基于时间点的恢复,可能会出现一个时间点即同时纯在正确的操作又存在错误的操作,所以我们需要一种更为精确的回复方式
1、开启二进制日志
#修改配置文件
vim /etc/my.cnf
#重启服务
systemctl restart mysqld
2、完整备份
mysqldump -uroot -pabc123 school > /opt/school.sql
4、添加字段(正常操作添加字段)
误删除sti01(误删操作字段)
在添加字段(正常操作添加字段)
5、在linux输入:
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 > /opt/bak.txt
进入vim bak.txt 查看操作记录文件
保存第二次误操作的时间和下一次正常操作的时间
200107 17:36:57
200107 17:37:39
6、进入mysql数据库
删除info
拉取linux里初始保存的shcool.sql文件
5、在linux
恢复数据到指定时间(注意时间格式!)
mysqlbinlog --no-defaults --stop-datetime='2020-01-07 17:36:57' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -pabc123
mysqlbinlog --no-defaults --start-datetime='2020-01-07 17:37:39' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -pabc123
删除01,02,恢复原始表
进去vim bak.txt
恢复数据到指定位置
mysqlbinlog --no-defaults --stop-position='568' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -pabc123
mysqlbinlog --no-defaults --start-position='672' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -pabc123