mysql-MHA预发布环境架构分享(四)之Atlas读写分离

rpm -ivh Atlas-2.2.1.el5.x86_64.rpm   【rpm包直接安装】

rpm -ql Atlas 【查看安装路径】

grep -v ‘^#‘ /usr/local/mysql-proxy/conf/test.cnf  |grep -v ‘^$‘  > lipengfei  【过滤垃圾提示符】

mv test.cnf test.cnf.old

cat lipengfei > test.cnf

/usr/local/mysql-proxy/bin/encrypt mysql           【mysql是我的密码,把密码加密】

TWbz0dlu35U=

vi /usr/local/mysql-proxy/conf/test.cnf

[mysql-proxy]

plugins = admin,proxy

admin-username=admin

admin-password=admin

admin-lua-script = /usr/local/mysql-proxy/lib/mysql-proxy/lua/admin.lua

proxy-backend-addresses = 10.142.132.49:3306

proxy-read-only-backend-addresses = 10.142.132.47:3306,10.142.132.48:3306

pwds = root:TWbz0dlu35U=

daemon = true

keepalive = true

event-threads = 8

log-level = message

log-path = /usr/local/mysql-proxy/log

instance = test

proxy-address = 0.0.0.0:1234

admin-address = 0.0.0.0:5678

#min-idle-connections = 128

charset = utf8

查看监听端口

netstat -tanlp | grep mysql

开启

/usr/local/mysql-proxy/bin/mysql-proxyd test start

/usr/local/mysql-proxy/bin/mysql-proxyd test stop

登录管理

mysql -h 10.142.132.50 -P 5678 -u admin -padmin

正常通过代理操作

mysql -h 10.142.132.50 -P 1234 -u root -pmysql

SHOW VARIABLES LIKE ‘server_id‘;

mysql> select * from help;

+-------------------+---------------------------------------+

| command                  | description                                               |

+-------------------+---------------------------------------+

| SELECT * FROM help         | shows this help                                         |

| SELECT * FROM backends     | lists the backends and their state                      |

| SET OFFLINE $backend_id   | offline backend server, $backend_id is backend_ndx‘s id  |

| SET ONLINE $backend_id     | online backend server, ...                              |

| ADD MASTER $backend        | example: "add master 127.0.0.1:3306", ...               |

| ADD SLAVE $backend         | example: "add slave 127.0.0.1:3306", ...                |

| REMOVE BACKEND $backend_id | example: "remove backend 1", ...                        |

| ADD CLIENT $client         | example: "add client 192.168.1.2", ...                  |

| REMOVE CLIENT $client      | example: "remove client 192.168.1.2", ...               |

| SAVE CONFIG                | save the backends to config file                        |

+-------------------+---------------------------------------+

10 rows in set (0.00 sec)

mysql> select * from backends;

+-------------+-------------------+-------+------+

| backend_ndx       |           address        | state    |  type   |

+-------------+-------------------+-------+------+

|           1      | 192.168.0.42:3306         | down     | rw      |

|           2      | 192.168.0.44:3306         | down     | ro      |

|           3      | 192.168.0.43:3306         | down     | ro      |

+-------------+-------------------+-------+------+

3 rows in set (0.00 sec)

------------------------配置文件说明------------------------

[mysql-proxy]

#管理接口的用户名,根据自己需要定义

admin-username = admin

#管理接口的密码

admin-password = password

#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔

proxy-backend-addresses = 10.57.1.131:3306

#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔

proxy-read-only-backend-addresses = 10.57.1.132:[email protected]

#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密,下行的user1和user2为示例,将其替换为你的MySQL的用户名和加密密码!

pwds = root:YQsbJY4G4oc=,test:YQsbJY4G4oc=

# 需要注意的是,这两个用户要在MySQL-Master上创建并开放对应的访问权限,这里的用户是需要对外开放使用的用户

#设置Atlas的运行方式,设为true时为守护进程方式,设为false时为前台方式,一般开发调试时设为false,线上运行时设为true

daemon = true

#设置Atlas的运行方式,设为true时Atlas会启动两个进程,一个为monitor,一个为worker,monitor在worker意外退出后会自动将其重启,设为false时只有worker,没有monitor,一般开发调试时设为false,线上运行时设为true

keepalive = true

#工作线程数,对Atlas的性能有很大影响,可根据情况适当设置

event-threads = 8

#日志级别,分为message、warning、critical、error、debug五个级别

log-level = message

#日志存放的路径

log-path = /usr/local/mysql-proxy/log

#SQL日志的开关,可设置为OFF、ON、REALTIME,OFF代表不记录SQL日志,ON代表记录SQL日志,REALTIME代表记录SQL日志且实时写入磁盘,默认为OFF

#sql-log = OFF

#实例名称,用于同一台机器上多个Atlas实例间的区分

#instance = test

#Atlas监听的工作接口IP和端口

proxy-address = 0.0.0.0:3306

#Atlas监听的管理接口IP和端口

admin-address = 0.0.0.0:2345

#连接池的最小空闲连接数,可根据业务请求量大小适当调大或调小

min-idle-connections = 128

