數據庫水平切分(Mycat)

下載mycat,解壓後操做前端

http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

啓動mycat 執行bin目錄下指令java

./bin/mycat start

 查看有哪些命令能夠執行mysql

 ../bin/mycat --help
Usage: ../bin/mycat { console | start | stop | restart | status | dump }

鏈接mycatlinux

mysql -uroot -123456 -h192.168.225.129 -P8066

查看docker ipsql

docker inspect master1 |grep IPAddress

Mysql命令 查看數據庫docker

mysql> show databases;

Mysql命令查看數據庫庫表數據庫

mysql> use TESTDB;

mysql> show tables;

Mycat的端口緩存

8066 相似於mysql 3306端口(客戶端端口)

9066 Mycat 管理端口

 

Schema.xml文件

是Mycat最重要的配置文件之一。主要管理Mycat邏輯庫、邏輯表、表、分片規則、Datasource。負載均衡

 

Schema標籤 

指定Mycat的邏輯庫(mycat的Schema,能夠指定多個schema)

checkSQLschema分佈式

 False 過濾schema定義。
 select * from testdb.company => select * from company;
 True  不過濾schema定義。有可能報錯。

sqlMaxLimit

Limit 自動加入limit,會影響最後返回條數。例如:select * from company。

 

table標籤   

制定Mycat中的邏輯表。最後要作數據分片的表。

mycat中的表,能夠和實體有具體映射關係,也能夠沒有具體映射關係(若是沒有映射關係會報錯)。

dataNode

把相應的表存到對應的DB中。

rule

分片規則。對應rule.xml中的規則。

ruleRequired 

 指定該屬性的表是否須要分片規則。
 True 必須制定。若是沒有制定,就會報錯。

primaryKey 

若是使用非主鍵進行分片,那麼Mycat會緩存主鍵和具體dataNode的信息,若是下次再使用非主鍵進行查詢的時候,就不用廣播全部dn。

autoIncrement

  Mycat根據last_insert_id()返回結果。這個須要mysql主鍵設置配合。

type

邏輯表的類型。普通表和全局表。

needAddLimit

是否自動在每一條SQL語句後面加上limit限制。

 

dataHost標籤   

主要定義和Mysql集羣有關的信息,數據實例、讀寫分離配置和心跳檢測語句。

balance 負載均衡配置

  0 表明不開啓讀寫分離,全部的讀操做都發送到writeHost上。

  1 writeHost和readHost都要參與select語句的負載均衡。

     雙主雙從模式 M1->S1,  M2->S2, M1和M2互爲主備。M2/S1/S2都要參與select語句的負載均衡。

  2 全部讀操做都隨機分配給writeHost/readHost

  3 全部的讀操做隨機分發到writeHost下面的readHost上執行。

writeType 

 0 全部的寫操做都分發到第一個writeHost。若是第二個掛了,分發到第二個。

 1 全部的寫操做都要隨機分發到全部配置的writeHost上。1.5之後不推薦。

dbType

支持多種db類型。

switchType

  -1 表明不自動切換

  1 默認值,自動切換。

  2 基於Mysql主從同步的狀態決定是否切換

     show slave status;

  3 基於MySQL Galera Cluster切換機制。

      show status like ‘wsrep%’;

 

Server.xml文件

主要用於管理Mycat的用戶名,權限,黑白名單等等設置。這個文件主要和Mycat Server運行環境有關。

System標籤

屬性

說明

備註

useSqlStat

開啓實時統計

1爲開啓,0爲關閉

useGlobleTableCheck

全局表一致性檢測

1爲開啓,0爲關閉

sequnceHandlerType

Mycat全局ID類型

0本地文件方式
1數據庫方式
2時間戳序列方式
3分佈式ZK ID生成器
4 ZK遞增ID生成

useCompression

mysql壓縮協議

1爲開啓,0爲不開啓

fakeMySQLVersion

假裝的MySQL版本號

 

processorBufferChunk

每次分配Socket Direct Buffer大小

默認4096字節

processors

系統可用線程數

默認Runtime.getRuntime().availableProcessors()返回值

processorExecutor

NIOProcessor共享businessExecutor線程池大小

 

processorBufferPoolType

每次分配Socket Direct Buffer大小

默認是4096個字節

maxStringLiteralLength

sql解析時最大文本長度

默認是65535(即64K)

backSocketNoDelay

TCP鏈接相關屬性

默認值1

frontSocketNoDelay

TCP鏈接相關屬性

默認值1

serverPort

指定服務端口

默認8066

managerPort

制定管理端口

默認9066

idleTimeout

鏈接空閒時間

默認30分鐘,單位毫秒

bindIp

Mycat服務監聽的IP地址

 

frontWriteQueueSize

前端鏈接寫隊列長度

爲了讓用戶知道是否隊列過長(SQL結果集返回太多)。當超過指定閥值後,會產生一個告警日誌

handleDistributedTransactions

分佈式事務開關

0不過濾分佈式事務
1過濾分佈式事務
2不過濾分佈式事務但記錄分佈式事務日誌

useOffHeapForMerge

是否讓Mycat開啓非堆內存

1 開啓,0關閉

memoryPageSize

內存分頁大小

 

useStreamOutput

是否使用流輸出

 

systemReserveMemorySize

系統保留內存大小

 

useZKSwitch

是否採用zookeeper協調切換

true/false

Privileges標籤

  控制DML:insert update select delete

  單獨給select權限:0010

  單獨給insert權限:1000

Firewall標籤

  定義訪問控制策略:如白名單/黑名單

User標籤

  定義可訪問mycat的用戶名稱/密碼/是否只讀

 

rule.xml文件

定義分片規則策略文件。

tableRule標籤

  定義table分片策略

rule標籤

  策略定義標籤

columns

  對應的分片字段

algorithm標籤

  tableRule分片策略對應的function名稱

function標籤

  定義分片函數

相關文章
相關標籤/搜索