日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mycat读写分离部署步骤

發布時間:2023/11/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mycat读写分离部署步骤 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.下載mycat:

https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.5-RELEASE/Mycat-server-1.5-RELEASE-20160301083012-linux.tar.gz

2.安裝mycat:

tar -zxvf?Mycat-server-1.5-GA-20160225120029-linux.tar.gz

mv mycat ?/srv/mycat-1.5

ln -s ?mycat-1.5 mycat

3.配置java環境變量:

which java

在bin/startup_nowrap.sh文件中找到noJavaHome=false行下并增加如下內容:

JAVA_HOME=Java_home的實際路徑

4.配置conf/schema.xml文件:

該文件主要配置讀寫分離數據庫的連接地址信息,具體如下:

root@ebj-rd-02:/srv/mycat/conf#?cat?schema.xml

<?xml?version="1.0"?>

<!DOCTYPE?mycat:schema?SYSTEM?"schema.dtd">

<mycat:schema?xmlns:mycat="http://org.opencloudb/">

????<schema?name="mydb"?checkSQLschema="false"?sqlMaxLimit="100"??dataNode="dn1"/>

????<dataNode?name="dn1"?dataHost="localhost1"?database="test"?/>

????<dataHost?name="localhost1"?maxCon="1000"?minCon="50"?balance="1"

????????writeType="0"?dbType="mysql"?dbDriver="native"?switchType="-1"??>

????????<heartbeat>select?user()</heartbeat>

????????<writeHost?host="host_3320"?url="127.0.0.1:3320"?user="root"???password="password">

????????????<readHost?host="host_3321"?url="127.0.0.1:3321"?user="root"????password="password"/>

????????????<readHost?host="host_3322"?url="127.0.0.1:3322"?user="root"????password="password"/>

????????</writeHost>

????</dataHost>

</mycat:schema>

文件終于參數說明:

這里mydb?就是我們對外聲稱的我們有數據庫的名稱??必須和server.xml中的用戶指定的數據庫名稱一致

添加一個dataNode="dn1"?是指定了我們這個庫只在dn1上.沒有進行分庫

sqlMaxLimit表示sql語句最大返回的結果集的大小;

writeHost和readHost配置的是實際的讀數據庫和寫數據庫的IP地址端口,用戶名及密碼;

balance?屬性負載均衡類型,目前的取值有?4?種:

1.?balance="0",?不開啟讀寫分離機制,所有讀操作都發送到當前可用的?writeHost?上。

2.?balance="1",全部的?readHost?與?stand?by?writeHost?參與?select?語句的負載均衡,

簡單的說,當雙主雙從模式(M1?->S1?,?M2->S2,并且?M1?與?M2?互為主備),正常情況下,?M2,S1,S2?都參與?select?語句的負載均衡。

3.?balance="2",所有讀操作都隨機的在?writeHost、?readhost?上分發。

4.?balance="3",?所有讀請求隨機的分發到?wiriterHost?對應的?readhost?執行,writerHost?不負擔讀壓力,注意?balance=3?只在?1.4?及其以后版本有,?1.3?沒有。


writeType?屬性,目前的取值有?3?種:

1.?writeType="0",?所有寫操作發送到配置的第一個?writeHost,第一個掛了切到還生存的第二個

writeHost,重新啟動后已切換后的為準,切換記錄在配置文件中:dnindex.properties?.

2.?writeType="1",所有寫操作都隨機的發送到配置的?writeHost。

3.?writeType="2",沒實現。


switchType?屬性

-?-1?表示不自動切換

-?1?默認值,自動切換

-?2?基于MySQL?主從同步的狀態決定是否切換

5配置?server.xml?

該文件主要配置的是mycat的用戶名和密碼及mycat的端口號信息配置,mycat的用戶名和密碼和mysql的用戶名密碼是分開的,應用連接mycat就用這個用戶名和密碼。

root@ebj-rd-02:/srv/mycat/conf#?cat?server.xml?

<?xml?version="1.0"?encoding="UTF-8"?>

<!--?-?-?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");?

????-?you?may?not?use?this?file?except?in?compliance?with?the?License.?-?You?

????may?obtain?a?copy?of?the?License?at?-?-?http://www.apache.org/licenses/LICENSE-2.0?

????-?-?Unless?required?by?applicable?law?or?agreed?to?in?writing,?software?-?

????distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,?-?WITHOUT?

????WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.?-?See?the?

????License?for?the?specific?language?governing?permissions?and?-?limitations?

????under?the?License.?-->

<!DOCTYPE?mycat:server?SYSTEM?"server.dtd">

<mycat:server?xmlns:mycat="http://org.opencloudb/">

????<system>

????????<property?name="defaultSqlParser">druidparser</property>

????????<property?name="serverPort">18066</property>?

????????<property?name="managerPort">19066</property>

????????<property?name="charset">utf8</property>

????????<property?name="idleTimeout">30000000</property>

??????<!--??<property?name="useCompression">1</property>-->?<!--1為開啟mysql壓縮協議-->

????<!--?<property?name="processorBufferChunk">40960</property>?-->

????<!--?

????<property?name="processors">1</property>?

????<property?name="processorExecutor">32</property>?

?????-->

????????<!--默認是65535?64K?用于sql解析時最大文本長度?-->

????????<!--<property?name="maxStringLiteralLength">65535</property>-->

????????<!--<property?name="sequnceHandlerType">0</property>-->

????????<!--<property?name="backSocketNoDelay">1</property>-->

????????<!--<property?name="frontSocketNoDelay">1</property>-->

