mysql 冷备注意事项

mysql 冷备时可以选择停整个实例,但是得根据业务来确定,比如有的备份库除了提供备份外还会提供给RD,QA等相关人员使用,这部分人可以接受一定的数据延迟,这样冷备的时候更多是只停同步SQL线程,为什么不是stop slave ?,停了同步是不是就能直接拷走数据目录打包or 存到远程服务器?

对于上面两个问题;

第一个问题非常容易理解,当拷完数据重新同步后如果IO线程落后太久会瞬间取走很多binlog,导致网卡报警,当然可以限制主库->从库的网卡允许带宽也可以解决,但是这需要人工去干扰,在机器比较多时不推介;


第二个问题:

在停了同步也不能直接拷贝数据,需要注意两个点:

1、是否有临时表被打开

如果打开了临时表,你停止了从库服务,当从库重新启动时,临时表需要这些更新,但是临时表已经不再可用;这样会导致同步不能正常启动;

正常做法有两种

a、在停同步前,检测这个Slave_open_temp_tables是否为0

show status like "Slave_open_temp_tables";

如果为0说明有临时表打开,设置个超时时间循环等待,直到为0才停同步;

b、使用如下步骤

  • 使用stop slave sql_thread语句
  • 使用show status查看Slave_open_temp_tables的值
  • 如果这个值不是0,使用start slave sql_thread;重启从库SQL 线程,一会儿后再重复执行这个步骤
  • 当这个值是0时,使用mysqladmin shutdown命令停止slave.


2、停掉用不后,需要flush logs&tables,然后等带master 线程刷后台数据

这里需要设置 innodb_max_dirty_pages_pct=0,一直等到 master 线程为 state: waiting for server activity,然后恢复innodb_max_dirty_pages_pct为之前的值,这样能保证所有的数据是静止的,当重新恢复数据时可以正常使用;



参考:http://www.cnblogs.com/sunss/archive/2010/10/11/1847690.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值