Mysql+Mycat實現數據庫主從同步與讀寫分離

下載網站:www.SyncNavigator.CN 
 客服QQ1793040
----------------------------------------------------------前端


關於HKROnline SyncNavigator 註冊機價格的問題java

 

 

HKROnline SyncNavigator 8.4.1 非破解版 註冊機 受權激活教程
 mysql

 

 

 

最近一直在研究數據庫同步的問題,在網上查了不少資料,也請教了不少人,找到了一種經過快照複製的方法。研究了一番後發現以前就是用的這個方法,效果不是很好,果斷放棄。通過了一番尋覓和他人指點,最後從一位熱心網友那裏得知一款很好用的軟件—— SyncNavigator。linux

 

 

好東西就要拿出來跟你們分享,因此今天向你們介紹一下這款軟件,及其一些使用方法。下面先看看它有什麼強大的功能吧!git

 

SyncNavigator的基本功能:github

 

自動同步數據/定時同步數據
不管是實時同步/24小時不間斷同步,仍是根據計劃任務(每小時/每日/每週/等)定時自動同步都能徹底勝任。web

完整支持 Microsoft SQL Server
完整支持 Microsoft SQL Server 2000 2005 2008 數據庫類型。並能在不一樣數據庫版本之間相互同步數據。spring

支持 MySQL 4.1 以上版本
支持 MySQL 4.1 5.0 5.1 5.4 5.5。並能在不一樣數據庫版本之間相互同步數據。sql

無人值守和故障自動恢復
當數據庫故障或網絡故障之後,無需人工干預(或操做)自動恢復同步並確保數據徹底準確,可靠。mongodb

同構數據庫同步/異構數據庫同步
SQL Server to SQL Server, MySQL to MySQL, SQL Server to MySQL 等都能輕鬆實現。

斷點續傳和增量同步
當同步完成(或中斷)後,再次同步時能繼續上一次的位置增量同步,避免每次都須要從頭開始的問題。

此文章源於 淺談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總體架構圖

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mycat特色介紹

 

  • 支持SQL92標準
  • 支持MySQL、Oracle、DB二、SQL Server、PostgreSQL等DB的常見SQL語法
  • 遵照Mysql原生協議,跨語言,跨平臺,跨數據庫的通用中間件代理。
  • 基於心跳的自動故障切換,讀寫分離,MySQL主從,以及galera cluster集羣。
  • 支持Galera for MySQL集羣,Percona Cluster或者MariaDB cluster
  • 基於Nio實現,有效管理線程,解決高併發問題。
  • 支持數據的多片自動路由與聚合,sum,count,max等經常使用的聚合函數,跨庫分頁。
  • 支持全局序列號,解決分佈式下的主鍵生成問題。
  • 分片規則豐富,插件化開發,易於擴展。
  • 強大的web,命令行監控。
  • 支持前端做爲MySQL通用代理,後端JDBC方式支持Oracle、DB二、SQL Server 、 mongodb 、巨杉。
  • 集羣基於ZooKeeper管理,在線升級,擴容,智能優化,大數據處理(2.0開發版)。

MySQL主從同步

 

這個配置這裏就再也不贅述了,可參考前面的文章

Linux系統MySQL數據庫主從同步實戰過程

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

安裝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)

Mysql+Mycat實現數據庫主從同步與讀寫分離

安裝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<<EOF

> export MYCAT_HOME=/usr/local/mycat

> export PATH=$PATH:$MYCAT_HOME/bin

> EOF

[root@mysql-m mycat]# source /etc/profile

配置Mycat服務

 

Mysql+Mycat實現數據庫主從同步與讀寫分離

#如下四項取消註釋,修改以下

<!–默認是65535 64K 用於sql解析時最大文本長度 –>

<property name=」maxStringLiteralLength」>65535</property>

<property name=」sequnceHandlerType」>0</property>

<property name=」backSocketNoDelay」>1</property>

<property name=」frontSocketNoDelay」>1</property>

<property name=」processorExecutor」>1</property>

Mysql+Mycat實現數據庫主從同步與讀寫分離

配置schema.xml文件

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

主從服務器上配置讀寫的用戶user並給以相應的權限

啓動服務

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

登錄管理管理端口,查看是否有默認的邏輯數據庫

Mysql+Mycat實現數據庫主從同步與讀寫分離

查看數據讀寫入口

Mysql+Mycat實現數據庫主從同步與讀寫分離

從上面能夠看出數據寫入與讀取的入口在哪一個庫上

測試Mycat讀寫分離功能

 

接下來測試經過mycat來進行對主從數據庫的讀寫操做

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

上面的數據是從邏輯數據庫插入與查詢的,接下來分別從主從庫查看數據是否寫入成功

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

再次查看數據源的入口狀況

Mysql+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+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

Mysql+Mycat實現數據庫主從同步與讀寫分離

相關文章
相關標籤/搜索