恢复数据的策略,思路说明:
1、数据库具有全备,同步到其他服务器
2、开启bin-log ,通过同步工具每分钟同步bin-log到备份数据库
这样可以做到即便是丢失数据能控制在一分钟之内
这里不如果是机器坏掉,直接通过全备+bin-log 在备用服务器恢复;
如果机器没有坏掉,可以通过进入系统去取全量的bin-log
操作记录:
1:创建数据库
create table student(
id int(10),
name varchar(64),
age int(2)
);
insert into student(id,name,age) values(1,'熊大',30),(2,'熊二',27),(3,'张三',20),(4,'李四',30),(6,'王五',10);
2:全量备份数据
mysqldump --user=root -proot --all-databases --flush-privileges --single-transaction --master-data=1 --flush-logs --triggers --routines --events --hex-blob >/opt/bak/full_dump_bak.sql
insert into student(id,name,age) values(7,'田七',30),(8,'猪八戒',27);
drop database test2;
--关闭端口,关闭应用禁止写入 刷新bin-log,
mysqladmin -uroot -proot flush-logs
head -100 ./full_dump_bak.sql
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=154;
--- mysql-bin.000005
备份bin-log日志
cp mysql-bin.000004 /opt/bak/
cp mysql-bin.000005 /opt/bak/
--no-defaults
mysqlbinlog --no-defaults -d test2 mysql-bin.000004 >/opt/bak/zlbk.sql
mysqlbinlog --no-defaults -d test2 mysql-bin.000005 >>/opt/bak/zlbk.sql
vi zlbk.sql
/drop 查找drop 语句注释掉
mysql -uroot -proot <full_dump_bak.sql
source ./zlbk.sql
检查数据
mysql数据库灾难恢复计划
最新推荐文章于 2023-07-26 10:44:06 发布