精华内容
下载资源
问答
  • MyCAT读写分离

    2019-03-28 10:56:04
    MyCAT读写分离 mycat读写分离依赖于MySQL主从复制,所以需要先配置MySQL的主从复制,然后在配置mycat读写分离。 1.MySQL配置主从复制 配置MySQL主从复制链接:link 2.mycat配置读写分离 配置读写分离schema.xml文件...

    MyCAT读写分离

    mycat读写分离依赖于MySQL主从复制,所以需要先配置MySQL的主从复制,然后在配置mycat读写分离。

    1.MySQL配置主从复制

    配置MySQL主从复制链接:link

    2.mycat配置读写分离

    配置读写分离schema.xml文件如下

    <!-- 配置逻辑库USERDB,逻辑库数据节点配置到dn1上 -->
    <schema name="USERDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>
    <!-- 配置数据节点,配置节点主机node1,数据库实例库user_db -->
    <dataNode name="dn1" dataHost="node1" database="user_db" />
    <!-- 配置节点主机 -->
    <dataHost name="node1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
          <!-- 各个数据库实例,心跳检测 -->
        <heartbeat>select user()</heartbeat>
        <!-- 配置写库1 -->
        <writeHost host="hostM1" url="192.168.5.180:3306" user="root"password="123456">
            <!-- 配置读库1 -->
            <readHost host="hostS1" url="192.168.5.180:3307" user="root" password="123456" />
                <!-- 配置读库2 -->
            <readHost host="hostS2" url="192.168.5.180:3308" user="root" password="123456" />
            </writeHost>
            <!-- 配置写库2,当配置双主时多从时使用 -->
            <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
        </dataHost>
    展开全文
  • mycat读写分离

    千次阅读 2016-07-05 10:15:12
    mycat读写分离

    MyCat 实现读写分离,是为了更好的提高数据库性能,优化数据库查询。

    首先mycat的读写分离基于mysql主从集群

    1、mysql主从配置

    三台机器  其中190是主,其余俩是节点

    192.168.0.190   master

    192.168.0.162   slave

    192.168.0.163   slave

    mysql 的主从集群配置详情参考:http://blog.csdn.net/linlinv3/article/details/51783976  ,这里就不做讲解了。

    2、mycat配置文件修改

    mycat schema.xml配置如下

    1. <?xml version="1.0"?>
    2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    3. <mycat:schema xmlns:mycat="http://org.opencloudb/" >
    4. <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
    5.           <table name="employee" rule="auto-sharding-long" dataNode="dn1" />
    6. </schema>
    7. <dataNode name="dn1" dataHost="localhost1" database="db1" />
    8.            <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
    9.                writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
    10.                <heartbeat>select user()</heartbeat>
    11.                <writeHost host="hostM1" url="192.168.0.190:3306" user="root" password="fulong">    
    12.                </writeHost>
    13.                <writeHost host="hostS1" url="192.168.0.162:3306" user="root" password="fulong" />
    14.                <writeHost host="hostS2" url="192.168.0.163:3306" user="root" password="fulong" />
    15. </dataHost>
    16. </mycat:schema>

    server.xml 为了简单起见,用的mycat的原始配置,不一一列出

    3、启动mycat并登陆

    mycat安装部署可以参考:http://blog.csdn.net/linlinv3/article/details/51776059

    1. lin@lin190:~$ mysql -utest -ptest -h127.0.0.1 -P8066 -DTESTDB

    创建数据库

    1. mysql> create database db1;
    2. Query OK, 1 row affected (0.00 sec)
    创建表插入数据
    1. CREATE TABLE  employee  ( ID  int(3) NOT NULL DEFAULT  0 ,  PRIMARY KEY ( ID ) );
    2. insert into  employee (id  ) values (1);

    查询数据

    1. select * from employee

    4、查看mysql的日志

    通过日志记录可以看到 那个表进行的写操作,哪个进行的读操作。

    或者,停掉190mysql服务。此时在执行insert语句 就不能执行,但是依旧可以执行select语句,也可以说明了已经读写分离。


    管理端口9066

    1. mysql -utest -ptest -h127.0.0.1 -P9066 -DTESTDB  

    查看管理命令:

    1. mysql> show @@help;

    错误:

    1. ERROR 1105 (HY000): backend connect: ConnectionException [code=1129, msg=Host 'lin190.lin' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts']

    原因:

    同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;

    解决办法:

    set global max_connect_errors = 1000;

    或者

    /usr/bin/mysqladmin flush-hosts -h192.168.0.190 -P3306 -uroot -pfulong;

    展开全文
  • Mycat 读写分离

    2020-05-29 21:45:44
    Mycat 读写分离 首先配置好主从复制,我们这里使用百度1作为master,百度2作为slave 配置mycat,核心是schema.xml文件的配置 server.xml ... …… <user name="mycat" defaultAccount="true"> <...

    Mycat 读写分离

    1. 首先配置好主从复制,我们这里使用百度1作为master,百度2作为slave

    2. 配置mycat,核心是schema.xml文件的配置

    • server.xml
    ...
        ……
        <user name="mycat" defaultAccount="true">
                    <property name="password">123456</property>
                    <property name="schemas">TESTDB</property>
                    <property name="defaultSchema">TESTDB</property>
            </user>
            ……
    ...
    
    
    • schema.xml
    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    
            <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">
            </schema>
            <dataNode name="dn1" dataHost="localhost1" database="testdb" />
            <!--重点配置-->
            <dataHost name="localhost1" maxCon="1000" minCon="10" balance="2"
                              writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
                    <heartbeat>select user()</heartbeat>
                    <!-- 写主机 百度1 -->
                    <writeHost host="hostM1" url="jdbc:mysql://106.13.127.37:3306" user="root"
                                       password="4513zzk.">
                            <!-- 读从机 百度2-->
                            <readHost host="hostS1" url="jdbc:mysql://106.13.32.222:3306" user="root"
                                    password="4513zzk."></readHost>
                    </writeHost>
            </dataHost>
    </mycat:schema>
    

    这里着重关注一下balance这个属性,主要代表负载均衡的类型
    目前的取值有4 种:

    • balance=“0”, 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上。

    • balance=“1”,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从 模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。

    • balance=“2”,所有读操作都随机的在 writeHost、readhost 上分发。

    • balance=“3”,所有读请求随机的分发到 readhost 执行,writerHost 不负担读压力

    展开全文
  • MyCat读写分离

    2019-01-22 13:19:54
    一、MyCat读写分离 数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决...

    一、MyCat读写分离

    • 数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置

    • MySQL主从复制

    • 主从配置需要注意的地方:

      • 主DB server和从DB server数据库的版本一致

      • 主DB server和从DB server数据库数据一致【这里就会可以把主的备份在从上还原,也可以直接将主的数据目录拷贝到从的相应数据目录】

      • 主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一

    二、MySQL主服务器配置

    • 第一步:修改my.cnf文件,在主服务器上
      • 在[mysqld]段下添加:
    # 往哪个数据库中进行增删改查
    binlog-do-db=db1
    
    binlog-ignore-db=mysql
    
    # 启用二进制日志
    log-bin=mysql-bin
    
    # 服务器唯一ID,一般取IP最后一段
    server-id=134
    • 第二步:重启mysql服务

      • systemctl restart mysqld.service

    • 第三步:建立帐户并授权slave【创建一个账号,来供从服务器来访问主服务器

    # 创建账号
    mysql> GRANT FILE ON *.* TO 'backup'@'%' IDENTIFIED BY '123456';
    # 授权
    mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to 'backup'@'%' identified by '123456'; 
    # 一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。
    
    # 刷新权限
    mysql> FLUSH PRIVILEGES;
      
    # 查看mysql现在有哪些用户
    mysql> select user,host from mysql.user;
    •  
    • 第四步:查询master的状态

      • ​​​​​​​mysql> show master status;

    三、从服务器配置

    • 第一步:修改my.conf文件,在从服务器上

      • ​​​​​​​在[mysqld]段下添加:

        • server-id=166

    • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​第二步:配置从服务器

    mysql> change master to master_host='192.168.25.134',master_port=3306,master_user='backup',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
    # 注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“120”无单引号(此处的120就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。
    •  ​​​​​​​​​​​​​​第三步:启动从服务器复制功能
      • ​​​​​​​mysql> start slave;
    • ​​​​​​​第四步:检查从服务器复制功能状态
      • ​​​​​​​mysql> show slave status;

    四、MyCat的配置

    • Mycat 1.4 支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下:
    <dataNode name="dn1" dataHost="localhost1" database="db1" />
    	<dataNode name="dn2" dataHost="localhost1" database="db2" />
    	<dataNode name="dn3" dataHost="localhost1" database="db3" />
    	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
    		writeType="0" dbType="mysql" dbDriver="native" switchType="2"  slaveThreshold="100">
    		<heartbeat>show slave status</heartbeat>
    		<writeHost host="hostM" url="192.168.25.134:3306" user="root"
    			password="root">
    			<readHost host="hostS" url="192.168.25.166:3306" user="root"
    			password="root" />
    		</writeHost>
    	</dataHost>
    
    • Balance参数设置:

      • ​​​​​​​balance=“0”, 所有读操作都发送到当前可用的writeHost上。

      • balance=“1”,所有读操作都随机的发送到readHost。

      • balance=“2”,所有读操作都随机的在writeHost、readhost上分发。

    • WriteType参数设置:

      • ​​​​​​​writeType=“0”, 所有写操作都发送到可用的writeHost上。

      • writeType=“1”,所有写操作都随机的发送到readHost。

      • writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

    • “readHost是从属于writeHost的,即意味着它从那个writeHost获取同步数据,因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即“不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个writeHost并设置banlance=1。”

    • ​​​​​​​switchType 目前有三种选择:

      • ​​​​​​​-1:表示不自动切换

      • 1 :默认值,自动切换

      • 2 :基于MySQL主从同步的状态决定是否切换

    • “Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性: switchType="2" 与slaveThreshold="100",此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制。Mycat心跳机制通过检测 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延。“

    展开全文
  • Mycat读写分离

    2018-08-17 16:44:41
    Mycat读写分离 Mycat不负责数据的同步问题,需要配置mysql端的主从同步(文末) 1.相关配置属性: 1.1balance属性: 1. balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。...
  • 基于mysql主从同步:https://blog.csdn.net/qq_35119422/article/details/79816705首先writeHost和readHost需实现主从同步mycat读写分离核心配置:在schema.xml中配置:&lt;dataHost name="localhost1"...
  • MyCat 读写分离

    2020-11-20 15:12:45
    提供数据读写分离服务; 提供数据分片服务;基于阿巴巴cober进行演发的开源软件。 2. 分片规则 Mycat支持提供10种分片规则,以下是5种常用的 ①. 枚举法 //sharding-by-intfile ②. 固定分片 //rule1 ③. 范围约定 //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,257
精华内容 1,702
关键字:

mycat读写分离