Mysqldump 模拟备份还原

mysql 备份还原是非常有必要的,用来防止误操作或者磁盘损坏的情况;

mysqldump是mysql官方自带的逻辑备份工具,针对myisam引擎进行温备(只能读,无法写,在线备份),针对Innodb进行(热备或者温备)

主要用于当数据量不是很大的情况下进行操作,方便快捷

备份策略:

每周 一次全备,每天一次增量备份,模拟当周二的时候,发生磁盘故障的情况下进行及时点还原;

==============

操作开始:

备份:

step1: 全备

每周日一次全备:

mysqldump --all-databases --flush-logs--master-data=2 --lock-all-tables > /tmp/mysql_bak/fullbak_20180505.sql

周一白天,新建db apple

Step2

周一夜里进行增量备份:

将所有二进制日志另存磁盘:cp mysql-bin.* /tmp/mysql_bak/

less fullbak_20180505.sql 可以看到全备截止的binlog

清理多余二进制日志,因为其内容已经被包含在全备中,所以这些二进制日志可以删除

purge binary logs to 'mysql-bin.000010';

flush logs, 刷新二进制日志

将第一天的增量mysql-bin.000010和mysql-bin.000011进行备份

cp mysql-bin.000010 /tmp/mysql_bak/

cp mysql-bin.000011 /tmp/mysql_bak/

Step3:

周二白天,插入数据

而后,模拟数据文件的磁盘坏了,二进制日志一般放其他磁盘,所以讲二进制日志mysql-bin.000012 COPY出来;


cp mysql-bin.000012 /tmp/mysql_bak

删除整个data目录,以模拟磁盘损坏情况的发生;

此时,无法启动或停止mysqld

 

Step4:还原

pkill mysqld 杀死mysqld进程

./scripts/mysql_install_db 初始化数据库

初始化后,账户root,密码空

service mysqld start  启动mysqld

进行周日全备的恢复:  mysql -uroot -p </tmp/mysql_bak/fullbak_20180505.sql


登陆后可以看到数据库,此时还没有apple 库;

然后进行增量备份的恢复:mysql-bin.000010 和mysql-bin.000011

mysqlbinlog mysql-bin.000010 | mysql -uroot–p

mysqlbinlog mysql-bin.000011 | mysql -uroot-p

此时恢复到周一夜里备份的时间;

此时,可以看到apple库已被建立,contact表 id<10被删除;

然后恢复到故障时间点,需要使用二进制日志mysql-bin.000012

mysqlbinlog mysql-bin.000012 | mysql -uroot-p

此时可以看到插入的数据 lulijuan

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值