Atlas 介绍
Atlas是由Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。
它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。
360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。
下载地址:Releases · Qihoo360/Atlas · GitHub
注意:
1、Atlas只能安装运行在64位的系统上
2、Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。
3、后端mysql版本应大于5.1,建议使用Mysql 5.6以上
实验环境
实验步骤
主从复制和MHA参考上一章内容
1、安装Atlas(Atlas)
将Atlas-2.2.el6.x86_64包拖入/root目录
rpm -ivh Atlas-2.2.el6.x86_64.rpm
2、制作repl和mha用户的加密密码(Atlas)
/usr/local/mysql-proxy/bin/encrypt 123
/usr/local/mysql-proxy/bin/encrypt mha
3、创建Atlas配置文件(Atlas)
cd /usr/local/mysql-proxy/conf/
mv test.cnf test.cnf.bak
vim test.cnf
添加:
[mysql-proxy]
admin-username = user
admin-password = pwd
proxy-backend-addresses = 192.168.8.5:3306
proxy-read-only-backend-addresses = 192.168.8.6:3306,192.168.8.7:3306
pwds = repl:3yb5jEku5h4=,mha:O2jBXONX098=
daemon = true
keepalive = true
event-threads = 8
log-level = message
log-path = /usr/local/mysql-proxy/log
sql-log=ON
proxy-address = 0.0.0.0:33060
admin-address = 0.0.0.0:2345
charset=utf8
4、启动Atlas(Atlas)
/usr/local/mysql-proxy/bin/mysql-proxyd test start
netstat -anpt | grep mysql-proxy
Atlas功能测试
- 读操作测试
Slave2:
mysql -umha -pmha -h192.168.8.8 -P33060
select @@server_id;
select @@server_id;
轮询读取从数据库内容
- 写操作测试
Slave2:
begin;select @@server_id;commit;
内容写入主数据库
生产用户要求
开发人员申请一个应用用户app(select、update、insert)密码123456,要通过8网段登录
1、在主库中创建用户(Master)
grant select,update,insert on *.* to app@'192.168.8.%' identified by '123456';
2、制作加密密码(Atlas)
/usr/local/mysql-proxy/bin/encrypt 123456
3、在Atlas配置文件中添加生产用户(Atlas)
vim /usr/local/mysql-proxy/conf/test.cnf
添加:
,app:/iZxz+0GRoA=
4、重启Atlas(Atlas)
/usr/local/mysql-proxy/bin/mysql-proxyd test restart
验证:
Master:
create database test;
use test;
create table t1(id int,name varchar(20));
Slave2:
使用app用户登录数据库
mysql -uapp -p123456 -h192.168.8.8 -P33060
use test;
insert into t1 values(1,'zhangsan'),(2,'lisi'),(3,'wangwu');
select * from t1;
数据是通过Atlas写到Master上
Atlas基本管理
连接管理接口(Slave2)
mysql -uuser -ppwd -h192.168.8.8 -P2345
查看数据库帮助
select * from help;
查看数据库节点状态
select * from backends;
关闭节点
set offline 2;
开启节点
set online 2;
删除从节点
remove backend 3;
select * from backends;
添加从节点
add slave 192.168.8.7:3306;
select * from backends;
添加白名单
add client 192.168.8.8;
删除白名单
remove client 192.168.8.8;
保存配置
save config;