1. 程式人生 > >Mycat的使用 - 01.概念, 及安裝

Mycat的使用 - 01.概念, 及安裝

Mycat

識Mycat


1. Mycat是什麽

Mycat是一款數據庫中間件, 其用於分庫分表, 還實現了讀寫分離, 故障切換等功能.


2. Mycat的工作原理

用一個動詞來概括就是"攔截", 它攔截了用戶發送的SQL語句, 首先對其做了一些特定的分析: 如分片分析, 路由分析, 讀寫分離分析, 緩存分析等, 然後將其發往後端真實的數據庫, 並將返回的結果做適當處理, 最終再返回給用戶.



Mycat中的概念


1. 邏輯庫(schema)

邏輯庫是用戶直接訪問的地方, 它是由後端的一個或多個物理庫組成, 而用戶是不知道物理庫的存在的.


2. 邏輯表(table)

其和邏輯庫的概念類似, 後端是由一個或多個物理表組成的. 若是多個物理表, 該表就是分片表了, 由於數據量大, 需要切分到多個數據庫的表中, 每個分片都有一部分數據, 所有分片構成完整的數據. 若是一個物理表, 就是非分片表.


由於分片, 就讓join操作變得復雜, 據此, Mycat中提出了ER表和全局表的方式來優化join. ER表, 是通過E-R關系構成的表分組, 即子表的記錄與所關聯的父表的記錄存放在同一個分片上. 全局表, 是類似於字典表這樣的, 數據量較少, 且變更不頻繁的表, 在每個分片上都有一份完整的數據拷貝.


3. 分片節點(dataNode)

數據切分後, 一個大表被分到不同的分片數據庫上面, 每個表分片所在的數據庫就是分片節點.


4. 節點主機(dataHost)

數據切分後, 每個分片節點不一定都會獨占一臺機器, 同一機器上面可以有多個分片數據庫, 這樣一個或多個分片節點所在的機器就是節點主機.


5. 分片規則(rule)

數據切分後, 一個大表被分成若幹分片表, 就需要一定的規則, 這樣按照某種業務規則把數據分到某個分片的方法就是分片規則.


6. 全局序列號(sequence)

數據切分後, 原有的關系數據庫中的主鍵約束在分布式條件下將無法使用, 因此需要引入外部機制來保證數據的唯一性標識, 該保證數據全局唯一標識的機制就是全局序列號.



Mycat的安裝


1. jdk下載, 及Java環境的設置

http://www.oracle.com/technetwork/java/javase/archive-139210.html


將其解壓到目錄/usr/local下.


# cat /etc/profile.d/java.sh

export JAVA_HOME=/usr/local/jdk1.7.0_80

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar


# source /etc/profile.d/java.sh


# java -version

java version "1.7.0_80"

Java(TM) SE Runtime Environment (build 1.7.0_80-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)



2. Mycat下載, 及安裝

https://github.com/MyCATApache/Mycat-download/blob/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz


將其解壓到目錄/usr/local下.


# cat /etc/profile.d/mycat.sh

export MYCAT_HOME=/usr/local/mycat


# source /etc/profile.d/mycat.sh


# echo $MYCAT_HOME

/usr/local/mycat


創建mycat用戶

# useradd mycat


啟動

# su - mycat


$ cd /usr/local/mycat/


$ bin/mycat restart

Stopping Mycat-server...

Mycat-server was not running.

Starting Mycat-server...


$ tail -f logs/wrapper.log

...

INFO | jvm 1 | 2018/03/15 21:43:25 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org

INFO | jvm 1 | 2018/03/15 21:43:25 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.

INFO | jvm 1 | 2018/03/15 21:43:25 |

INFO | jvm 1 | 2018/03/15 21:43:25 | log4j 2018-03-15 21:43:25 [./conf/log4j.xml] load completed.

INFO | jvm 1 | 2018/03/15 21:44:25 | MyCAT Server startup successfully. see logs in logs/mycat.log


若感興趣可關註訂閱號”數據庫最佳實踐”(DBBestPractice).

技術分享圖片

Mycat的使用 - 01.概念, 及安裝