????????<!--<property?name="processorExecutor">16</property>-->

????????<!--?

????????????<property?name="mutiNodeLimitType">1</property>?0:開啟小數量級(默認)?;1:開啟億級數據排序

????????????<property?name="mutiNodePatchSize">100</property>?億級數量排序批量

????????????<property?name="processors">32</property>?<property?name="processorExecutor">32</property>?

????????????<property?name="serverPort">8066</property>?<property?name="managerPort">9066</property>?

????????????<property?name="idleTimeout">300000</property>?<property?name="bindIp">0.0.0.0</property>?

????????????<property?name="frontWriteQueueSize">4096</property>?<property?name="processors">32</property>?-->

????</system>

????<user?name="test">

????????<property?name="password">test_123</property>

????????<property?name="schemas">mydb</property>

????</user>

????<user?name="user">

????????<property?name="password">user_123</property>

????????<property?name="schemas">mydb</property>

????????<property?name="readOnly">true</property>

????</user>

????<!--?

????<quarantine>?

???????<whitehost>

??????????<host?host="127.0.0.1"?user="mycat"/>

??????????<host?host="127.0.0.2"?user="mycat"/>

???????</whitehost>

???????<blacklist?check="false"></blacklist>

????</quarantine>

????-->

</mycat:server>

文件終于參數說明:

serverPort設置mycat的服務端口,默認為8066;

managerPort設置mycat的管理端口,默認為9066;

idleTimeout設置mycat的空閑超時時間;

user設置mycat的訪問相關schema的用戶名及密碼;

6.配置日志文件的路徑及日志級別:

root@ebj-rd-02:/srv/mycat/conf#?cat?log4j.xml?

<?xml?version="1.0"?encoding="UTF-8"?>

<!--

?-?Copyright?1999-2012?Alibaba?Group.

?-??

?-?Licensed?under?the?Apache?License,?Version?2.0?(the?"License");

?-?you?may?not?use?this?file?except?in?compliance?with?the?License.

?-?You?may?obtain?a?copy?of?the?License?at

?-??

?-??????http://www.apache.org/licenses/LICENSE-2.0

?-??

?-?Unless?required?by?applicable?law?or?agreed?to?in?writing,?software

?-?distributed?under?the?License?is?distributed?on?an?"AS?IS"?BASIS,

?-?WITHOUT?WARRANTIES?OR?CONDITIONS?OF?ANY?KIND,?either?express?or?implied.

?-?See?the?License?for?the?specific?language?governing?permissions?and

?-?limitations?under?the?License.

-->

<!DOCTYPE?log4j:configuration?SYSTEM?"log4j.dtd">

<log4j:configuration?xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender?name="ConsoleAppender"?class="org.apache.log4j.ConsoleAppender">

??<layout?class="org.apache.log4j.PatternLayout">

???<param?name="ConversionPattern"?value="%d{MM-dd?HH:mm:ss.SSS}??%5p?[%t]?(%F:%L)?-%m%n"?/>

??</layout>

?</appender>

??<appender?name="FILE"?class="org.apache.log4j.RollingFileAppender">

??????<param?name="file"?value="/data/log/mycat/mycat.log"?/>

????<param?name="Append"?value="false"/>

????<param?name="MaxFileSize"?value="1000KB"/>

????<param?name="MaxBackupIndex"?value="10"/>?

????<param?name="encoding"?value="UTF-8"?/>

????<layout?class="org.apache.log4j.PatternLayout">

??????<param?name="ConversionPattern"?value="%d{MM/dd?HH:mm:ss.SSS}??%5p?[%t]?(%F:%L)?-%m%n"?/>

????</layout>

??</appender>

??<root>

????<level?value="info"?/>

????<appender-ref?ref="FILE"?/>

?????<!--<appender-ref?ref="FILE"?/>-->

??</root>

</log4j:configuration>

文件終于參數說明:

<level?value="debug"?/>表示設置mycat的日志級別為調試模式,默認為info;

<param?name="file"?value="/data/log/mycat/mycat.log"?/>表示設置mycat的日志文件路徑為/data/log/mycat/mycat.log

7.mycat日常管理

root@ebj-rd-02:/srv/mycat#?./bin/mycat?--help

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

登錄mycat讀寫分離服務:

mysql?-utest?-ptest_123?-P18066?-h127.0.0.1

登錄mycat管理端:

mysql?-utest?-ptest_123?-P19066?-h127.0.0.1

在事務中,通過/*balance*/強制讀取主數據庫數據:

MySQL?[mydb]>?begin;

MySQL?[mydb]>?/*balance*/select?*?from?mytest1;

MySQL?[mydb]>?commit;

查看mycat管理端的命令幫助:

MySQL?[(none)]>?show?@@help;

8.部署中的異常處理:

MySQL?[(none)]>?use?test;

Database?changed

MySQL?[test]>?show?tables;

ERROR?1184?(HY000):?Unknown?charsetIndex:192

MySQL?[test]>?select?*?from?mytest;

ERROR?1184?(HY000):?Unknown?charsetIndex:192

MySQL?[test]>?exit

該異常是字符集問題引起的數據庫不能連接成功

在conf/index_to_charset.properties文件中增加與自己mysql服務器匹配的字符集即可:

root@ebj-rd-02:/srv/mycat/conf#?tail?-1?index_to_charset.properties

192=utf8

root@ebj-rd-02:/srv/mycat/conf#?


轉載于:https://blog.51cto.com/webseven/1746870

總結

以上是生活随笔為你收集整理的mycat读写分离部署步骤的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。