我正在尝试在aws autoscaling组中设置mysql集群。我开始时有两个ec2实例,每个实例都有自己的管理(ndb_mgmd),数据(ndbmtd)和sql(mysqld)节点。向外扩展时(我已经配置了实时扩展,它工作正常),它再添加两个ec2实例(因为ndbd的复制数设置为2)并创建一个新的节点组。
现在由于我无法控制在缩放事件期间aws关闭的确切实例,因此它总是取出整个节点组,使群集无效并导致其崩溃。
从我可以看到,mysql集群并不是真正设计为在线扩展,但是有没有办法实现这一点而不需要整个系统进行维护?我们的想法是在横向扩展期间向集群添加新的相同实例,并在aws自动扩展组触发的扩展事件期间关闭实例。
如果我错过任何细节,请告诉我,欢呼!
这是初始配置的样子:
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @10.0.0.149 (mysql-5.6.31 ndb-7.4.12, Nodegroup: 0, *)
id=2 @10.0.0.81 (mysql-5.6.31 ndb-7.4.12, Nodegroup: 0)
[ndb_mgmd(MGM)] 2 node(s)
id=101 @10.0.0.149 (mysql-5.6.31 ndb-7.4.12)
id=102 @10.0.0.81 (mysql-5.6.31 ndb-7.4.12)
[mysqld(API)] 2 node(s)
id=51 @10.0.0.149 (mysql-5.6.31 ndb-7.4.12)
id=52 @10.0.0.81 (mysql-5.6.31 ndb-7.4.12)
这是同一群集的扩展版本(+2个实例)的示例:
Cluster Configuration
---------------------
[ndbd(NDB)] 4 node(s)
id=1 @10.0.0.149 (mysql-5.6.31 ndb-7.4.12, Nodegroup: 0, *)
id=2 @10.0.0.81 (mysql-5.6.31 ndb-7.4.12, Nodegroup: 0)
id=3 @10.0.0.151 (mysql-5.6.31 ndb-7.4.12, Nodegroup: 1)
id=4 @10.0.0.83 (mysql-5.6.31 ndb-7.4.12, Nodegroup: 1)
[ndb_mgmd(MGM)] 4 node(s)
id=101 @10.0.0.149 (mysql-5.6.31 ndb-7.4.12)
id=102 @10.0.0.81 (mysql-5.6.31 ndb-7.4.12)
id=103 @10.0.0.151 (mysql-5.6.31 ndb-7.4.12)
id=104 @10.0.0.83 (mysql-5.6.31 ndb-7.4.12)
[mysqld(API)] 4 node(s)
id=51 @10.0.0.149 (mysql-5.6.31 ndb-7.4.12)
id=52 @10.0.0.81 (mysql-5.6.31 ndb-7.4.12)
id=53 @10.0.0.151 (mysql-5.6.31 ndb-7.4.12)
id=54 @10.0.0.83 (mysql-5.6.31 ndb-7.4.12)