博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyCat分库分表、读写分离
阅读量:6212 次
发布时间:2019-06-21

本文共 1460 字,大约阅读时间需要 4 分钟。

为什么需要使用mycat?

当随着系统数据量指数级增长后,数据库可能会出现宕机的情况。为了防止这种情况的发生,我们采用mysql的主从复制为基础,mycat实现分库分表保存数据,读写分离减轻主数据库的负载。

mysql主从复制

原理

一共由三个线程完成

  1. 主服务将数据的更新记录保存到二进制日志--主服务器进程
  2. 从服务将主服务的二进制日志复制到本地中继日志--从服务IO进程
  3. 从服务读取中继日志,更新本地数据--从服务SQL进程

配置主服务器

打开配置文件vi /etc/my.cnf

[mysqld]

 log-bin=mysql-bin #开启二进制日志 

 server-id=1 #设置server-id,必须唯一 复制

# 创建从服务用户 

create user 'user'@'10.168.1.249' identified by 'password'; 

 # 授权,只授予复制和客户端访问权限 

grant replication slave on *.* to 'user'@'10.168.1.249';#分配权限

# 查看主服务状态

show master status

配置从服务器

打开配置文件vi /etc/my.cnf

[mysqld]

server-id=2 #设置server-id,必须唯一 复制

#执行复制主服务器语句

#启动从服务器同步进程

start slave

#查看slave状态

当Slave_IO_Running与Slave_SQL_Running都为yes时,复制同步成功。

异常情况处理:

  1. Slave_IO_Running为NO表示无法正常连接主服务器,检查用户名及密码
  2. Slave_SQL_Running为NO一般由事务回滚造成,按以下步骤解决:
  • stop slave
  • set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
  • start slave

mycat配置

# Java Application 配置jdk

wrapper.java.command=/lib/jvm/bin/java 

wrapper.working.dir=.. 

server.xml 中定义用户以及系统相关变量,如端口等

以上定义一个用户,用户名为root,密码为qwer~!@#,可访问的schema为test_schema一个逻辑库。

schema.xml 中定义逻辑库,表、分片节点等内容

schema标签,划分不同的逻辑库

dataNode标签,用于绑定逻辑库某个具体的database

balance属性:

负载均衡类型,目前的取值有 4 种:

  1. balance=0,不开启读写分离机制,所有读操作都发送到当前可用的 write Host 上
  2. balance=1,所有读操作都随机发送到当前的writeHost对应的readHost和备用的writeHost
  3. balance=2,所有的读操作都随机发送到所有的writeHost,readHost上
  4. balance=3,所有的读操作都只发送到writeHost的readHost上

writeType属性:

  1. writeType=0,所有写操作发送到配置的第一个 write Host
  2. writeType=1,所有写操作都随机的发送到配置的 write Host

rule.xml 中定义分片规则

启动mycat

/usr/local/mycat/bin 

./mycat start

服务端口:8066

客户端端口:9066

转载地址:http://dtcja.baihongyu.com/

你可能感兴趣的文章
SQL Server2008附加数据库之后显示为只读时解决方法
查看>>
项目实施人员请做到天时地利人和
查看>>
投票送广交会资料!
查看>>
苹果公司遭欧盟调查 涉嫌勾结书商操控电子书价
查看>>
python 文件处理、数据持久化与正则
查看>>
mongodb部署一个集群
查看>>
java多线程
查看>>
netty框架的学习笔记 + 一个netty实现websocket通信案例
查看>>
我的友情链接
查看>>
求职之我见
查看>>
【转】牛逼闪闪的Ruby迭代器
查看>>
Windows 8 企业部署系列之(八)
查看>>
Zend Studio 主題更改
查看>>
echarts 设置地图默认缩放比例 尺寸
查看>>
PHP内存池中的存储层
查看>>
PHP开发APP接口1——APP接口简介
查看>>
家用nas的过去现在和未来--2008n年
查看>>
Linux安装Zend Guard 和 ioncube
查看>>
android点滴25:Fragment加载时犯的低级错误android.view.Infla...
查看>>
x264 slicetype 选定中的x264_lowres_context_init函数分析
查看>>