探索BI系统搭建的必要性与AI技术的应用潜力
561
2022-05-29
Mysql+Mycat实现数据库主从同步与读写分离
文章转载自:
http://mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247485333&idx=1&sn=71a60b1deb210100623b6fe120ab867b&chksm=e91b6289de6ceb9fa70aa0ba50b15420e0b4f6e93aed956882801150d81b98d73ca9234f1268&mpshare=1&scene=23&srcid=03276K9Tg3PtO8CaicvoowxX#rd
此文章源于
浅谈MySQL集群高可用架构
对文章中的架构扩展介绍,之前写过一篇关于MHA的文章
MySQL集群高可用架构之MHA
Mycat介绍
官网: http://mycat.io/
电子书: http://mycat.io/document/Mycat_V1.6.0.pdf
书: http://blog.csdn.net/wind520/article/details/53213691
MyCAT采用Java开发,实现MySQL公开的二进制协议,将自己伪装成MySQL Server;应用只需连接MyCAT 执行SQL,MyCAT按照配置的策略,分发SQL至相应的MySQL节点。
什么是MYCAT
一个彻底开源的,面向企业应用开发的大数据库集群
支持事务、ACID、可以替代MySQL的加强版数据库
一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
一个新颖的数据库中间件产品
Mycat特点介绍
支持SQL92标准
支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
基于心跳的自动故障切换,读写分离,MySQL主从,以及galera cluster集群。
支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
基于Nio实现,有效管理线程,解决高并发问题。
支持数据的多片自动路由与聚合,sum,count,max等常用的聚合函数,跨库分页。
支持全局序列号,解决分布式下的主键生成问题。
分片规则丰富,插件化开发,易于扩展。
强大的web,命令行监控。
支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。
MySQL主从同步
这个配置这里就不再赘述了,可参考前面的文章
Linux系统MySQL数据库主从同步实战过程
安装Mycat服务
生产环境最好单独使用服务器进行安装,测试环境安装在主库上
需要安装JAVA环境
[root@mysql-m ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
安装Mycat服务
[root@mysql-m local]# wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
[root@mysql-m local]# tar zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
[root@mysql-m local]# cd mycat/
[root@mysql-m mycat]# ll
total 24
drwxr-xr-x 2 root root 4096 Sep 23 19:13 bin
drwxrwxrwx 2 root root 4096 Mar 1 2016 catlet
drwxrwxrwx 4 root root 4096 Sep 23 19:13 conf
drwxr-xr-x 2 root root 4096 Sep 23 19:13 lib
drwxrwxrwx 2 root root 4096 Oct 28 2016 logs
-rwxrwxrwx 1 root root 217 Oct 28 2016 version.txt
[root@mysql-m mycat]# cat >>/etc/profile< > export MYCAT_HOME=/usr/local/mycat > export PATH=$PATH:$MYCAT_HOME/bin > EOF [root@mysql-m mycat]# source /etc/profile 配置Mycat服务 #以下四项取消注释,修改如下 配置schema.xml文件 主从服务器配置读写的用户user并以相应的权限 启动服务 登录管理管理端口,产看是否有默认的逻辑数据库 查看数据读写的入口 从上面可以看出数写入与读取的入口在哪个库上 测试Mycat读写分离功能 接下来测试通过mycat来进行对主从数据库的读写操作 上面的数据是从逻辑数据库插入与查询的,接下来分别从主从库查看数据是否写入成功 再次查看数据源的入口情况 Mycat性能监控 MYCAT监控 支持对Mycat、Mysql性能监控 支持对Mycat的JVM内存提供监控服务 支持对线程的监控 支持对操作系统的CPU、内存、磁盘、网络的监控 下载WEB管理端软件 wget https://github.com/MyCATApache/Mycat-download/blob/master/mycat-web-1.0/Mycat-web-1.0-SNAPSHOT-20160617163048-linux.tar.gz 需要安装zookeeper [root@mysql-m local]# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz [root@mysql-m local]# tar zxf zookeeper-3.4.6.tar.gz [root@mysql-m local]# ln -s zookeeper-3.4.6 zookeeper [root@mysql-m conf]# cp zoo_sample.cfg zoo.cfg [root@mysql-m bin]# ./zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@mysql-m ~]# lsof -i :2181 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 3639 root 25u IPv6 19337 0t0 TCP *:eforward (LISTEN) 安装WEB管理端 [root@mysql-m bin]# cd /usr/local/ [root@mysql-m local]# tar zxf Mycat-web-1.0-SNAPSHOT-20160617163048-linux.tar.gz [root@mysql-m local]# cd mycat-web/mycat-web/WEB-INF/classes/ [root@mysql-m classes]# ll total 28 drwxr-xr-x 3 root root 4096 Jun 17 2016 com -rw-r--r-- 1 root root 367 Jun 17 2016 jdbc.properties -rw-r--r-- 1 root root 4068 Jun 17 2016 log4j2.xml drwxr-xr-x 3 root root 4096 Jun 17 2016 mybatis -rw-r--r-- 1 root root 411 Jun 17 2016 mycat.properties drwxr-xr-x 3 root root 4096 Jun 17 2016 org drwxr-xr-x 2 root root 4096 Sep 26 00:21 spring [root@mysql-m classes]# vim mycat.properties # #Mon Jan 16 15:37:36 CST 2012 show.period=3000000 zookeeper=10.0.0.11:2181 [root@mysql-m mycat-web]# /usr/local/mycat-web/start.sh & [1] 3684 [root@mysql-m mycat-web]# nohup: ignoring input and appending output to `nohup.out' [root@mysql-m mycat-web]# lsof -i :8082 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 3685 root 122u IPv6 20997 0t0 TCP *:us-cli (LISTEN) Mycat特点介绍 支持SQL92标准 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。 基于心跳的自动故障切换,读写分离,MySQL主从,以及galera cluster集群。 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster 基于Nio实现,有效管理线程,解决高并发问题。 支持数据的多片自动路由与聚合,sum,count,max等常用的聚合函数,跨库分页。 支持全局序列号,解决分布式下的主键生成问题。 分片规则丰富,插件化开发,易于扩展。 强大的web,命令行监控。 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。 MySQL主从同步 安装Mycat服务 生产环境最好单独使用服务器进行安装,测试环境安装在主库上 需要安装JAVA环境 [root@mysql-m ~]# java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) 安装Mycat服务 生产环境最好单独使用服务器进行安装,测试环境安装在主库上 需要安装JAVA环境 [root@mysql-m ~]# java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) 配置Mycat服务 Mycat性能监控 MYCAT监控 支持对Mycat、Mysql性能监控 支持对Mycat的JVM内存提供监控服务 支持对线程的监控 支持对操作系统的CPU、内存、磁盘、网络的监控 下载WEB管理端软件 wget https://github.com/MyCATApache/Mycat-download/blob/master/mycat-web-1.0/Mycat-web-1.0-SNAPSHOT-20160617163048-linux.tar.gz 需要安装zookeeper [root@mysql-m local]# wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz [root@mysql-m local]# tar zxf zookeeper-3.4.6.tar.gz [root@mysql-m local]# ln -s zookeeper-3.4.6 zookeeper [root@mysql-m conf]# cp zoo_sample.cfg zoo.cfg [root@mysql-m bin]# ./zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@mysql-m ~]# lsof -i :2181 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 3639 root 25u IPv6 19337 0t0 TCP *:eforward (LISTEN) 安装WEB管理端 [root@mysql-m bin]# cd /usr/local/ [root@mysql-m local]# tar zxf Mycat-web-1.0-SNAPSHOT-20160617163048-linux.tar.gz [root@mysql-m local]# cd mycat-web/mycat-web/WEB-INF/classes/ [root@mysql-m classes]# ll total 28 drwxr-xr-x 3 root root 4096 Jun 17 2016 com -rw-r--r-- 1 root root 367 Jun 17 2016 jdbc.properties -rw-r--r-- 1 root root 4068 Jun 17 2016 log4j2.xml drwxr-xr-x 3 root root 4096 Jun 17 2016 mybatis -rw-r--r-- 1 root root 411 Jun 17 2016 mycat.properties drwxr-xr-x 3 root root 4096 Jun 17 2016 org drwxr-xr-x 2 root root 4096 Sep 26 00:21 spring [root@mysql-m classes]# vim mycat.properties # #Mon Jan 16 15:37:36 CST 2012 show.period=3000000 zookeeper=10.0.0.11:2181 [root@mysql-m mycat-web]# /usr/local/mycat-web/start.sh & [1] 3684 [root@mysql-m mycat-web]# nohup: ignoring input and appending output to `nohup.out' [root@mysql-m mycat-web]# lsof -i :8082 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 3685 root 122u IPv6 20997 0t0 TCP *:us-cli (LISTEN) MySQL 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。