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是平时startstoprestart脚本


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



4、登录mysqlscheduler库创建用户并授予权限


执行下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 Only1代表Read Failover2代表Read/Write SplitMaster节点不参与读操作);3代表双Master结构,或者是XtraDB Cluster结构,即多主对等的方式;4代表Read/Write SplitMaster节点共同参与读操作);5代表读写随机。

 

proxy-security-level

 

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

 

proxy-group-security

 

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

 

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

 

event-threads

 

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

 

 

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

./oneproxy.service restart


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



用户可以自行在oneproxy里面进行DDLDML操作。

 

 第二部分:

Oneproxy分表测试

这边以user__wechat表做测试



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


last_update_time字段作为分表字段,采取range类型,还支持listhash分区

登录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后面加上插入的字段补全,不然会报错

列子:


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







Logo

更多推荐