MySQL培训学习教程02_mysql集群管理和维护

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:490

MySQL培训学习教程02_mysql集群管理和维护

第一部分 mysql 集群管理
启动
启动顺序:ndb mgm、data node 、sql node
1、Ndb mgm 启动
正常启动:
/usr/sbin/ndb_mgmd -f /etc/config.ini
重载配置文件(如果修改了配置文件生效需要重载):
/usr/sbin/ndb_mgmd -f /etc/config.ini –reload
二进制配置文件存储位置:
[root@blog1 mysql-cluster]# ls /usr/mysql-cluster/
ndb_1_config.bin.1 ndb_1_config.bin.2
详细参照/usr/sbin/ndb_mgmd --help
2、data node 启动
正常启动:
/usr/sbin/ndbd
初始化(清除mysql 集群文件系统):
/usr/sbin/ndbd --initial
详细看帮助:/usr/sbin/ndbd --help
2、sql node启动
这个和mysqld 的启动方法一致
service mysql start

1043

组建MySQL集群的几种方案
LVS+Keepalived+MySQL(有脑裂问题?但似乎很多人推荐这个)
DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间较长?有脑裂问题?)
MySQL Proxy(不够成熟与稳定?使用了Lua?是不是用了他做分表则可以不用更改客户端逻辑?)
MySQL Cluster (社区版不支持INNODB引擎?商用案例不足?稳定性欠佳?或者还有其他问题?又或者听说现在发展不错?)
MySQL + MHA (如果配上异步复制,似乎是不错的选择,又和问题?)
MySQL + MMM (似乎反映有很多问题,未实践过,谁能给个说法)
淘宝的Cola(似乎现在停止开发了?)?变形虫Amoeba(事务支持?)

不管哪种方案都是有其场景限制 或说 规模限制,以及优缺点的。
1.首先反对大家做读写分离,关于这方面的原因解释太多次数(增加技术复杂度、可能导致读到落后的数据等),只说一点:99.8%的业务场景没有必要做读写分离,只要做好数据库设计优化 和配置合适正确的主机即可。
2.Keepalived+MySQL --确实有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况;
3.DRBD+Heartbeat+MySQL --同样有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况,且DRDB是不需要的,增加反而会出问题;
3.MySQL Proxy -- 不错的项目,可惜官方半途夭折了,不建议用,无法高可用,是一个写分离;
4.MySQL Cluster -- 社区版本不支持NDB是错误的言论,商用案例确实不多,主要是跟其业务场景要求有关系、这几年发展有点乱不过现在已经上正规了、对网络要求高;
5.MySQL + MHA -- 可以解决脑裂的问题,需要的IP多,小集群是可以的,但是管理大的就麻烦,其次MySQL + MMM 的话且坑很多,有MHA就没必要采用MMM

建议:
MHA
PXC
KeepaLived
自己开发中间件
以上的解法更普遍和推荐
1.MariaDB Galera Cluster
2.Heartbeat_MariaDB Galera Master/Master Replication
3.Heartbeat_Haproxy_MariaDB Galera Master/Master Replication

1.若是双主复制的模式,不用做数据拆分,那么就可以选择MHA或 Keepalive 或 heartbeat
2.若是双主复制,还做了数据的拆分,则可以考虑采用Cobar;
3.若是双主复制+Slave,还做了数据的拆分,需要读写分类,可以考虑Amoeba;
上述所有的内容都要依据公司内部的业务场景、数据量、访问量、并发量、高可用的要求、DBA人群的数量等 综合权衡
大规模的MySQL集群,基本是靠中间件了,也有很多中间件的案例没有分享出来

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】