日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

我自己實(shí)際操作安裝MyCat實(shí)現(xiàn)讀寫分離和遇到的一些問題

 印度阿三17 2019-07-07

MyCat版本1.4
Centos6.5
jdk1.7

192.168.10.166 MySQL slave
192.168.10.184 MySQL master
master slave 進(jìn)行主從復(fù)制 ,使用的是test數(shù)據(jù)庫,練習(xí)用的表示t_dept表
create table t_dept(deptno int ,ename varchar(20));

192.168.10.185 MyCat 服務(wù)器 端口號(hào)8066
//這個(gè)是我在家里自己進(jìn)行聯(lián)系操作。如果使用云服務(wù),這些主從復(fù)制 讀寫分離 分表分庫,云服務(wù)器廠家都做好的。
記錄一下server.xml 和schema.xml中的配置
server.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<!--這里
   配置的是對(duì)虛擬出來的數(shù)據(jù)賬號(hào)密碼和權(quán)限
   在實(shí)際運(yùn)用中我們使用這里配置的賬號(hào)和密碼 連接Mycat虛擬出來的數(shù)據(jù)庫.
   
   在實(shí)際項(xiàng)目中就會(huì)出現(xiàn)多數(shù)據(jù)源.
   springboot2.0.1版本之厚新增了RoutinDataSource
   使用這個(gè)類 AOP技術(shù)實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換.
   AOP攔截方法(find /select 開頭的切換到只能讀的數(shù)據(jù)庫)
        (inert/update/delet方法開頭的切換到讀寫數(shù)據(jù))
 -->
	<!--讀寫權(quán)限賬號(hào)-->
    <user name="root">
        <property name="password">123456</property>
        <property name="schemas">mycat_testdb</property>
    </user>
	<!--讀權(quán)限賬號(hào)-->
    <user name="user">
        <property name="password">123456</property>
        <property name="schemas">mycat_testdb</property>
        <property name="readOnly">true</property>
    </user>
</mycat:server>

schema.xml
注意:把我寫的注釋去掉,里面含有非法的utf8字符,反正我是沒找到,去掉之后就不報(bào)錯(cuò)了。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
<!-- 
	name:邏輯數(shù)據(jù)庫的名稱
	dataNode:邏輯數(shù)據(jù)庫對(duì)應(yīng)物理數(shù)據(jù)庫節(jié)點(diǎn)。
			 邏輯庫下的表默認(rèn)都走的schema配置的database
	sqlMaxLimit:當(dāng)進(jìn)行查詢的時(shí)候Mycat會(huì)自動(dòng)在查詢語句后面添加limit語句.
				如不配置就會(huì)查詢所有.
				需要注意的是,如果運(yùn)行的 schema 為非拆分庫的,
				那么該屬性不會(huì)生效。需要手動(dòng)添加 limit 語句
	checkSQLschema:該字段就是用戶執(zhí)行sql語句時(shí),
					是否檢查表明的schema,
					實(shí)際上與SQL語句語法是有重提的,
					強(qiáng)烈建議將該字段設(shè)置為false;
	-->
    <schema name="mycat_testdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"/>
	<!-- database 是真實(shí)的MySQL數(shù)據(jù)庫的庫名 -->
    <dataNode name="dn1" dataHost="localhost1" database="test" />
	<!--dataNode節(jié)點(diǎn)中各屬性說明
    name:指定邏輯數(shù)據(jù)節(jié)點(diǎn)名稱;
    dataHost:指定邏輯數(shù)據(jù)節(jié)點(diǎn)物理主機(jī)節(jié)點(diǎn)名稱;
    database:指定物理主機(jī)節(jié)點(diǎn)上。
			  如果一個(gè)節(jié)點(diǎn)上有多個(gè)庫,
			  可使用表達(dá)式db$0-99,     
			  表示指定0-99這100個(gè)數(shù)據(jù)庫;
	-->
	<!--
    dataHost 節(jié)點(diǎn)中各屬性說明:
        name:物理主機(jī)節(jié)點(diǎn)名稱;
        maxCon:指定物理主機(jī)服務(wù)最大支持1000個(gè)連接;
        minCon:指定物理主機(jī)服務(wù)最小保持10個(gè)連接;
        writeType:指定寫入類型;
            0,只在writeHost節(jié)點(diǎn)寫入;
            1,在所有節(jié)點(diǎn)都寫入。慎重開啟,
				多節(jié)點(diǎn)寫入順序?yàn)槟J(rèn)寫入根據(jù)配置順序,
				第一個(gè)掛掉切換另一個(gè);				
        dbType:指定數(shù)據(jù)庫類型;
        dbDriver:指定數(shù)據(jù)庫驅(qū)動(dòng);如果使用MySQL /MariDB 選擇native,其他數(shù)據(jù)庫選擇JDBC
        balance:指定物理主機(jī)服務(wù)的負(fù)載模式。
            0,不開啟讀寫分離機(jī)制;
            1,全部的readHost與stand by writeHost參與select語句的負(fù)載均衡,
			   簡單的說,當(dāng)雙主雙從模式(M1->S1,M2->S2,并且M1與 M2互為主備),
			   正常情況下,M2,S1,S2都參與select語句的負(fù)載均衡;
            2,所有的readHost與writeHost都參與select語句的負(fù)載均衡,
			   也就是說,當(dāng)系統(tǒng)的寫操作壓力不大的情況下,
			   所有主機(jī)都可以承擔(dān)負(fù)載均衡;
			3.所有讀請(qǐng)求隨機(jī)的分發(fā)到 wiriterHost 對(duì)應(yīng)的 readhost 執(zhí)行,
			   writerHost 不負(fù)擔(dān)讀壓力,
			   注意 balance=3 只在 1.4 及其以后版本有,1.3 沒有-->
    <dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>       
        <!-- 可以配置多個(gè)主從 
        host 屬性:用于標(biāo)識(shí)不同實(shí)例,
                  一般 writeHost 我們使用*M1,readHost 我們用*S1
        -->
		<writeHost host="hostM1" url="192.168.10.184:3306" user="root" password="root">
            <readHost host="hostS2" url="192.168.10.166:3306" user="root" password="root" />
        </writeHost>
    </dataHost>
