MySql数据库高可用读写分离配置

1.数据库主从同步

1.1业务需求说明

当数据库发生宕机的现象,如果配置了数据库主从同步,则可以从从库中获取现有记录,显示数据的恢复.

在这里插入图片描述

1.2 数据库主从同步原理

1.2.1 数据库冷备份
说明: 人工的将数据库文件定期导出,一式三份 如果其中一份丢失,另外2份可以留作替补.
弊端: 数据不能实时备份.
解释: 工作中数据库的冷备份是恢复数据最后有效的手段(重大事故)

1.2.2 数据库热备份
说明: 最为主要的作用可以实现实时备份. 几乎保证数据不丢失.

在这里插入图片描述

1.3 数据库备份实现

1.3.1 实现数据库导入(主从一致)

在这里插入图片描述

2.修改配置文件

2.1默认条件下 数据库的二进制日志文件是关闭的.如果需要备份则手动开启

编辑二进制日志文件 命令:vim /etc/my.cnf

在这里插入图片描述

编辑配置文件(主库)

命令:

server-id=1

log-bin=mysql-bin

在这里插入图片描述

2.2默认数据库文件位置

在这里插入图片描述

2.3重启数据库 让二进制文件生效即可

systemctl restart mariadb

在这里插入图片描述

2.4从库重复上述步骤:开启二进制日志文件即可

命令(从库):

vim /etc/my.cnf


server-id=2

log-bin=mysql-bin


systemctl restart mariadb

3.实现主从挂载

3.1 主库状态

检查库的状态

show master status;

在这里插入图片描述

3.2 实现主从挂载

3.2.1从库链接主库

/*130从库 从库链接主库
IP/端口/用户名/密码/二进制文件名/pos位置
*/
CHANGE MASTER TO 
MASTER_HOST="192.168.126.129",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;

3.2.2启动主从测试代码

启动主从服务

start slave;

检查主从状态

show slave status;

在这里插入图片描述

3.2.3主库主从搭建问题

1.停止主从服务
stop slave
2.排查错误
3.重启进行主从挂载
4.重置主从服务 reset slave
5.重复挂载即可 如果不行 推倒重做

4.实现数据库读写分离/负载均衡

4.1 Mycat数据库代理

活跃的、性能好的开源数据库中间件!
我们致力于开发高性能的开源中间件而努力!
重要通告,最近有区块链项目借Mycat宣传,与Mycat毫无关系,大家不要相信!

4.2 Mycat安装

1). 解压安装包 如果所示.

在这里插入图片描述

2)目录结构
bin: Mycat的可执行文件 conf: Mycat的配置文件 logs: Mycat日志 如果报错

  1. 在这里插入图片描述

4.3 编辑server.xml

说明: 该配置主要实现用户与代理之间的配置关系.
端口号: 8066端口
修改配置文件:

在这里插入图片描述

4.4 编辑schema.xml

用户写操作访问129,用户的读操作访问129/130

<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>

4.5 mycat命令

在这里插入图片描述

4.6 修改数据库地址

在这里插入图片描述

4.7 负载均衡实现

在这里插入图片描述

5.高可用

5.1 介绍

当数据库主机宕机之后,要求实现高可用机制.用户程序将不会受到影响. 数据库高可用机制.

5.2 双机热备思想

在这里插入图片描述

5.3 反向搭建

1).130 执行

在这里插入图片描述

2). 129的执行

在这里插入图片描述

5.4 修改Mycat配置文件

		<writeHost host="hostM2" url="192.168.126.130: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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值