场景一
昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放

1、建立数据库并开启二进制日志

建立用于存放二进制日志的文件夹,修改文件夹属组属主使mysql用户可以读

二点钟做完全备份,备份完看下是否备份成功

less /backup/fullbak2019-07-11.sql #–master-data选项在备份时自动记录bin-log的位置

模拟2点到18点的数据修改

2、存放数据库的硬盘损坏,所有数据库丢失

3、还原
故障恢复中可以让用户暂停访问数据库
vi /etc/my.cnf #添加一行

systemctl restart mariadb
查看当前二进制日志的位置

从二进制日志中获取2点到18点数据
由于恢复数据库会产生大量的日志,可以临时关闭二进制日志

场景二
凌晨2点做过一次完全备份,白天使用过程中,某同事误删除数据库,当时并未发现,直到下班的时候出故障了

1、数据库完全备份

less /backup/fullbak2019-07-11.sql #–master-data选项在备份时自动记录bin-log的位置

2、表被删除,但是没有发现,继续使用,在18点发现问题

3、还原
故障恢复中可以让用户暂停访问数据库
vi /etc/my.cnf #添加一行

systemctl restart mariadb
查看当前日志的位置

根据备份文件中记录的日志位置,从二进制日志获取增量

检查数据


虽然可以恢复但是花费的时间成本或许是相当大的,生产环境还需慎重






评论前必须登录!
注册