十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文将演示如何在 KubeSphere[1] 上部署 RadonDB MySQL on Kubernetes 2.1.2 ,快速实现高可用的 MySQL on K8s。
成都创新互联公司长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为云阳企业提供专业的网站设计、成都网站设计,云阳网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
若已在 KubeSphere 部署过历史版本 Operator,可以选择如下方式更新到最新版本。
可任选一个 RadonDB MySQL 配置示例[5] 部署,或自定义配置部署。
以 mysql_v1alpha1_mysqlcluster.yaml 模版为例,创建一个 RadonDB MySQL 集群。
注意
未指定项目时,集群将被默认安装在 kubesphere-controls-system 项目中。若需指定项目,安装命令需添加 --namespace=project_name 。
预期结果
预期结果
在 demo-project 项目中,查看 RadonDB MySQL 集群状态。
至此,完成在 KubeSphere 中部署 RadonDB MySQL 集群。
[1]:KubeSphere:
[2]:OpenPitrix:
[3]:创建操作:
[4]:项目网关:
[5]:配置示例:
1. 准备环境
2. 安装Galera(每台都需要安装)
删除原版本mysql
配置yum源
安装
如果是本地安装,注意安装顺序
特别注意:
3. 修改密码
4. 每台机器创建用于数据同步的用户
5. 配置Galera Replication
galera1配置
galera2配置
galera3配置
galera4配置
6. 重启服务:每台机器
7. 查看端口
8. 测试
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 后,在新的复制链路没有故障时,如果原主节点恢复,是不会回切的。如果当前复制链路发生故障,会再次选择权重高的进行切换
如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;
如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;
如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。
随着计算机和信息技术的迅猛发展和普及,行业应用系统的规模迅速扩大,行业应用所产生的数据量量呈爆炸式增长,类似于MySQL集群这样的技术得到了广泛的运用,MySQL集群原理的运用就显得尤其重要。
动力节点的MySQL集群教程 ,对于MySQL集群技术的应用场景有着详细的介绍,能够有效帮助我们学以致用, 教程主要从MySQL集群架构解析到架构部署再到集群架构测试,一步步带你部署企业级的MySQL数据库集群项目,熟悉各个环节技术点,提升数据库架构设计能力。
•001.MySQL集群视频教程:主从复制介绍
•002.MySQL集群视频教程:主从复制结构
•003.MySQL集群视频教程:主从复制流程原理
•004.MySQL集群视频教程:多实例安装
•005.MySQL集群视频教程:多实例链接
•006.MySQL集群视频教程:一主多从-配置
•007.MySQL集群视频教程:-一主多从测试
•008.MySQL集群视频教程:双主双从配置
•009.MySQL集群视频教程:双主双从测试
•010.MySQL集群视频教程:多数据源-环境搭建
•011.MySQL集群视频教程:多算数据源实现
•012.MySQL集群视频教程:修复MySLQ主从复制
•013.MySQL集群视频教程:多数据源的问题
•014.MySQL集群视频教程:动态数据源
•015.MySQL集群视频教程:动态数据源执行流程
•016.MySQL集群视频教程:SpringBoot集成多数据源
•017.MySQL集群视频教程:SpringBoot集成多数据源问题
•018.MySQL集群视频教程:SpringBoot集成动态数据源
一个最简单的MySQL集群通常是一主一从的架构(Master-Slave)
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