马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、mycat分布式存储服务部署
1. 安装java运行环境(db01)
[root@db01~]# yum install -y java
2. 下载、解压mycat包
# 上传解压mycat程序包
[root@db01 ~]# tar xf Mycat-server-1.6.7.4-release-20200105164103-linux_.tar.gz -C /usr/local/
[root@db01 ~]# ll /usr/local/mycat
# 设置服务程序环境变量
[root@db01~]# vim /etc/profile
export PATH=/usr/local/mycat/bin PATH
[root@db01~]# source /etc/profile
3. 运行启动服务程序并测试连接mycat:
[root@db01~]# mycat start
[root@db01~]# mysql -uroot -p123456 -h 127.0.0.1 -P8066
或者
[root@db01~]# mysql -uroot -p123456 -h 127.0.0.1 -P8066 --default-auth=mysql_native_password
-- 有大概会出现连接不上的环境,因为mycat程序库中,使用的java连接驱动器版本为5.1版本,和数据库8.0大概有兼容问题
[root@db01~]# cp mysql-connector-java-8.0.21/mysql-connector-java-8.0.21.jar /usr/local/mycat/lib/
[root@db01~]# mycat restart
-- 可以进行mycat连接驱动更新操纵,可以解决mycat连接问题
二、mycat实现读写分离
1.程序目录设置说明
目录信息解释说明文件信息解释说明bin程序脚本目录conf设置文件目录schema.xml管理节点信息设置文件(主设置文件) 节点信息、读写分离、高可用设置、调用分片策略...rule.xml定义分片规则设置文件(分片策略定义、功能使用方法)server.xml服务功能本身设置文件(服务有关设置) 用户、网络、权限、策略、资源...xx.txt分片参数定义文件log4j2.xml相干日记记录设置lib驱动程序目录logs日记文件目录wrapper.log服务运行启动日记文件mycat.log服务运行环境日记文件 2.schema.xml 设置文件(实现读写分离)
- [root@db01 ~]# cd /usr/local/mycat/conf/
- [root@db01 conf]# vim schema.xml
- # 逻辑库schema部分
- <?xml version="1.0"?>
- <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
- <mycat:schema xmlns:mycat="http://io.mycat/">
- <schema name="cqshzl" checkSQLschema="false" sqlMaxLimit="100" dataNode="node_cqshzl"></schema>
- -- schema表示mycat逻辑库
- <schema name="proc_t" checkSQLschema="false" sqlMaxLimit="100" dataNode="node_proc_t"></schema>
- <dataNode name="node_cqshzl" dataHost="host_cqshzl" database="cqshzl" />
- -- database 指向真实的数据库
- <dataNode name="node_proc_t" dataHost="host_cqshzl" database="proc_t" />
- <dataHost name="host_cqshzl" maxCon="4000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
- <heartbeat>select user()</heartbeat>
- <writeHost host="hostM1" url="172.16.130.8:3306" user="jczz" password="12366">
- <readHost host="hostS1" url="172.16.9.233:3306" user="jczz" password="12366"></readHost>
- <readHost host="hostS2" url="172.16.10.176:3306" user="jczz" password="12366"></readHost>
- <readHost host="hostS3" url="172.16.130.11:3306" user="jczz" password="12366"></readHost>
- </writeHost>
- </dataHost>
- </mycat:schema>
复制代码 schema区域设置文件说明:
设置参数设置方法解释说明checkSQLschemacheckSQLschema=true体现查抄是否使用数据库.表的方式调取数据信息checkSQLschema=false体现忽略查抄使用数据库.表的方式调取数据信息(默认已经进入到指定库中了)sqlMaxLimit数值信息体现实现分片功能的行数限制(也可以理解为是分页功能)dataNode字符信息体现逻辑数据库必要连接访问的后端节点信息 dataNode区域设置文件说明:
设置参数设置方法解释说明name字符信息体现自定义的后端节点名称(与schema中的dataNode设置要相同)dataHost字符信息体现自定义的后端主机组或实例组名称database字符信息体现指定必要访问后端的真实数据库信息 dataHost区域设置文件说明:
设置参数设置方法解释说明name字符信息体现自定义的后端主机组或实例组名称(与dataNode中的dataHost设置要相同)maxCon数值信息体现服务承载的最大并发连接数(单节点 写-500~100 读-1000~10000)minCon数值信息体现服务预先预备的连接池数目,当服务启动之后,在后端节点上主动开启的连接线程 当开释连接资源的最低值,预先预备好连接资源可以减少CPU盘算压力 在数据库主节点上,可以使用show processlist命令查询到,已经预备好的sleep连接信息(通常20~50)balance指定数值体现指定读操纵的负载均衡类型,目前的应用取值有三种: 当数值为0,不开启读写分离机制,所有读操纵都发送到当前可用的writeHost上; 当数值为1,全部的readHost与standby writeHost到场select语句的负载均衡 简述:当双主双从模式(M1-S1,M2-S2,M1与M2互为主备),M2 S1 S2都到场select语句的负载 当数值为2,所有读操纵都随机的在writeHost、readHost上分发writeType布尔信息体现指定写操纵的负载均衡类型,目前的应用取值有两种: 当数值为0时,所有写操纵发送到设置的第一个writeHost,第一个挂了切到还生存的第二个writeHost 重新启动后已切换后的为主,切换信息记录在设置文件中(dnindex.properties) 当数值为1时,所有写操纵都随机的发送到设置writeHost节点上(不推荐使用)switchType数值信息体现主节点故障切换的方式设定 当数值为-1时,体现不主动切换; 当数值为1时,体现默认值设置,会实现主动切换; 当数值为2时,基于mysql主从同步的状态决定是否切换,心跳语句为show slave status,进行datahost切换tempReadHostAvailable布尔信息当数值设置为1时,体现1主1从时(1个writehost,1个readhost时) 可以开启此参数,体现写节点故障时,对应读节点依然可以正常工作; 当数值设置为0时,假如2主2从时(2个writehost,2个readhost时) 可以关闭此参数,体现写节点故障时,对应读节点随之停止正常工作; 3.server.xml设置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mycat:server SYSTEM "server.dtd">
- <mycat:server xmlns:mycat="http://io.mycat/">
- <system>
- <property name="useHandshakeV10">1</property>
- <property name="useOffHeapForMerge">0</property>
- </system>
- <!-- 指定mycat要连接的用户名和密码,以及需要展示的数据库,展示的数据库需要与schema配置文件中schema对齐 -->
- <user name="jczz" defaultAccount="true">
- <property name="password">12366</property>
- <!--<property name="schemas">TESTDB</property>-->
- <property name="schemas">cqshzl,proc_t</property>
- <property name="defaultSchema">cqshzl</property>
- </user>
- </mycat:server>
复制代码 3.mycat实现读写分离
1.设置文件修改
[root@db01 conf]# vim schema.xml
- <?xml version="1.0"?>
- <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
- <mycat:schema xmlns:mycat="http://io.mycat/">
- <schema name="cqshzl" checkSQLschema="false" sqlMaxLimit="100" dataNode="node_cqshzl"></schema>
- -- schema表示mycat逻辑库
- <schema name="proc_t" checkSQLschema="false" sqlMaxLimit="100" dataNode="node_proc_t"></schema>
- <dataNode name="node_cqshzl" dataHost="host_cqshzl" database="cqshzl" />
- -- database 指向真实的数据库
- <dataNode name="node_proc_t" dataHost="host_cqshzl" database="proc_t" />
- <dataHost name="host_cqshzl" maxCon="4000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
- <heartbeat>select user()</heartbeat>
- <writeHost host="hostM1" url="172.16.130.8:3306" user="jczz" password="12366">
- <readHost host="hostS1" url="172.16.9.233:3306" user="jczz" password="12366"></readHost>
- <readHost host="hostS2" url="172.16.10.176:3306" user="jczz" password="12366"></readHost>
- <readHost host="hostS3" url="172.16.130.11:3306" user="jczz" password="12366"></readHost>
- </writeHost>
- </dataHost>
- </mycat:schema>
复制代码
2. 在db01-3307主节点进行操纵
[root@db01 ~]# mysql -S /data/3307/mysql.sock -e "source /root/world.sql"
# 重新加载修改后设置文件或重启mycat
[root@master conf]# mysql -uroot -p123456 -h 10.0.0.51 -P9066
mysql> reload @@config_all;
[root@db01 ~]# mycat restart
3. 读写分离测试操纵
[root@db01~]# mysql -uroot -p123456 -h 10.0.0.51 -P8066
mysql> select @@server_id;
+-------------+
| @@server_id |
+-------------+
| 9 |
+-------------+
1 row in set (0.05 sec)
-- 测试读效果
mysql> begin;select @@server_id;commit;
+-------------+
| @@server_id |
+-------------+
| 7 |
+-------------+
1 row in set (0.00 sec)
-- 测试写效果
三、mycat运行维护
[root@db01 ~]# mysql -uroot -p123456 -h 10.0.0.51 -P9066
mysql> show @@help;
-- 获取查看资助信息
mysql> show @@server;
-- 查看mycat服务状态环境
mysql> show @@datanode;
-- 查看分片信息环境
mysql> show @@datasource;
-- 查看数据源信息
mysql> reload @@config;
-- 重新加载设置信息-schema.xml
mysql> reload @@config_all;
-- 重新加载设置信息-所有设置重新加载
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |