年前最后一场技巧盛宴 | 1月27日与京东、日记易技巧大年夜咖畅聊智能化运维成长趋势!
一、Proxysql 的基本常识
ProxySQL是一个可以实现MySQL读写分别的轻量级对象。
ProxySQL的特点
- 将所有设备保存写入到SQLit表中。
- 支撑动态加载设备,即一般可以在线修改设备,但有少部分参数照样须要重启来生效。
- 支撑query cache。
- 支撑对query的路由,可以针对某个语句进行分派去哪个实例履行。
- 故障切换。
- 过滤危险的SQL。
- 不支撑分表,可以分库,然则应用规矩设备实现分表。
ProxySQL的治理设备
Proxysql中有四层设备:
- runtime:运行中应用的设备文件
- memory:供给用户动态修改设备文件
- disk:将修改的设备保存稻磁逄SQLit表中(即:proxysql.db)
- config:一般不应用它(即:proxysql.cnf)
四层设备图:
注释:
- 一般,修改的设备都是在memory层。可以load到runtime,使设备在不消重启proxysql的情况下也可以生效,也可以save到disk,将对设备的修改持久化。
- [1] LOAD MYSQL USERS FROM MEMORY 或 LOAD MYSQL USERS TO RUNTIME
[2] SAVE MYSQL USERS TO MEMORY 或 SAVE MYSQL USERS FROM RUNTIME
[3] LOAD MYSQL USERS TO MEMORY 或 LOAD MYSQL USERS FROM DISK
[4] SAVE MYSQL USERS FROM MEMORY 或 SAVE MYSQL USERS TO DISK
[5] LOAD MYSQL USERS FROM CONFIG
二、ProxySQL的安装
安装步调:
- $ rpm –ivh proxysql-1.3.9-1-centos67.x86_64.rpm // RPM安装
- $ service proxysql start // 启动ProxySQL
- $ rpm -ql proxysql // 查看设备文件的地位
- /etc/init.d/proxysql
- /etc/proxysql.cnf
- /usr/bin/proxysql
由此得亲信proxysql的设备文件在/etc/proxysql.cnf
- $ mysql -uadmin -padmin -P6032 -h127.0.0.1 // 登录,大年夜设备文件中找到默认的用户名和暗码
ProxySQL的启动道理:
ProxySQL在启动时,会启动两个过程,监听两个端标语(6032是治理的端口;6033是对外供给办事的端口),如下图:
启动解释:
在proxysql初次启动时,会大年夜设备文件中获守信息启动;
3、创建账号,用于对外办事连接进来proxysql的┞匪号
在proxysql再次启动时,起首大年夜proxysql.cnf中找到datadir,获取proxysql.db的地位,大年夜proxysql.db获取数据,将其加载到内存memory,然后大年夜内存加载到runtime中,是以这种正常的启动,不会大年夜设备文件中获取参数。
【编辑推荐】
- 一篇控制MySQL,Oracle和PostgreSQL数据库体系架构
- SQL Server、MySQL、Oracle三种数据库的优缺点比较,这一文够了
- MySQL主大年夜同步架构中你不知道的“坑”
- MySQL的前缀索引及Oracle的类似实现
- 【必看】Oracle与MySQL的差别比较
四、总结
- ProxySQL重要的感化是:在线修改设备使之生效 、Query路由、Query cache。个中,Query路由可以指定一个SQL放在哪个数据库上履行;Query cache可以针对及时请求很高的SQL,在Query cache中缓存一些时光。
- 一般地,只须要将请求频繁的萌芽语句,做读的负载均衡,不频繁的可以直接在主库萌芽。
- 对ProxySQL做HA:应用两个ProxySQL,一个对外供给办事,一个做故障切换应用。
三、设备读写分别
机械的信息: