一般在现实中,用cobar是多台集群的,mysql用的是多实例,并且是主主同步来达到数据的高可用。下面是我画的一个简单草图,很形像地说明了之间的关系。
其中,我用了2台服务器A和B来做例子,都安装了cobar和mysql来实现集群。mysql用的是多实例,mysql实例1和mysql实例3是主主同步;mysql实例2和mysql实例4是主主同步。
mysql多实例配置很简单,可以在网上找到很多,我这就不再啰嗦了。先看一下,我的mysql配置文件:
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = test
password = test123
# The MySQL server
[mysqld1]
port = 3306
socket = /tmp/mysql.sock
......
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /var/lib/mysql2/hostname.pid2
datadir = /var/lib/mysql2
user = mysql
server_id =11
连接多实例中的某个实例的话,要加-P和-S
比如:mysql -uroot -p -P3307 -S /tmp/mysql.sock2
mysql的主主同步设置,也很简单,这里也不再介绍了,需要注意的是:auto-increment-increment和auto-increment-offset这两个参数,防止主键ID有重复的出现。
auto-increment-increment = 2 自增值变化值为2
auto-increment-offset = 1 或 2 自增值起始值为1或2
每台机器中的cobar的安装和配置,可以借鉴我的前几篇文章,cobar的集群配置是需要在server.xml中设置的:
vi server.xml
<?xml version="1.0" encoding="UTF-8"?>
2
4
4
<!-- 系统参数定义,服务端口、管理端口,处理器个数、线程池等。 -->
<!--
8066
9066
16
4
4
4
8
8
_HEARTBEAT_USER_
_HEARTBEAT_PASS_
-->
<!-- 用户访问定义,用户名、密码、schema等信息。 -->
test
test
<!--
-->
<!-- 集群列表定义,指定集群节点的主机和权重,用于集群间的心跳和客户端负载均衡。 -->
172.16.88.130
1
172.16.88.131
1
<!-- 隔离区定义,可以限定某个主机上只允许某个用户登录。 -->
<!--
test
-->
还要在schema.xml中设置一下和
分库和分表是在schema.xml和rule.xml中设置的,实际中要用到的表是很多的,所以像下面的语句会出现很多很多行,当然引号内的参数是不同的。
......
其中需要注意的是:rule中的参数是在rule.xml中定义过的,否则会报错。当然,rule.xml中也要定义很多个不同表的规则。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29806344/viewspace-1406907/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29806344/viewspace-1406907/