OneProxy安装部署和分表简测
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.1
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后面加上插入的字段补全,不然会报错
列子:
查看主表和分表数据是否一致
更多推荐
所有评论(0)