#分表设置,此例中person为库名,mt为表名,id为分表字段,3为子表数量,可设置多项,以逗号分隔,若不分表则不需要设置该项

#tables = person.mt.id.3

#默认字符集,设置该项后客户端不再需要执行SET NAMES语句

charset = utf8

#允许连接Atlas的客户端的IP,可以是精确IP,也可以是IP段,以逗号分隔,若不设置该项则允许所有IP连接,否则只允许列表中的IP连接

client-ips = 127.0.0.1, 10.0.0

#Atlas前面挂接的LVS的物理网卡的IP(注意不是虚IP),若有LVS且设置了client-ips则此项必须设置,否则可以不设置

#lvs-ips = 192.168.1.1

# End

时间: 2024-11-05 20:43:59

mysql-MHA预发布环境架构分享(四)之Atlas读写分离的相关文章

mysql-MHA预发布环境架构分享(六)之mha安装

MHA由Node和Manager组成,Node运行在每一台MySQL服务器上,也就是说,不管是MySQL主服务器.从服务器.还MHA管理机器,都要安装Node!MHA管理节点模块内部依赖MHA节点模块:MHA管理节点通过ssh连接管理mysql服务器和执行MHA节点脚本. 步骤一.IP划分: 主库:10.142.132.52 [keepalived] 从库1:10.142.132.51  [keepalived 备主] 从库2:10.142.132.47 从库3:10.142.132.48 mh

mysql-MHA预发布环境架构分享(七)之mha缺点之修复

1.修复当AB故障切换一次后,mha-manager会自动退出 [只是基本实现,可以在我的基础上修改] [nohup 后台一直执行] vi /app/masterha/monitor.sh #!/bin/bash while : do mhapid=`ps -ef|grep -v grep|grep masterha_manager |wc -l` echo "mhapid:" $mhapid if [ $mhapid -eq 0 ];then masterha_stop --conf

mysql-MHA预发布环境架构分享(二)之mysql源码安装

安装mysql源码包: (1).安装cmake (mysql5.5以后是通过cmake来编译的) 下载解压cmake-2.8.5.tar.gz tar zxf cmake-2.8.12.2.tar.gz -C /usr/local/src cd /usr/local/src/cmake-2.8.12.2 ./configure --prefix=/usr/local/cmake make && make install export PATH=/usr/local/cmake/bin:$P

mysql-MHA预发布环境架构分享(一)之架构草图、正式图展示

   [草图] 简介: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于 Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障切换过程中,MHA能做到在 0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用. 该软件由两部分组成:MHA M

mysql-MHA预发布环境架构分享(八)之relay log的清除

(1)设置relay log的清除方式(在每个slave节点上): mysql -e 'set global relay_log_purge=0' 注意: MHA在发生切换的过程中,从库的恢复过程中依赖于relay log的相关信息,所以这里要将relay log的自动清除设置为OFF,采用手动清除relay log的方式.在默认情况下,从服务器上的中继日志会在SQL线程执行完毕后被自动删除.但是在MHA环境中,这些中继日志在恢复其他从服务器时可能会被 用到,因此需要禁用中继日志的自动删除功能.

mysql-MHA预发布环境架构分享(三)之AB复制

[主:10.142.132.52 mysql配置文件] [mysqld] datadir=/app/mysql/data socket =/app/mysql/data/mysql.sock lower_case_table_names=1 character-set-server=utf8 collation-server=utf8_general_ci server_id =1 wait_timeout=360000 log-bin=binlog log-bin-index=binlog.i

mysql-MHA预发布环境架构分享(五)之keepalived安装

安装keepalive tar zxf keepalived-1.2.2.tar.gz cd keepalived-1.2.2 ./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-x86_64 sudo make sudo make install sudo cp /usr/local/sbin/keepalived /sbin/keepalived service keepalived sta

理解预发布环境和项目部署流程

题外话: 终于又提笔了.一直都记得博客园,偶尔看到评论,偶尔也会翻看旧的文章.一直没有写是因为这段时间里有些忙碌,学习测试方法分析,自动化编程,发布流程环境管理,测试提效,学习和积累是一个漫长的过程,以及暂时没有找到可以单独成文写出来的内容. 这次文章讲到的内容,是如何从一个测试角度看待发布流程和环境管理这些在功能测试前应该先了解的基础. 一.环境 开发环境: 通常表示最低环境,由代码开发人员直接使用和维护,是代码最超前版本的一个环境. 测试环境: 开发人员确认代码分支在开发环境自测没有问题后,

Gtid+MGR+atlas读写分离以及负载均衡高可用架构

MySQL5.7.24 Gtid+MGR+atlas读写分离以及负载均衡高可用架构 一.服务器环境介绍: 腾讯云的云主机安装360开源的mysql中间键Atlas腾讯云机器的外网ip:119.29.97.131沧州233测试物理机器的外网ip192.168.1.233(安全起见故意写成内网的ip,其实是外网ip) 二.mysqlGtid+MGR安装 参考博文地址: 三.中间键Atlas简介 (摘抄自https://github.com/Qihoo360/Atlas) Atlas 是由 Qihoo