成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

MyCat簡單使用與配置

CoderStudy / 2120人閱讀

基本配置

1 . 在mycat/conf目錄下,MyCat核心配置文件:schema.xml




        
        
        
        
        
        
        
        
        
        
        
            
            select user()
            
            
        

2 . dataHost標簽上屬性釋義:

balance:負載均衡類型

0:不開啟讀寫分離機制,所有讀操作都發(fā)送到當前可用的writeHost上

1:全部的readHost與stand by writeHost參與select語句的負載均衡,

2:所有讀操作都隨機在writeHost、readHost上分發(fā)

3:所有讀請求隨機分發(fā)到writeHost對應的readHost執(zhí)行,writeHost不負擔讀壓力

writeType:負載均衡類型

0:所有寫操作發(fā)送到配置的第一個writeHost,當?shù)谝粋€writeHost宕機時,切換到第二個writeHost,重新啟動后以切換后的為準,切換記錄在配置文件:dnindex.properties

1:所有寫操作都隨發(fā)送到配置的writeHost

2:尚未實現(xiàn)

switchType:切換方式

-1:不自動切換

1:自動切換(默認)

2:基于MySql主從同步的狀態(tài)來決定是否切換

讀寫分離
一. MycSQL主從配置

1 . 前提:多臺MySQL服務器主機的時間是同步的,否則無法實現(xiàn)主從配置

2 . MASTER修改MySQL配置文件vim /usr/local/mysql/my.cnf

log-bin=mysql-bin-1 : 表示配置同步的bin的文件名稱,不同的主從關系組,名稱不同

server_id=196 : 表示MySQL服務的編號,這個編號一般取IP的最后一位,也可自定義

3 . MASTER啟動MySQL服務nohup mysqld_safe --user=root > /dev/null 2>&1 &

4 . MASTER 登陸MySQL數(shù)據(jù)庫:mysql -uroot -p123456,查看master狀態(tài)show master stats;

其中
File(tid_set) : 表示主機名稱(mysql-bin-1.000001)

Position : 表示同步的節(jié)點位置

5 . MASTER建立同步用戶:sync_user

GRANT REPLICCATION SLAVE,REPLICATION CLIENT ON *.* TO "sync_user"@"192.168.1.%" IDENTIFIED BY "123456";
flush privileges;

6 . SLAVE修改MySQL配置文件vim /usr/local/mysql/my.cnf

log-bin=mysql-bin-1 : 表示配置同步的bin的文件名稱,不同的主從關系組,名稱不同

server_id=168 : 表示MySQL服務的編號,這個編號一般取IP的最后一位,也可自定義

7 . MASTER/SLAVE : 若服務已經(jīng)啟動,需要刪除自動配置的編號文件,否則無法同步rm /usr/local/mysql/data/auto.cnf

8 . SLAVE 啟動MySQL服務nohup mysqld_safe --user=root > /dev/null 2>&1 &

9 . SLAVE 登陸MySQL數(shù)據(jù)庫:mysql -uroot -p123456

10 . SLAVE進行主從關系配置

若此時已經(jīng)啟動了從主機,必須先停止:stop slave;

停止之后還想重新啟動,必須清楚所有的日志信息: flush logs;

定義master主機:

change master to master_host="192.168.1.128",master_user="sync_user",master_password="123456",master_log_file="mysql-bin-1.000001",master_log_pos=435 ;

master_host 表示mast的主機ip
master_user 表示可同步的賬號
master_password 表示同步賬號的密碼
master_log_file 表示MASTERshow master stats;查看時的File(tid_set)
master_log_pos 表示MASTERshow master stats;查看時的Position

啟動slave:start slave;

查詢當前從主機狀態(tài):show slave statusG;

若出現(xiàn)以下代碼表示已經(jīng)啟動完成

Slave_IO_Running:YES
Slave_SQL_Running:Yes
二. MyCat讀寫分離配置

1 . 修改MyCat的schema.xml文件vim /usr/local/mycat/conf/schema.xml




        
        
        
        
        
        
        
        
        
        
        
            
            select user()
            
            
                
            
        

2 . 對于讀寫分離的配置中:設置readHost讀?。?b>balance=3,設置writeHost與ReadHost共同分擔讀?。?b>balance=2

3 . 啟動MyCat服務:/usr/local/mycat/bin/mycat console

4 . 此時就完成了MyCat讀寫分離的相關配置

垂直分庫 垂直分庫實際上就是進行多表分庫管理

1 . 分別在多臺MySQL主機上進行多個表的創(chuàng)建

2 . 修改MyCat的配置文件vim /usr/local/mycat/conf/schema.xml




        
        
        
        
        
                select user()
                
        
        
                select user()
                
        

3 . 修改MyCat用戶配置文件,將多個數(shù)據(jù)庫配置到server.xmlvim /usr/local/mycat/conf/server.xml

TESTDB1,TESTDB2

4 . 啟動MyCat服務/usr/local/mycat/bin/mycat console

5 . 此時即完成了垂直分庫,數(shù)據(jù)操作時需要指定具體操作的是哪一個數(shù)據(jù)庫

全局表

1 . 全局表的作用:可充當數(shù)據(jù)字典表,這張數(shù)據(jù)表會在所有的數(shù)據(jù)庫中存在,但對外而言,只是一個邏輯數(shù)據(jù)庫存在的數(shù)據(jù)表,當對該表進行變更操作時,所有數(shù)據(jù)庫的該表都會發(fā)生相應的變化

