大局限MySQL运维陷阱:行使MyCat踩坑篇
我们此刻接头的是漫衍式架构方案,而这个题目讲的环境是,某一个MyCat发明白后端数据库连不上了,会自动切换的成果,这就很是明明晰,我们要的是漫衍式,某“一个”MyCat节点以为的题目就真的是他以是为的吗?也就是说,一个节点并不能担保他判定的可能他看到的征象是真实的,那这种环境下就存在误切换的环境,而假如其余中间层节点还不知道这个环境,可能未实时收到切换的动静,就呈现了多点写入的题目,挺可骇的。这不是自相抵牾吗?我们要的是漫衍式,功效又存在“独断”的环节,靠得住性又降落了不少。关于漫衍式监控切换的题目,由于在去哪儿用的mysql-sentinel对Galera Cluster做的监控,我对这点深有感伤,以是不得不在这里讲一下。 在MyCat上面备份是怎样做的?能做到规复一个快照吗? 提及备份,做为数据库行使者,应该没有一个不清晰,没有一小我私人会认为他不重要吧?虽然,重要是重要,但这种工作属于重要不紧张的事变,但没有是不可的,这个连公司内审这一关都过不了,大概我们每一小我私人都不会但愿能用到他。 言归正传,话嗣魅这么重要的备份事变,在MyCat上又是什么环境呢?也许相识一些根基道理的人都较量清晰,Xtrabackup、mysqldump等也都是可以用的,但备份完了之后呢,也许内心照旧感受没底,由于这样的器材,只能对一个MySQL节点做备份,假如分10个分片(10个MySQL节点)的话,可以通过备份十次即可完成,但必要留意的是,备份了十次发生了十个备份集,而并不是一个备份集,这十个备份集之间是完完全全没有相关的,此时我也许就提出一个较量极度的题目来: 假如哪天(虽然我们都不但愿有这样的一天),整个机房挂了,虽然若是“荣幸”的是,有备份,那在这种环境下,怎样规复一个可用的数据同等及完备的集群快照呢? 这个时辰也许会有人很快地说,将十个备份集都规复了启动了即可。但题目是这十个没有相关,备份时刻又不是统一时候完成的,统一个表的十个分片,最新数据有的是8点的,有的是9点的,可能有的乃至是昨天的。这样规复出来的表,能用么?基于这样的表发生的查询功效,靠谱么?可想而知。 虽然也许也有人会说,我们的数据不必要同等快照,可能更有甚者只必要备份元数据路由表可能设置文件即可,那这样就没题目了,假如MyCat只是定位于用来存储Zabbix监控数据,可能日记数据,可以丢失不要的数据,一文不值的数据,那我认为没短处。 或者有人还会说,我们的机房不会挂,可能我们的存储原来就是跨机房的,挂了的话直接切到其它的机房就行了,那此时又有题目了,假如切换的时辰,有复制耽误,丢失了部门数据,那整个集群又会出题目,由于只要有一个分片的数据出题目,整个集群就有题目了。可能另一个题目就是,假设你的机房真的不会挂,但我们常常会碰着的需求是,我要取前几天某时候的数据,那此时照旧必要通过备份然后规复一个快照,这个时辰尚有何话可说,你汇报我毕竟怎样做到? 也许还会有人有疑问,他会说我们是逻辑备份啊,这样备份出来的是整个库可能表的同等性快照,这不就办理题目了么?我很赞成这位同窗的观点,说得对极了,是可以很美满地办理同等性题目,但只要认识一点点MySQL的人都知道,相同mysqldump这样的逻辑备份器材,是何其慢?此刻都用漫衍式存储了,那必定是数据量很是大,这个时辰还在行使这样的逻辑备份?你是想干哈?纵然备份完成了,那有没有试过逻辑数据的规复?几个G的数据要规复多久,你算过没有?想想都头疼。一条不归路。。。 假如已经在行使MyCat了,发明他的风险确实太大了,我怎样能下掉呢? 这个题目很是好,声名你已经在思索做为一个数据认真人,怎样担保数据的靠得住性和停止风险的题目了,MyCat风险确实高,但假如已经上了“贼船”而且想下掉的话,此时我也许想问一下(做一回过后诸葛亮),上这个架构的时辰为什么不多思量一下呢?公司的数据就是款子,你这样想上就上,想下就下,往访魅折腾,能升值么?万一数据写乱了,这个时辰可没有人赔你钱,还不如上云呢。 不外既然上了,那咱就聊聊怎样下掉的题目,我今朝感受最靠谱最稳妥的步伐,貌似只有一个,步调如下: 先破产务,将全部的写营业都遏制(也不消找深夜时刻了,由于12小时基础搞不完)。 通过上面所讲的mysqldump做逻辑备份,将全部的库导出来,天生.sql文件。 然后找一个靠谱的MySQL架构(真正的漫衍式数据库,可能磁盘足够大的话可以不回收漫衍式,回收Share Nothing的方案即可,大概你必要的并不是漫衍式,只是被忽悠了),将.sql文件导入进去。 然后就将读营业迁徙到新的数据库架构上面去。 将写营业也迁徙到新的数据库架构上面去,然后启动他们,这个时辰应该是可以提供正常的数据库处事了。 我们可以留意一下这个进程,从第1步,到第5步,必要几多时刻?这个虽然是硬时刻,是要移动数据的,逻辑备份和规复都那么慢,我认为时刻的单元可以用天来统计了。 这个时辰认真人就可以想想,我用MyCat是图什么啊,营业的免战牌挂了好几天,只是为了补充昔时的一个错误抉择,追悔莫及。 虽然大概有些人也会有其余步伐,但由于各个分片都是彼此独立的,照旧存在上面的所说的在不断止营业的环境下的“同等性快照”的题目。 最后我想说的是,对公司的数据,必然要慎之又慎,要时候保持认真的立场,折腾数据真的不能升值啊。 MyCat的设置伟大吗?上手轻易么? 我们只必要看一个图片就行了。你能想象这是它的设置文件么?看了之后我预计你也没有任何行使它的欲望了,许多人在行使之后,是这样评价的: ![]() 设置文件如下: ![]() 竟然是一个XML文件,这个产物司理其时是怎样想的?后头也没有想着做个优化? 最后一个题目,此刻做分库分表做得好的有哪些? (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |