1. 京淘后端项目架构
1.1 数据库主从同步
1.1.1 业务需求说明
当数据库发生宕机的现象,如果配置了数据库主从同步,则可以从从库中获取现有记录,显示数据的恢复.
1.2 数据库主从同步原理
1.2.1 数据库冷备份
说明: 人工的将数据库文件定期导出,一式三份 如果其中一份丢失,另外2份可以留作替补.
弊端: 数据不能实时备份.
解释: 工作中数据库的冷备份是恢复数据最后有效的手段(重大事故)
1.2.2 数据库热备份
说明: 最为主要的作用可以实现实时备份. 几乎保证数据不丢失.
1.3 数据库备份实现
1.3.1 实现数据库导入
1.3.2 开启二进制日志文件
- 默认条件下 数据库的二进制日志文件是关闭的.如果需要备份则手动开启
- 编辑二进制日志文件 /etc/my.cnf
- 编辑配置文件
- 默认数据库文件位置
- 重启数据库 让二进制文件生效即可
- 从库重复上述步骤.开启二进制日志文件即可
1.4 实现主从挂载
1.4.1 主库状态
1.4.2 实现主从挂载
/*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;
1.4.3 启动主从测试代码
1.4.4 主库主从搭建问题
- 停止主从服务
stop slave - 排查错误
- 重启进行主从挂载
- 重置主从服务 reset slave
- 重复挂载即可 如果不行 推倒重做
1.5 实现数据库读写分离/负载均衡
1.5.1 Mycat数据库代理
活跃的、性能好的开源数据库中间件!
我们致力于开发高性能的开源中间件而努力!
重要通告,最近有区块链项目借Mycat宣传,与Mycat毫无关系,大家不要相信!
1.5.2 Mycat安装
1). 解压安装包 如果所示.
2. 目录结构
bin: Mycat的可执行文件 conf: Mycat的配置文件 logs: Mycat日志 如果报错
1.5.3 编辑server.xml
说明: 该配置主要实现用户与代理之间的配置关系.
端口号: 8066端口
修改配置文件:
1.5.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>
1.5.5 mycat命令
1.5.6 修改数据库地址
1.5.7 负载均衡实现
1.6 高可用
1.6.1 介绍
当数据库主机宕机之后,要求实现高可用机制.用户程序将不会受到影响. 数据库高可用机制.
1.6.2 双机热备思想
1.6.3 反向搭建
1).130 执行
2). 129的执行
1.6.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>