艾锑实践 | mysql,redis数据备份方案
2020-02-10 18:20 作者:admin 浏览量:
迎战疫情,艾锑无限用爱与您同行
为中国中小企业提供免费IT外包服务
这次的肺炎疫情对中国的中小企业将会是沉重的打击,据钉钉和微信两个办公平台数据统计现有2亿左右的人在家远程办公,那么对于中小企业的员工来说不懂IT技术将会让他们面临的最大挑战和困难。
电脑不亮了怎么办?系统蓝屏如何处理?办公室的电脑在家如何连接?网络应该如何设置?VPN如何搭建?数据如何对接?服务器如何登录?数据安全如何保证?数据如何存储?视频会议如何搭建?业务系统如何开启等等一系列的问题,都会困扰着并非技术出身的您。
好消息是当您看到这篇文章的时候,就不用再为上述的问题而苦恼,您只需拨打艾锑无限的全国免费热线电话:400 650 7820,就会有我们的远程工程师为您解决遇到的问题,他们可以远程帮您处理遇到的一些IT技术难题。
如遇到免费热线占线,您还可以拨打我们的24小时值班经理电话:15601064618或技术经理的电话:13041036957,我们会在第一时间接听您的来电,为您提供适合的解决方案,让您无论在家还是在企业都能无忧办公。
那艾锑无限具体能为您的企业提供哪些服务呢?
艾锑无限始创于2005年,历经15年服务了5000多家中小企业并保障了几十万台设备的正常运转,积累了丰富的企业IT紧急问题和特殊故障的解决经验,制定了相对应的解决方案。我们为您的企业提供的IT服务分为三大版块:
第一版块是保障性IT外包服务:如电脑设备运维,办公设备运维,网络设备运维,服务器运维等综合性企业IT设备运维服务。
第二版块是功能性互联网外包服务:如网站开发外包,小程序开发外包,APP开发外包,电商平台开发外包,业务系统的开发外包和后期的运维外包服务。
第三版块是增值性云服务外包:如企业邮箱上云,企业网站上云,企业存储上云,企业APP小程序上云,企业业务系统上云,阿里云产品等后续的云运维外包服务。
您要了解更多服务也可以登录艾锑无限的官网:
www.bjitwx.com查看详细说明,
在疫情期间,您企业遇到的任何困境只要找到艾锑无限,能免费为您提供服务的我们绝不收一分钱,我们全体艾锑人承诺此活动直到中国疫情结束,我们将这次活动称为——春雷行动。
以下还有我们为您提供的一些技术资讯,以便可以帮助您更好的了解相关的IT知识,帮您渡过疫情中办公遇到的困难和挑战,艾锑无限愿和中国中小企业一起共进退,因为我们相信万物同体,能量合一,只要我们一起齐心协力,一定会成功。再一次祝福您和您的企业,战胜疫情,您和您的企业一定行。
艾锑实践 | mysql,redis数据备份方案
之前在文章里面有提到过,很多事情,并没有绝对的对错,只是度的问题。而度的衡量又取决于时、势二字。所以当形势逼人的时候,基本就是这件事情非做不可的时候了。
先说下背景,公司的服务器一直用的阿里云,包括mysql、redis也都是买了ECS自己搭建的。这里面有几个原因:
创业的时候,阿里云只提供mysql的存储,redis的存储还没提供。
没钱,即时现在去看redis的存储价格也是贵的吓人。
这样自己来搞存储有好处也有坏处。
好处:
完全可控,比如连接数限制,内存限制,存储限制。还有数据备份的灵活性等等。
强迫团队服务器研发要有存储运维能力。
省钱
坏处:
冷备、热备方案不完善。
存储运维的成本较高,需要长时间积累。
ok,问题就是这样,接下来再来说一下我们之前的冷备和热备方案。
可以说极其简陋:
mysql、redis每天10点冷备,备份到本地磁盘和阿里云OSS
redis使用rdb落地,每60秒至少有1次写就会触发落地。
这样做的问题其实挺多的,主要几个:
mysql dump的时候会导致游戏卡顿,即使加了 -single-transaction 参数 也仅仅是缓解
冷备频率过低,真出现问题数据已经太久
没有热备,风险较大
针对这些问题,我们先做了mysql备份的优化。
mysql主从同步,实现热备。
主机不再执行mysqldump,从机上每隔10分钟执行一次mysqldump,并备份到本地磁盘和阿里云OSS
mysql的备份方案还是比较简单的,唯一要注意的是,从机启动的时候并不会从主机拉取所有数据,所以需要停服先把主机的数据手动同步到从机,之后再启动同步。
接下来,是redis的备份问题。
为了与mysql的备份时间一致,redis这边改成了主机每10分钟备份rdb文件一次。
但新方案运行了几天之后,发现mysql经常会突然响应变慢。
后来发现因为备份脚本的逻辑是会先把rdb文件copy一份出来,而copy的目标位置和mysql使用的磁盘是同一个磁盘,所以导致磁盘IO上升,从而mysql变慢。
并且redis的bgsave每隔60秒运行一次,也是会对磁盘有大量的写操作,不过目前看来影响不是特别大,因为数据量比较小。
所以我们开始考虑新的redis备份方案。
与mysql不同,redis从机在第一次启动的时候会从主机全量同步一次数据。
所以我们想了几套方案,我分别列一下。
redis主从热备,从机进行冷备
这种方案其实是可以的,但是有几个问题:
如果主机不关闭rdb保存就没有问题,如果关闭了的话,那么当主机不小心宕机重启,那么当主机redis启动之后,会把从机redis的数据也抹掉。十分危险。
一旦从机服务器出问题,重新启动后会从主机同步所有数据,导致主机bgsave运行,如果数据量很大,会导致主机内存狂飙,如果主机又忘记配置内存使用限制,就会是灾难了。这在云风的一篇文章中有写: 谈谈陌陌争霸在数据库方面踩过的坑( Redis 篇)
所以后来,我决定选择一个比较简单的方案。
使用ssh将rdb文件传输到另一台机器上,再进行冷备。