视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于amoeba+keepalived+mmm实现mysql读写分离高可用架构
2020-11-09 10:24:35 责编:小采
文档


更多博文请关注:没有伞的孩子必须努力奔跑(www.xuchanggang.cn)在上一篇已经通过mysql-mmm实现对mysql数据库的动态监控,这一篇我们将结合amoeba实现对数据库访

1.将需要的包传送到服务器并解压[我这里默认安装包已经上传到服务器家目录]

# 在192.168.1.112/192.168.1.113上分别解压如下几个包 [root@client112 ~]# tar -xf keepalived-1.2.9.tar.gz [root@client112 ~]# tar -xf jdk-7u15-linux-x.tar.gz -C /usr/local/ # 在192.168.1.113 [root@client113 ~]# tar -xf keepalived-1.2.9.tar.gz [root@client113 ~]# tar -xf jdk-7u15-linux-x.tar.gz -C /usr/local/

2.分别到192.168.1.112/192.168.1.113上配置java环境[这里只演示在112上的操作,113上重复此操作即可]

[root@client112 ~]# cd /usr/local/ [root@client112 local]# mkdir java # 将解压出来的内容移到java目录 [root@client112 local]# mv jdk1.7.0_15/* java # 设置java环境变量 [root@client112 local]# echo $JAVA_HOME [root@client112 local]# vim /etc/profile # 在末尾添加 JAVA_HOME=/usr/local/java AMOEBA_HOME=/usr/local/amoeba export PATH=$PATH:$AMOEBA_HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin # 使变量生效 [root@centos local]# source /etc/profile

3.分别到192.168.1.112/192.168.1.113上配置amoeba[这里只演示在112上的操作,113上重复此操作即可]

(1).配置amoeba中的dbServer.xml(后端mysql 服务器连接配置)

# 建立相应amoeba目录 [root@client112 local]# mkdir /usr/local/amoeba # 将压缩包解压到指定目录 [root@client112 local]# tar -xf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba [root@client112 local]# cd /usr/local/amoeba/ [root@client112 local]# cd conf/ # 配置后端mysql 服务器连接[dbServer.xml] [root@client112 conf]# vim dbServers.xml .........................(省略) ${defaultManager} 128 # 设置 mysql 数据库的端口 3306 # 设置缺省的数据库,当连接amoeba时,操作表必须显式的指定数据库名,即采用dbname.tablename的方式, # 不支持 use dbname指定缺省库,,因为操作会调度到各个后端dbserver kongzhong # 设置amoeba连接后端数据库服务器的账号和密码,需在后端数据库器上创建该用户,并授权amoeba连接 # 此处需要特别注意:**** 密码默认是注释掉,需要去掉注释!!! kongzhong kongzhong # 最大连接数[默认] 500 # 最大空闲连接数[默认] 500 10 600000 600000 true true true # 设置一个后端的dbServer,名为master ,这个可以随便取,但是为了明确其含义,最好给予特殊含义的单词 # 下面指定的数据库IP地址,为mmm提供给对外访问的虚拟IP地址 192.168.1.12 192.168.1.13 192.168.1.14 192.168.1.15 192.168.1.16 # 指定一个虚拟的dbServer,将上面定义的dbserver加入这个虚拟的dbserver,相当于组成一个组[这里我们将读的数据库组成一个组] # 这里 需要将 改成自己想要取的名字,这个名字也需要有含义,后面会用到 # 选择调度算法 1 是轮询 2 是权重 3 是HA 这里选择1 轮询 1 # 负载均衡,slave1,slave2当成2个服务器进行调度,这模拟量加权的调度算法。 # 注意这里使用的dbserver必须是已经定义了的,可以写多个,如slave1,slave2 slave1,slave2,slave3,slave4


(2).配置 Amoeba 监听端口[amoeba.xml]

[root@client112 conf]# vim amoeba.xml .........................(省略) # 设置amoeba监听的端口(这里如果默认,后面测试需要指定端口,就是这里的端口) 3306 127.0.0.1 --> .........................(省略) # 提供客户端连接amoeba时需要使用这里设定的账号 (这里的账号密码和amoeba连接后端数据库服务器的密码无关) kongzhong123 # 提供客户端连接amoeba时需要使用这里设定的密码 kongzhong123 ${amoeba.home}/conf/access_list.conf .........................(省略) ${amoeba.home}/conf/rule.xml ${amoeba.home}/conf/ruleFunctionMap.xml ${amoeba.home}/conf/functionMap.xml 1500 master # 把默认注释掉的读写分离选项,把注释去掉并readpool修改成virtualslave(这个名字,我们前面在dbServer.xml里设置一个读数据库组,这里是作为只读池) master virtualslave true

下载本文
显示全文
专题