2 . 在多臺MySQL主機上分別建立各自的數(shù)據(jù)字典表

3 . 修改MyCat的核心配置文件vim /usr/local/mycat/conf/schema.xml



        
                
        
        
        
        
                select user()
                
        
        
                select user()
                
        

4 . 修改MyCat的用戶配置文件vim /usr/local/mycat/conf/server.xml,將schema.xml配置的所有邏輯數(shù)據(jù)庫,配置到該配置文件中

TESTDB1,TESTDB2,TESTDB

5 . 啟動MyCat服務/usr/local/mycat/bin/mycat console

6 . 此時就完成了全局表的配置,此時只要對TESTDB該邏輯數(shù)據(jù)庫進行dict表的更新或插入操作,所有的其他數(shù)據(jù)庫(TESTDB1,TESTDB2)上的dict表都會得到更新

水平分庫

一 .常用水平分庫

水平分庫指的是將一個數(shù)據(jù)量龐大的數(shù)據(jù)表分別保存到不同的數(shù)據(jù)庫里,即:現(xiàn)在有多個數(shù)據(jù)庫,這個庫保存同樣結(jié)構(gòu)的數(shù)據(jù)表,這些數(shù)據(jù)根據(jù)MyCat的算法,分別保存到符合自身要求的數(shù)據(jù)庫的數(shù)據(jù)表中,MyCat的分片規(guī)則配置文件在:/usr/local/mycat/conf/rule.xml中,目前常用的分片規(guī)則有:

求模分庫:mod-long

范圍分庫:auto-sharding-long

Hash分庫:hash-int

月分庫:sharding-by-month

ER模型分庫:childTable

自定義分庫:CustomRule(該方式需要自己實現(xiàn)分庫算法)

二 . 分片規(guī)則:編輯分片規(guī)則文件vim /usr/local/mycat/conf/rule.xml

A . 求模分庫

rule.xml的配置


        
                id
                mod-long
        


        3

schema.xml配置



        
                
select user() select user() select user()

server.xml配置

TESTDB

啟動MyCat服務/usr/local/mycat/bin/mycat console

使用客戶端端口進行連接mysql -uroot -p123456 -h192.168.1.1 -P8066 -DTESTDB

此時,就實現(xiàn)了MyCat的求模分片,每對3進行取余,然后自動進行分片數(shù)據(jù)保存處理

序列的使用:

序列的配置,在usr/local/mycat/conf/sequence_conf.properties文件中

還需要在server.xml文件中配置

0

在SQL中使用next value for MYCATSEQ_GLOBAL表示序列增長

INSERT INTO data (id,title) VALUES (next value for MYCATSEQ_GLOBAL,@@hostname);

B . 范圍分庫

范圍分庫指的是,根據(jù)id的范圍進行不同數(shù)據(jù)庫的保存,或者根據(jù)數(shù)據(jù)大小的不同來進行保存

rule.xml的配置


        
                id
                my-auto-sharding-long
        


        partition-long.txt
 - 此時需要定義一個范圍分庫的規(guī)則問津`partition-long.txt`,并存放在`conf`目錄中`vim /usr/local/mycat/conf/partition-long.txt`
 - partition-long.txt

根據(jù)數(shù)據(jù)編號劃分
0-10000=0
10001-20000=1
20001-30000=2

C . Hash分庫

Hash分庫指的是根據(jù)某個字段的的固定內(nèi)容進行分片,例如:根據(jù)省份分片,根據(jù)城市分片,一般進行Hash分片處理的,都要有一些固定的值進行匹配

rule.xml配置


        
                title
                my-hash-int
        


                < property name="type">1
        partition-hash-int.txt
- `schema.xml`配置

D . 按月分庫

每個月存入每個月多帶帶的數(shù)據(jù)庫中

rule.xml配置


        
                saledate
                my-partbymonth
        


                < property name="dateFormat">yyyy-MM-dd
        2017-01-01
- `schema.xml`配置


        
                
                
select user() select user() select user() select user() select user() select user() select user() select user() select user() select user() select user() select user()

E . ER模型分庫

根據(jù)數(shù)據(jù)庫的ER模型進行分庫,即進行多表關聯(lián)分庫管理

schema.xml配置



        
                
                
select user() select user() select user()

F . 自定義分庫規(guī)則

分布式數(shù)據(jù)庫系統(tǒng)中,分片規(guī)則用于定義數(shù)據(jù)與分片的路由關系,也就是 insert,delete,update,select 的基本 sql 操作中,如何將 sql 路由到對應的分片執(zhí)行。
Mycat 的總體路由圖為:



- 官方案例分析:






文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67405.html

相關文章

  • springboot+mycat 分表分庫

    摘要:而在分布式系統(tǒng)中,分表分庫也是常用的一種解決此類瓶頸的手段。支持數(shù)據(jù)的多片自動路由與聚合,支持等常用的聚合函數(shù)支持跨庫分頁。支持通過全局表,關系的分片策略,實現(xiàn)了高效的多表查詢。支持多租戶方案。 前言 對于業(yè)務量越來越大的時候,單表數(shù)據(jù)超過幾千萬,甚至上億時,一張表里面查詢真的會很費時。而在分布式系統(tǒng)中,分表分庫也是常用的一種解決此類瓶頸的手段。今天就選用springboot+myca...

    lakeside 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<