小学生信息科学做网站,西安制作公司网页多少钱,黑龙江省建设厅网站站长,东莞市公共资源交易中心1、环境准备 条件: 1.具备全量备份#xff08;mysqldump#xff09;。 2.除全量备份以外#xff0c;还有全量备份之后产生的的所有binlog增量日志。 1.1、建立数据库和表 CREATE DATABASE dadong;
USE dadong;
CREATE TABLE test (id int(4) NOT NULL AUTO_INCREMENT,name c…1、环境准备 条件: 1.具备全量备份mysqldump。 2.除全量备份以外还有全量备份之后产生的的所有binlog增量日志。 1.1、建立数据库和表 CREATE DATABASE dadong;
USE dadong;
CREATE TABLE test (id int(4) NOT NULL AUTO_INCREMENT,name char(20) NOT NULL,PRIMARY KEY (id)
) ENGINEInnoDB AUTO_INCREMENT7 DEFAULT CHARSETutf8;
INSERT INTO test VALUES (1,dadong),(2,he),(3,inca),(4,zuma),(5,kaka); 1.2、建立备份目录 准备环境
mkdir /data/backup -p
date -s 2017/06/22 1.3、备份数据库 mysqldump -B --master-data2 --single-transaction dadong|gzip/data/backup/dadong_$(date %F).sql.gz
备份数据库后插入几行数据。模拟没有备份全备但是binlog存在记录时恢复数据。
mysql -e use dadong;insert into test values(6,bingbing);
mysql -e use dadong;insert into test values(7,xiaoting);
mysql -e select * from dadong.test; 1.4、 模拟误删数据 date -s 2017/06/22 11:40
mysql -e drop database dadong;show databases;出现问题10分钟后,发现问题,删除了数据库了. 2、开始恢复准备 2.1、采用iptables防火墙屏蔽所有应用程序的写入 [rootdadong ~]# iptables -I INPUT -p tcp --dport 3306 ! -s 172.16.1.51 -j DROP #非172.16.1.51禁止访问数据库3306端口。 注此步操作目的是停止客户数据的写入而并不是停止数据库 2.2、 操作前备份 cp -a /application/mysql/logs/dadong-bin.* /data/backup/ 2.3、准备全量和增量备份文件 1.dadong_2017-06-22.sql全量
2.bin.sql增量 3、恢复过程 3.1、 恢复全备 [rootdb02 backup]#zcat dadong_2017-06-22.sql.gz dadong_2017-06-22.sql ###解压全备文件
[rootdb02 backup]# mysql dadong_2017-06-22.sql
[rootdb02 backup]# mysql -e show databases;
--------------------
| Database |
--------------------
| information_schema |
| mysql |
| dadong |
| he |
| performance_schema |
--------------------[rootdb02 backup]# mysql -e use dadong;select * from test;
-------------
| id | name |
-------------
| 1 | dadong |
| 2 | he |
| 3 | inca |
| 4 | zuma |
| 5 | kaka |
------------- 3.2、恢复增量 ———————————以下正式恢复操作——————————————
[rootdb02 backup]#sed -n 22p dadong_2017-06-22.sql ###获取binlog日志的起始地址339
[rootdb02 backup]#mysqlbinlog -d dadong --start-position339 dadong-bin.0000012 -r bin.sql ##”-d” 指定查看哪个库”-r” 指定binlog日志存放在哪个文件中。
[rootdb02 backup]#grep -i drop bin.sql
[rootdb02 backup]#sed -i /^drop.*/d bin.sql ###删除删库语句防止恢复后又执行drop语句。
[rootdb02 backup]# mysql dadong bin.sql
[rootdb02 backup]# mysql -e use dadong;select * from test;
--------------
| id | name |
--------------
| 1 | dadong |
| 2 | he |
| 3 | inca |
| 4 | zuma |
| 5 | kaka |
| 6 | bingbing |
| 7 | xiaoting |
--------------####注释mysqlbinlog -d dadong dadong-bin.0000012 -r bin.sql ###其中“dadong-bin.0000012”要根据最后相关操作时间删库时间来确定drop语句放在哪个binlog文件中并且binlog文件是二进制文件必须使用mysqlbinlog进行操作后才能使用cat查看。 注此时如果没有执行sed -i /^drop.*/d bin.sql就会出现下面错误 3.3、 恢复完毕 最后一步特别重要恢复完毕后一定要调整iptables允许用户访问. 转载于:https://www.cnblogs.com/dadonggg/p/8618467.html