大數據“復活”記
694
2025-04-01
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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。