设为首页 收藏本站
查看: 637|回复: 0

[经验分享] mysql recovery 1 (允许停机,不许丢数据)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-13 08:30:50 | 显示全部楼层 |阅读模式
                      1.备份策略:
1)按天备份:
优点:恢复时间短,维护成本低
缺点:占用空间大,占用资源多(比如说老是要锁表)
2)按周备份:
优点:占用空间小,资源占用低
缺点:维护成本大
2.增量恢复的场景
1)数据库迁移,或者跨机房灾备。
2)增加从库。
3)认为操作失误,从库也没办法。
3.案例(可以停机,但是不能丢数据)
1)增量,全备开启
[iyunv@db ~]# grep log-bin /etc/my.cnf
log-bin=mysql-bin
mysqldump -uroot -p111111 -A -B --single-transaction -F --master-data=2 --events|gzip >/backup/all.sql.gz
2)模拟误操作
mysql> drop database oldboy;
3)模拟误操作后的用户写入
insert into oldboy_utf8.test(name) values('dirty1'),('dirty2');
mysqladmin -uroot -p111111 flush-logs
insert into oldboy_utf8.test(name) values('dirty1'),('dirty2');
...
4)发现问题,根据问题时间段,定位出问题的binlog点。
[iyunv@db ~]# ll /application/mysql/data/ |grep mysql-bin
-rw-rw----. 1 mysql mysql      544 11月  8 16:44 mysql-bin.000001
-rw-rw----. 1 mysql mysql      486 11月 11 21:32 mysql-bin.000035
-rw-rw----. 1 mysql mysql      126 11月 12 15:13 mysql-bin.000036
-rw-rw----. 1 mysql mysql      150 11月 12 16:29 mysql-bin.000037
-rw-rw----. 1 mysql mysql     2516 11月 12 16:53 mysql-bin.000038
-rw-rw----. 1 mysql mysql     1422 11月 12 16:57 mysql-bin.000039
-rw-rw----. 1 mysql mysql      998 11月 12 16:58 mysql-bin.000040
-rw-rw----. 1 mysql mysql      107 11月 12 16:58 mysql-bin.000041
-rw-rw----. 1 mysql mysql      779 11月 12 16:58 mysql-bin.index
mysqlbinlog --no-defaults /application/mysql/data/mysql-bin.000038|grep drop
drop database oldboy
5)准备全备和增量。


#准备全备
cd /backup
[iyunv@db ~]# gunzip /backup/all.sql.gz
[iyunv@db ~]# head -50 /backup/all.sql|grep -i "CHANGE MASTER"
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000038', MASTER_LOG_POS=107;

#对外停止写,刷新binlog(不停的话要丢数据42,43等log)
配置防火墙,拒绝客户端连接(略)。
mysql> set global read_only = ON;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%read_only%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only     | ON    |
+---------------+-------+
1 row in set (0.00 sec)
mysqladmin -uroot -p111111 flush-logs

#准备增量
mysqlbinlog --no-defaults /application/mysql/data/mysql-bin.000038 --start-position=107 > /backup/bin.sql
mysqlbinlog --no-defaults /application/mysql/data/mysql-bin.000039 >> /backup/bin.sql
mysqlbinlog --no-defaults /application/mysql/data/mysql-bin.000040 >> /backup/bin.sql
mysqlbinlog --no-defaults /application/mysql/data/mysql-bin.000041 >> /backup/bin.sql
vim /backup/bin.sql 删除错误语句
6)开始恢复数据
mysql -uroot -p111111</backup/all.sql
mysql -uroot -p111111</backup/bin.sql

恢复对外写:
mysql> set global read_only = OFF;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like '%read_only%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only     | OFF   |
+---------------+-------+
1 row in set (0.00 sec)

                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-138533-1-1.html 上篇帖子: mysql 服务器CPU占用过高,如何调优,求助啊 下篇帖子: mysql 5.7 多实例安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表