七、配置HA中主从MySQL节点帐号 本例中3691和3692实例是需要做成HA的,它们也要建个管理员权限的帐号,注意,帐号名也要跟3306实例保持一致,也需要是fabric,具体如下: CREATE USER 'fabric'@'10.165.17.175' IDENTIFIED BY 'secret';
GRANT ALL ON *.* TO 'fabric'@'10.165.17.175';
同时,由于fabric是基于GTID主从复制,所以这些实例中必须要启用GTID,它们的配置文件要有这些参数: log-bin
gtid-mode=ON
enforce-gtid-consistency
log_slave_updates
八、启动fabric 我们用下面的命令来启动fabric: mysqlfabric manage start
[INFO] 1408116209.229260 - MainThread - Initializing persister: user (fabric), server (10.165.17.175:3306), database (fabric).
[INFO] 1408116209.233982 - MainThread - Loading Services.
[INFO] 1408116209.253620 - MainThread - Fabric node starting.
[INFO] 1408116209.261853 - MainThread - Starting Executor.
[INFO] 1408116209.262001 - MainThread - Setting 5 executor(s).
[INFO] 1408116209.262691 - Executor-0 - Started.
[INFO] 1408116209.264825 - Executor-1 - Started.
[INFO] 1408116209.266648 - Executor-2 - Started.
[INFO] 1408116209.268395 - Executor-3 - Started.
[INFO] 1408116209.269961 - MainThread - Executor started.
[INFO] 1408116209.273374 - MainThread - Starting failure detector.
[INFO] 1408116209.274144 - Executor-4 - Started.
[INFO] 1408116209.275816 - XML-RPC-Server - XML-RPC protocol server ('127.0.0.1', 32274) started.
[INFO] 1408116209.276112 - XML-RPC-Server - Setting 5 XML-RPC session(s).
[INFO] 1408116209.276654 - XML-RPC-Session-0 - Started XML-RPC-Session.
[INFO] 1408116209.278426 - XML-RPC-Session-1 - Started XML-RPC-Session.
[INFO] 1408116209.280368 - XML-RPC-Session-2 - Started XML-RPC-Session.
[INFO] 1408116209.281599 - XML-RPC-Session-3 - Started XML-RPC-Session.
[INFO] 1408116209.282699 - XML-RPC-Session-4 - Started XML-RPC-Session.
九、建立HA服务器组 这个HA服务器组,用于把参与HA的所有MySQL实例都填加进来: mysqlfabric group create my_group
Password for admin:
Procedure :
{ uuid = 292621fd-cddc-4cbb-8c0d-d8a264156679,
finished = True,
success = True,
return = True,
activities =
}
这样我们就创建了一个组名为my_group的HA服务器组。
十、填加HA组的成员 我们首先填加3691,具体如下: mysqlfabric group add my_group 10.165.17.175:3691
Password for admin:
Procedure :
{ uuid = 8d1c11f8-adc4-4321-8307-6296caeb07c1,
finished = True,
success = True,
return = True,
activities =
}
接下来填3692,具体如下: mysqlfabric group add my_group 10.165.17.175:3692
Password for admin:
Procedure :
{ uuid = b1fa3cb9-b86f-4b1a-88cb-e84babb2ab02,
finished = True,
success = True,
return = True,
activities =
}
如果屏幕回显示无error,那么说明成功填加了成员。我们也可以查看一下my_group里面的成员信息,具体如下: mysqlfabric group lookup_servers my_group
Password for admin:
Command :
{ success = True
return = [{'status': 'SECONDARY', 'server_uuid': '6914a176-2370-11e4-af48-00163e004141', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '10.165.17.175:3691'}, {'status': 'SECONDARY', 'server_uuid': 'a8a69428-2366-11e4-af09-00163e004141', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '10.165.17.175:3692'}]
activities =
}
大家可以看到,这2个实例都不是PRIMARY,说明刚刚搭建完的环境,系统是不会选举出PRIMARY的。
十一、选举一个主库 选举的方法也非常简单,具体如下: mysqlfabric group promote my_group
Password for admin:
Procedure :
{ uuid = 529380b9-10ef-409f-a1a9-9430ab9845a3,
finished = True,
success = True,
return = True,
activities =
}
可见执行成功了,并没有返回error。
接下来我们再次验证一下HA集群中各服务器情况。 mysqlfabric group lookup_servers my_group
Password for admin:
Command :
{ success = True
return = [{'status': 'SECONDARY', 'server_uuid': '6914a176-2370-11e4-af48-00163e004141', 'mode': 'READ_ONLY', 'weight': 1.0, 'address': '10.165.17.175:3691, {'status': 'PRIMARY', 'server_uuid': 'a8a69428-2366-11e4-af09-00163e004141', 'mode': 'READ_WRITE', 'weight': 1.0, 'address': '10.165.17.175:3692}]
activities =
}
可见Fabric已经随机选举了一个Master角色。
十二、激活故障自动切换 即使Fabric选出了Master角色,但当这个Master宕机时,Fabric并不会自动将Secondary角色切换成Master角色,所以我们需要将HA配置成可以自动切换角色的样子,具体如下: mysqlfabric group activate my_group
Password for admin:
Procedure :
{ uuid = 518b7dad-06a4-45a8-bfd5-241396706b88,
finished = True,
success = True,
return = True,
activities =
}
当然,我们也可以依据具体需求取消Fabric故障自动切换。
|