dbproxy使用笔记

1.安装错误:cannot find -lmysqlclient

将依赖拷贝到标准库里

cp /home/liuweiwei_dxm/mysql_5.6/lib/mysql/libmysqlclient.* /usr/lib

如果将so文件路径加入到/etc/ld.so.conf,不能解决问题

echo /home/liuweiwei_dxm/mysql_5.6/lib/mysql/ /etc/ld.so.conf

 2.编译安装过程

sh autogen.sh
sh bootstrap.sh
make
make install

配置过程

//创建配置文件夹
mkdir /usr/local/mysql-proxy/conf
//拷贝配置文件 cp script/source.cnf.samples /usr/local/mysql-proxy/conf/source.cnf
//内部参数修改查看网页教程

 启动:

/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/conf/source.cnf
//查看是否启动成功
ps -ef | grep mysql-proxy

登录管理口:

mysql -uguest -pguest -P3309 -h127.0.0.1

登录工作口://注意工作口的用户名密码与主从服务器的密码相同

mysql -udxm -pdxm1111 -P3309 -h127.0.0.1

3.配置

sql黑名单:sql执行时间超过阈值,执行频率超过指定频率自动将sql加入到黑名单中。

#SQL过滤的时间阈值
query-filter-time-threshold=500

#SQL过滤的频率阈值
query-filter-frequent-threshold=10

4.使用

管理口:

查看用户和密码

select * from pwds;

查看backend信息:

select * from backends;

添加只读从服务器:

add slave 10.21.172.40:8008
ADD MASTER $backend

 添加分表规则:

add sharding table_name: test.student.id.3
:删除分区表时,参数是 db.name.tbl 而非完整的分表信息。

 

工作口:

DBProxy只允许一主一从或一主多从,不能多主。

工作口的查询只查询从库数据,不查询主库数据。

insert请求发往主库,select请求发往从库,看起来dbproxy只是实现了主从读写分离,并将读请求分发到不同的从服务器上。

动态添加从库,流量管理。

对每条sql都有日志记录操作和时间,统计信息管理和监控管理。

可以看出同一个查询命令发往了两台不同的服务器(为了区分,两台从服务器写入了不同的数据)

 

5.bug

无法对语句中出现的错误进行判断。

 

 

 

 

6.限制

1 不能设置多个主库,或者在已有主库再增加主库
2 所有的后端db节点,都需要有相同的用户名及密码
3 配置mysql的IP权限时,必须保证所有用户在DBProxy所在的机器具有权限

 

 

 

 

DBProxy支持对以下功能模块的管理:基本操作管理、用户管理、连接管理、分表管理、backend管理、日志管理、流量控制、统计信息管理和监控管理。

 

posted @ 2021-03-31 18:15  dsfsadfdgd  阅读(330)  评论(0)    收藏  举报