一、当前数据库服务存在的问题

mariadb双主高可用 双主数据库_双机热备


1.如果数据库主库宕机,则影响整个数据库服务器

2.如果后台Amoeba宕机,会影响整个服务

3.主库宕机影响

  • 因为配置数据库主从服务器,从库可以实现备份主库数据。但是当主库宕机后,如果通过某些技术手段可以实现数据库的故障迁移,但这是从库需要同时读写数据,一段时间后,从库的数据会比主库的数据多
  • 如果这是主库服务器修复,amoeba根据原有配置继续实现读写分离,但是从库中的数据比主库的数据多,这时IO线程会断掉,至此无法实现主从服务
  • 该问题导致之前用户写入的数据,主库没有。同时用户新增的数据从库没有,导致数据不一致。

4.改进策略

4.1 主从切换:如果主库(A)宕机,那么远来的从库(B)升级为主库或者读,同时将原主变为从,挂载在原从上。——已经实现需要依赖于第三方插件,同时该方案不适用于多个主从配置。

4.2 双机热备(双主模式):数据库高可用最简单方案。两台数据库户为主从结构,即使其中一台宕机,也不会影响整个数据库服务。

mariadb双主高可用 双主数据库_数据库_02

二、双机热备(双主模式) 动手实验:

错误: 小海豚不能连接主从的数据库为啥?因为没有在主库从库的虚拟机中登陆mysql

主从挂载。

1.在从库(B:130)上配置主库信息

mariadb双主高可用 双主数据库_数据库_03


1.不论主库还是从库,设定挂载机制必须先停止服务

stop slave;

2.注意:

MASTER_USER="root",
MASTER_PASSWORD="",

3.配置【原先 B挂到A上 实现读写分离】

mariadb双主高可用 双主数据库_数据库_04


4.防止主机宕机 AB保持同步,再配置A挂载到B上,实现:双机热备模式

mariadb双主高可用 双主数据库_Amoeba_05


5.检查状态 :两个状态都为Yes便成功

show slave status;

mariadb双主高可用 双主数据库_数据库_06


mariadb双主高可用 双主数据库_mariadb双主高可用_07


6.检测是否同步

mariadb双主高可用 双主数据库_数据库_08


从库未刷新:

mariadb双主高可用 双主数据库_数据库_09


刷新后:

mariadb双主高可用 双主数据库_mariadb双主高可用_10


修改从库信息:

mariadb双主高可用 双主数据库_数据库_11


主库:

mariadb双主高可用 双主数据库_数据_12

配置完成!