您的位置:首页 > 其它

OneProxy安装部署和分表简测

2016-10-31 13:44 267 查看
Oneproxy部署安装:

 安装环境:UCloud云主机  centos 6.4  2.6.32-431.11.25.el6.ucloud.x86_64

 

官网http://www.onexsoft.com/?page_id=4029下载oneproxy最新版:

oneproxy-rhel5-linux64-v5.8.5-ga.tar.gz

 

测试环境的mysql版本是5.6.16,具体mysql的安装这边不做介绍,需要的可以参考:

http://note.youdao.com/noteshare?id=2488960ee09a3b7843087213456749fa


 

1、将安装包上传至/usr/local目录进行解压
tar zxvf oneproxy-rhel5-linux64-v5.8.5-ga.tar.gz



2、进入oneproxy目录会看到下面几个文件



其中demo.sh是初始启动脚本,oneproxy.service是平时start、stop、restart脚本

3、将demo.sh和oneproxy.service脚本里的目录改成自行设置的安装目录,这边以/usr/local为例





4、登录mysql对scheduler库创建用户并授予权限



执行下flush privileges刷新权限、

5、启动oneproxy 



确认oneproxy监听端口3307和工具管理端口4041监听正常

 

还可以查看oneproxy的日志输出情况,看到以下内容说明启动正常



5、对用户名的密码进行加密设置



6、由于mysql服务器和oneproxy中间件在一台服务器上进行的测试,下面是配置文件信息

/usr/local/oneproxy/conf/proxy.conf



注意:当测试环境oneproxy后端只有一台mysql服务器的时候proxy-auto-readonly=1这个参数要禁止掉,不然会出现sql不能在oneproxy执行的情况

解释:

--proxy-master-addresses

格式:ip:port@groupname

其中“groupname”指的是“Server Group”的名字,如果不指定,则默认为“default”。

 

proxy-address             Proxy Server自身监听地址

 

proxy-slave-addresses    Slave节点地址(可读取节点)

 

proxy-user-list            Proxy用户列表(用户名:口令)

 

proxy-table-map          为某张表指定“Server Group”

 

proxy-sql-review          为某张表指定Where条件中必须的列

 

proxy-database      Proxy对应的后端数据库

 

proxy-charset      

通过OneProxy来管理多个数据库时,要求所有的数据库字符集是一致的,同样是基于现有连接池机制的考虑,可以选的值在README文件里有,默认值是“utf8_general_ci”,为了防止连接池中不同的连接出现不同的设置,“set”命令在OneProxy里也是不生效的。

 

proxy-group-policy

 

预定义策略,0代表由Lua Script来决定,默认为Master Only;1代表Read
Failover;2代表Read/Write Split(Master节点不参与读操作);3代表双Master结构,或者是XtraDB
Cluster结构,即多主对等的方式;4代表Read/Write Split(Master节点共同参与读操作);5代表读写随机。

 

proxy-security-level

 

安全级别,0默认值,1禁止DDL,2禁止不带条件的查询语句,3只允许SELECT。

 

proxy-group-security

 

为特定Server Group设置安全级别。

 

安全级别,0默认值,1禁止DDL,2禁止不带条件的查询语句,3只允许SELECT。

 

event-threads

 

并发线程数,最大允许48个线程。通常这个值可以设为CPU Core数量的两倍

 

 

7、重启oneproxy使配置生效,连接oneproxy

./oneproxy.service restart



当指定连接的默认数据库名时,
其实是指定连接到 OneProxy 时的默认 MySQL 集群,直接show tables;就能看到scheduler库下面的表,这些表是之前建立好的。



用户可以自行在oneproxy里面进行DDL、DML操作。

 

 第二部分:

Oneproxy分表测试

这边以user__wechat表做测试



只要将分库分表的关键配置信息保存到文件 “part.txt” 中,给 “proxy-part-tables”选项指定“part.txt”文件的位置,OnePorxy 就会装载 分区信息,就可以实现分库分表了。



以last_update_time字段作为分表字段,采取range类型,还支持list、hash分区

登录oneproy mysql -uwangxin -p -P3307 -h127.0.0.1 default -c

创建好子表:

user__wechat_1406   

user__wechat_1501     

user__wechat_1506     

user__wechat_1601     

user__wechat_1606     

user__wechat_1701    

重启oneproxy使配置生效

 

将逻辑备份的user__wechat数据导入到主表里面

mysql -h127.0.0.1 -uwangxin -P3307 -p  scheduler </data/user_wechat.sql

 

注意:这边进行导入之前,需要将逻辑备份文件的其他语句比如create等全部删除,只保留insert,还需要into后面加上插入的字段补全,不然会报错

列子:



查看主表和分表数据是否一致



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oneproxy