</mycat:schema>

進(jìn)入mycat的bin目錄下:./mycat start | status | stop
查看是否啟動(dòng)成功:./mycat console
或者進(jìn)入logs目錄下查看wrapper.log日志

STATUS | wrapper  | 2019/07/07 18:09:04 | TERM trapped.  Shutting down.
STATUS | wrapper  | 2019/07/07 18:09:06 | <-- Wrapper Stopped
STATUS | wrapper  | 2019/07/07 18:09:10 | --> Wrapper Started as Daemon
STATUS | wrapper  | 2019/07/07 18:09:10 | Launching a JVM...
INFO   | jvm 1    | 2019/07/07 18:09:11 | Wrapper (Version 3.2.3) http://wrapper.
INFO   | jvm 1    | 2019/07/07 18:09:11 |   Copyright 1999-2006 Tanuki Software, Inc.  All Rights Reserved.
INFO   | jvm 1    | 2019/07/07 18:09:11 | 
INFO   | jvm 1    | 2019/07/07 18:09:11 | Java HotSpot(TM) Server VM warning: You have loaded library /usr/local/mycat/lib/libwrapper-linux-x86-32.so which might have disabled stack guard. The VM will try to fix the stack guard now.
INFO   | jvm 1    | 2019/07/07 18:09:11 | It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
INFO   | jvm 1    | 2019/07/07 18:09:11 | log4j 2019-07-07 18:09:11 [./conf/log4j.xml] load completed.
INFO   | jvm 1    | 2019/07/07 18:09:11 | MyCAT Server startup successfully. see logs in logs/mycat.log

MyCAT Server startup successfully. see logs in logs/mycat.log
說明啟動(dòng)成功了.就可以使用不同權(quán)限的賬號(hào)進(jìn)行登錄操作

在實(shí)際操作中遇到的問題,相互學(xué)習(xí),避免采坑。
問題1.通過wrapper.log 日志,說我的jvm內(nèi)存不足,無法啟動(dòng).`

wrapper  | Launching a JVM...
wrapper  | JVM exited while loading the application.
jvm 1    | Invalid maximum heap size: -Xmx4G
jvm 1    | The specified size exceeds the maximum representable size.
jvm 1    | Error: Could not create the Java Virtual Machine.
jvm 1    | Error: A fatal exception has occurred. Program will exit.
wrapper  | Launching a JVM...

解決辦法:
mycat默認(rèn)需要的內(nèi)存要求大于機(jī)器的實(shí)際內(nèi)存,需要修改mycat的配置文件。
解決方法:找到…/mycat/conf/wrapper.conf,修改

wrapper.java.additional.10=-Xmx4G    (大約在36行)
wrapper.java.additional.11=-Xms1G

改成:

wrapper.java.additional.10=-Xmx1G
wrapper.java.additional.11=-Xms256M
修改完成后,重新執(zhí)行./mycat console

問題2
server.xml /schema.xml中。
<mycat:schema xmlns:mycat=“http://org.opencloudb/”>```

我最開始使用http://cat。一啟動(dòng)就說<mycat:schema xmlns:mycat=“http://cat/”>不可以,使用org.opencloudb
我下載的安裝包解壓然后找到server.xml/schema.xml中查看官網(wǎng)下載都是使用的這個(gè);什么原因目前沒龍清楚。
反轉(zhuǎn)改成了org.opencloudb就可以了。(不要慌還有錯(cuò)誤)

問題3.這兩個(gè)配置文件。我在網(wǎng)上和官網(wǎng)提供的MyCat入門中查詢了一些字段的含義,我就做了一些注釋,
也行是我細(xì)心的原因;然后把注釋去掉之后,啟動(dòng),就可以了。。。。。所以不管做什么事情都要細(xì)心。軟件開發(fā)更要膽大心細(xì)。

來源:https://www./content-4-306601.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多