1. 程式人生 > >Mycat的簡介及安裝

Mycat的簡介及安裝

Mycat簡介:

1.1Mycat含義

簡單的說,MyCAT就是:
    一個徹底開源的,面向企業應用開發的“大資料庫叢集”
    支援事務、ACID、可以替代Mysql的加強版資料庫
    一個可以視為“Mysql”叢集的企業級資料庫,用來替代昂貴的Oracle叢集
    一個融合記憶體快取技術、Nosql技術、HDFS大資料的新型SQL Server
    結合傳統資料庫和新型分散式資料倉庫的新一代企業級資料庫產品
    一個新穎的資料庫中介軟體產品
MyCAT的目標是:低成本的將現有的單機資料庫和應用平滑遷移到“雲”端,解決資料儲存和業務規模迅速增長情況下的資料瓶頸問題。

1.2 Mycat的關鍵特性

支援 SQL 92標準
支援Mysql叢集,可以作為Proxy使用
支援JDBC連線ORACLE、DB2、SQL Server,將其模擬為MySQL  Server使用
支援galera for mysql叢集,percona-cluster或者mariadb cluster,提供高可用性資料分片叢集
自動故障切換,高可用性
支援讀寫分離,支援Mysql雙主多從,以及一主多從的模式
支援全域性表,資料自動分片到多個節點,用於高效表關聯查詢
支援獨有的基於E-R 關係的分片策略,實現了高效的表關聯查詢
多平臺支援,部署和實施簡單

1.3Mycat架構

如圖所示:MyCAT使用Mysql的通訊協議模擬成了一個Mysql伺服器,並建立了完整的Schema(資料庫)、Table (資料表)、User(使用者)的邏輯模型,
並將這套邏輯模型對映到後端的儲存節點DataNode(MySQL Instance)上的真實物理庫中,這樣一來,
所有能使用Mysql的客戶端以及程式語言都能將MyCAT當成是Mysql Server來使用,不必開發新的客戶端協議。

1.4 Mycat 解決的 問題

效能問題
資料庫連線過多
E-R分片難處理
可用性問題
成本和伸縮性問題

1.5Mycat 對多資料的支援

1.6 分片策略

MyCAT支援水平分片與垂直分片:
    水平分片:一個表格的資料分割到多個節點上,按照行分隔。
    垂直分片:一個數據庫中多個表格A,B,C;A儲存到節點1上,B儲存到節點2上,C儲存到節點3上。
這是重點——————————————————————————————

mycat通過定義表的分片規則來實現分片,每一個表格可以捆綁一個分片規則,每個分片規則
指定一個分片欄位並繫結一個函式,來實現動態分片演算法。
schema:邏輯庫,與mysql中的Database(資料庫)對應,一個邏輯庫中定義了所包含的table。
Table表:就是物理資料庫中儲存的某一張表,與傳統資料庫不同,這裡的表格需要宣告所儲存的邏輯資料節點。
DataNode:在此可以指定表的分片規則
DataNode:Mycat的邏輯資料節點,是存放table的具體物理節點,也稱之為分片節點,通過DataSource來關聯到後端某個具體資料庫上。
DataSource:定義某個物理庫的訪問地址,用於捆綁到Datanode 上

Mycat安裝

 2.1 Mycat 下載

Mycat下載可以到官網下載也可到GitHub下載

下載路徑:

官方網站:http://www.mycat.org.cn/

github地址https://github.com/MyCATApache

2.2Mycat安裝

Mycat安裝,需要安裝jdk,也要安裝mysql

2.2.1上傳並解壓

把MyCat的壓縮包上傳到linux伺服器,並且解壓

[[email protected] local]# tar -xvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
解壓到了/usr/loca

2.2.2 啟動

/usr/local/mycat/bin/mycat start        啟動
/usr/local/mycat/bin/mycat stop        停止
/usr/local/mycat/bin/mycat restart    重啟

2.2.3連線

可以使用MySQL自帶的客戶端進行連線,也可以使用視覺化軟體進行連線

mycat的預設的賬號和密碼都是user

客戶端連線

 mysql -uuser -puser -P8066 -h192.168.82.110   (注意:埠號前的P為大寫的)

注意:可以使用mysql的客戶端直接連線mycat服務。預設服務埠為8066
別忘了去防火牆那裡開一下的埠號
firewall-cmd --permanent --add-port=8066/tcp
firewall-cmd --reload 連結不上,可以執行:vi
/etc/my.cfg 在mysqld節點下新增: skip-name-resolve

2.2.4成功的介面