一个最简单的MySQL集群通常是一主一从的架构(Master-Slave)
创新互联主营新会网站建设的网络公司,主营网站建设方案,重庆App定制开发,新会h5小程序开发搭建,新会网站营销推广欢迎新会等地区企业咨询
MySQL自带有主从同步的功能
主要步骤如下:
在主库上创建一个同步账号
GRANT SELECT,REPLICATION SLAVE ON *.* TO user@'%' IDENTIFIED BY'123456'
在从库上设置主库
change master to master_host='主库IP',master_port=主库端口,master_user='user',master_password='123456',master_auto_position=1;(mysql5.6以上)
change master to master_host='主库IP',master_port=主库端口,master_user='user',master_password='123456',MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=0,
在从库上启动同步线程
start slave;
复杂的集群通常通过第三方软件,比如刚刚GA的MySQL官方高可用MGR
1:
Windows server 2003 192.168.119.88(管理节点,存储节点,SQL节点)
Windows server 2003 192.168.119.87(存储节点,SQL节点)
2、安装程序
在两台机器上面同时进行
(1)在mysql cluster官网:
中下载msi安装软件mysql-cluster-gpl-7.4.11-win32.msi
可能需要Oracle用户注册后下载
安装完成后
(2)在命令行中切换到mysql安装后bin目录下执行:
mysqld --install mysql 注册服务
(3)设置环境变量:
将mysql安装后bin目录添加到环境变量中
Asynchronous Replication Automatic failover
其原理是在一条异步复制通道上配置多个可用复制源,当某个复制源不可用时(宕机、复制链路中断),且 slave 的 IO 线程尝试重连无效,自动根据权重选择新的源继续同步。
准备一个 MGR 集群和单实例,模拟复制链路切换,当 primary 故障,slave 自动切换到其他节点。dbdeployer deploy replication --topology=group 8.0.22 --single-primarydbdeployer deploy single 8.0.22
2. 在从机上建立指向 MGR 主节点的复制通道,
change master to master_user='msandbox',master_password='msandbox', master_host='127.0.0.1',master_auto_position=1,source_connection_auto_failover=1,master_port=23223,master_retry_count=6,master_connect_retry=10 for channel 'mgr-single';
在 master_retry_count 和 master_connect_retry 的设置上要考虑尝试重连多久才切换复制源。
3. 在从机上配置 asynchronous connection auto failover
配置 asynchronous connection auto failover 的两个函数:
asynchronous_connection_failover_add_source(channel-name,host,port,network-namespace,weight)
asynchronous_connection_failover_delete_source(channel-name,host,port,network-namespace)
权重值大的被优先级选择,可以配合MGR的选举权重配置 asynchronous_connection_failover 的权重。当 MGR 节点切换,异步复制也能切换到新的主节点。
SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23223,null,100); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23224,null,80); SELECT asynchronous_connection_failover_add_source('mgr-single','127.0.0.1',23225,null,50);start slave for channel 'mgr-single';
4. 检查异步复制通道是否启用 failover。
mysql SELECT CHANNEL_NAME, SOURCE_CONNECTION_AUTO_FAILOVER FROM performance_schema.replication_connection_configuration; +--------------+---------------------------------+| CHANNEL_NAME | SOURCE_CONNECTION_AUTO_FAILOVER |+--------------+---------------------------------+| mgr-single | 1 |+--------------+---------------------------------+1 row in set (0.01 sec
5. 把 MGR 的 primary 节点 kill 掉,这个从节点会在尝试几轮重连失败后自动切换到次权重的复制源,其日志中会输出切换信息。
注意:当主节点故障,一旦复制链路成功 failover 后,在新的复制链路没有故障时,如果原主节点恢复,是不会回切的。如果当前复制链路发生故障,会再次选择权重高的进行切换