1.2 Mycat
1.2.1 Mycat介绍
1.2.2 上传安装包
1.2.3 解压安装包
1.2.4 移动安装文件
1.2.5 删除文件
1.2.6 编辑server.xml配置文件
server.xml标识的是用户与代理的关联关系
1.2.7 编辑schema.xml文件
说明: 该文件主要标识的是代理和数据库之间的关联关系.
要素: 数据库IP地址/端口号/数据库名称/用户名/密码.
1.2.8 上传文件
1.2.9 启动mycat服务
1.2.10 Mycat读写分离测试
修改从库中的title数据,之后查询检查是否实现负载均衡
1.2.11关于报错说明
如果出现问题 检查logs文件中的日志
1.2.12 修改数据源配置
1.3 实现数据库高可用
1.3.1 业务需求
说明: 如果数据库主库发生了宕机的现象,则直接影响整个系统的运行.
如何解决: 实现双机热备的形式
1.3.2 双机热备的原理
说明: 采用2台数据库 互为主从的结构 进行操作.
1.3.3 配置步骤
1).检查130 主库的状态
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
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状态:
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).检查数据库权限是否开放
4). 关闭防火墙
5).利用sqlYog工具 远程链接数据库
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).修改数据库链接地址