乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      我自己實(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ù)器 端口號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/">
      <!--這里
         配置的是對虛擬出來的數(shù)據(jù)賬號密碼和權(quán)限
         在實(shí)際運(yùn)用中我們使用這里配置的賬號和密碼 連接Mycat虛擬出來的數(shù)據(jù)庫.
         
         在實(shí)際項(xiàng)目中就會出現(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)限賬號-->
          <user name="root">
              <property name="password">123456</property>
              <property name="schemas">mycat_testdb</property>
          </user>
      	<!--讀權(quán)限賬號-->
          <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ù)庫對應(yīng)物理數(shù)據(jù)庫節(jié)點(diǎn)。
      			 邏輯庫下的表默認(rèn)都走的schema配置的database
      	sqlMaxLimit:當(dāng)進(jìn)行查詢的時(shí)候Mycat會自動(dòng)在查詢語句后面添加limit語句.
      				如不配置就會查詢所有.
      				需要注意的是,如果運(yùn)行的 schema 為非拆分庫的,
      				那么該屬性不會生效。需要手動(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.所有讀請求隨機(jī)的分發(fā)到 wiriterHost 對應(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í)例,
                        一般 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)限的賬號進(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è)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多