运行Atlas
进入/usr/local/mysql-proxy/bin目录,执行下面的命令启动、重启或停止Atlas。
(1). sudo ./mysql-proxyd test start,启动Atlas。
(2). sudo ./mysql-proxyd test restart,重启Atlas。
(3). sudo ./mysql-proxyd test stop,停止Atlas。
执行命令:mysql -h127.0.0.1 -P1234 -u用户名 -p密码,如果能连上则证明Atlas初步
测试正常,可以再尝试发几条SQL语句看看执行结果是否正确。
Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
例如
proxy-backend-addresses = 192.168.237.128:3308
Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
proxy-read-only-backend-addresses = 192.168.237.130:3308@1
关闭主备库复制关系,在主库上查看
当MySQL主库关闭的情况下,写操作失败,读操作依然可以执行
当MySQL仅有的一个从库关闭的情况下,写操作成功,读操作也漂移到主库上执行
当有多个从库的情况下
Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 192.168.237.128:3308
Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重(数字越大读取的机会更高),用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
例如:
proxy-read-only-backend-addresses =192.168.237.130:3308@1,192.168.237.131:3308@1
当第一个从库崩溃时执行查询语句,语句都在第二个节点查询
当有多个读节点时,权重越大,被读取的可能性就越高
Atlas后端连接的MySQL从库的IP和端口, @后面的数字代表权重,用来作负载均衡,若省略则默认为1,
可设置多项,用逗号分隔
例:
proxy-read-only-backend-addresses = 192.168.237.130:3308@1,192.168.237.131:3308@2
自动读写分离挺好,但有时候写完马上就想读,万一主从同步延迟怎么办?
SQL语句前增加 /*master*/ 就可以将读请求强制发往主库。在mysql命令行测试该功能时,需要加-c选项,以防mysql客户端过滤掉注释信息。
主库宕机,读操作受影响么?
在Atlas中读操作不受影响,Atlas会将读请求转发到其他还存活的从库上。但此时写请求将会失败,因为主库宕机了。
Altas支持多个主库的运行模式吗?
官网:目前还未对于Atlas后面挂接多个主库的情形进行测试过,不建议这样使用。建议使用一主一从或一主多从的模式。
可以做双主,在proxy-backend-addresses = ip1,ip2 但是不建议使用
类似在一个库,创建了多个子表
使用Atlas的分表功能时,首先需要在配置文件(test.cnf)设置tables参数。
tables参数设置格式:数据库名.表名.分表字段.子表数量,比如你的数据库名叫school,表名叫stu,分表字段叫id,总共分为100张表,那么就写为school.stu.id.100,如果还有其他的分表,以逗号分隔即可。用户
需要在数据库手动建立100张子表(stu_0,stu_1,…stu_99,注意子表序号是从0开始的)。 且所有的子表必须在DB的同一个database里·