您好,登錄后才能下訂單哦!
初識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).
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。