mycat

1.2 Mycat

1.2.1 Mycat介绍

mycat

1.2.2 上传安装包

mycat

1.2.3 解压安装包

mycat

1.2.4 移动安装文件

mycat

1.2.5 删除文件

mycat

1.2.6 编辑server.xml配置文件

server.xml标识的是用户与代理的关联关系
mycat

1.2.7 编辑schema.xml文件

说明: 该文件主要标识的是代理和数据库之间的关联关系.
要素: 数据库IP地址/端口号/数据库名称/用户名/密码.
mycat

1.2.8 上传文件

mycat

1.2.9 启动mycat服务

mycat

1.2.10 Mycat读写分离测试

修改从库中的title数据,之后查询检查是否实现负载均衡
mycat

1.2.11关于报错说明

如果出现问题 检查logs文件中的日志
mycat

1.2.12 修改数据源配置

mycat

1.3 实现数据库高可用

1.3.1 业务需求

说明: 如果数据库主库发生了宕机的现象,则直接影响整个系统的运行.
如何解决: 实现双机热备的形式
mycat

1.3.2 双机热备的原理

说明: 采用2台数据库 互为主从的结构 进行操作.
mycat

1.3.3 配置步骤

1).检查130 主库的状态
mycat
2).实现129挂载130

/*129原来是主   今天当从*/

CHANGE MASTER TO MASTER_HOST="192.168.126.130",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=477;

/*启动主从服务*/
START SLAVE;

/*检查主从的状态*/
SHOW SLAVE STATUS;

/*如果需要重新配置 则reset一下*/
RESET SLAVE;

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

mycat

1.3.4 编辑schema.xml文件

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	
	<!--name属性是自定义的  dataNode表示数据库的节点信息  jtdb表示逻辑库-->
	<schema name="jtdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="jtdb"/>

	<!--定义节点名称/节点主机/数据名称-->
	<dataNode name="jtdb" dataHost="localhost1" database="jtdb" />
		<!--参数介绍 UTF-8 中文报错  使用单行注释 -->
		<!--balance 0表示所有的读操作都会发往writeHost主机 -->  
		<!--1表示所有的读操作发往readHost和闲置的主节点中-->
		<!--writeType=0 所有的写操作都发往第一个writeHost主机-->	
		<!--writeType=1 所有的写操作随机发往writeHost中-->
		<!--dbType 表示数据库类型 mysql/oracle-->
		<!--dbDriver="native"  固定参数 不变-->
		<!--switchType=-1 表示不自动切换, 主机宕机后不会自动切换从节点-->
		<!--switchType=1  表示会自动切换(默认值)如果第一个主节点宕机后,Mycat会进行3次心跳检测,如果3次都没有响应,则会自动切换到第二个主节点-->
		<!--并且会更新/conf/dnindex.properties文件的主节点信息 localhost1=0 表示第一个节点.该文件不要随意修改否则会出现大问题-->

		
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select 1</heartbeat>

		<!--配置第一台主机主要进行写库操作,在默认的条件下Mycat主要操作第一台主机在第一台主机中已经实现了读写分离.因为默认写操作会发往137的数据库.读的操作默认发往141.如果从节点比较忙,则主节点分担部分压力.
		-->
		<writeHost host="hostM1" url="192.168.126.129:3306" user="root" password="root">
			<!--读数据库1-->
			<readHost host="hostS1" url="192.168.126.130:3306" user="root" password="root" />
			<!--读数据库2-->
			<readHost host="hostS2" url="192.168.126.129:3306" user="root" password="root" />
		</writeHost>

			<!--定义第二台主机 由于数据库内部已经实现了双机热备.-->
			<!--Mycat实现高可用.当第一个主机137宕机后.mycat会自动发出心跳检测.检测3次.-->
			<!--如果主机137没有给Mycat响应则判断主机死亡.则回启东第二台主机继续为用户提供服务.-->
			<!--如果137主机恢复之后则处于等待状态.如果141宕机则137再次持续为用户提供服务.-->
			<!--前提:实现双机热备.-->
		
		<writeHost host="hostM2" url="192.168.126.130:3306" user="root" password="root">
			
			<readHost host="hostS1" url="192.168.126.130:3306" user="root" password="root" />
			
			<readHost host="hostS2" url="192.168.126.129:3306" user="root" password="root" />
		</writeHost>
	</dataHost>
</mycat:schema>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

1.3.5 重启Mycat服务器

mycat
检查mycat状态:
mycat

1.3.6关于数据库高可用测试

1).关闭数据库主库
2).检查用户访问是否正常
3).操作数据库检查是否入库是否正常
4).重启数据库主库 检查数据是否实现同步

1.4 关于Mysql数据库高可用相关说明

1).检查2台Linux系统IP ip addr 主库:129 从库:130
2).检查数据库是否启动 mysql -u root -p root
3).检查数据库权限是否开放
mycat
4). 关闭防火墙
mycat
5).利用sqlYog工具 远程链接数据库
mycat
6).搭建主从服务
vim /etc/my.cnf 主机:server-id=1 从机:server-id=2
重启服务器: 检查 /var/lib/mysql 是否有二进制日志文件
实现互为主从的搭建 检查是否有2个yes

7).搭建mycat服务器
准备2个配置文件 之后上传到mycat目录下的conf文件中并且覆盖原有的文件.
重启mycat服务. ./mycat restart

8).实现数据库高可用测试…

1.5 系统还原

1).关闭主库和从库 systemctl stop mariadb
2).修改数据库链接地址
mycat

 

上一篇:MyCat


下一篇:mycat读写分离