AI智能
改变未来

数据库高可用


1.数据库高可用

1.1数据库高可用说明

当数据库的主库宕机之后,如果没有高可用机制,则可能导致整个服务全部不能正常使用
解决策略:双主模式(双机热备)

1.2 数据库双机热备实现

1.2.1 双机热备的说明

将2台数据库设置为双主模式,互为双主的结构,其中任意的数据库服务器即是主机,也是从机

1.2.2双机热备实现

规划:
之前配置
192.168.66.12:3306 主机
192.168.66.13:3306 从机
优化后的配置
192.168.66.12:3306 主机,从机
192.168.66.13:3306 从机,主机
配置:
1)检查13主机的状态信息

2)实现主从的挂载 操作的是12

/*12  我是主机   现在当从机*//*实现主从挂载*/CHANGE MASTER TO MASTER_HOST=\"192.168.66.13\",MASTER_PORT=3306,MASTER_USER=\"root\",MASTER_PASSWORD=\"root\",MASTER_LOG_FILE=\"mysql-bin.000001\",MASTER_LOG_POS=714;/*2.开启主从服务*/START  SLAVE/*3.检查主从的状态*/SHOW SLAVE STATUS;

1.2.3双机热备的测试

测试A: 修改12中的数据,检查13中是否实现了数据的同步!!
测试B: 修改13中的数据.检查12种是否实现了数据的同步!!!

1.3数据库的高可用实现

1.3.1Mycat配置

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

1.3.2 上传配置文件


重启Mycat

1.3.3 数据库高可用测试

测试策略:
1)启动服务器检查用户数据是否正确获取
2)将mysql数据库的主机宕机,检查数据是否正确获取
关闭mysql主机
修改数据库记录
3).将mysql数据库重启,检查mysql数据库是否实现数据的同步.
检查主库记录

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 数据库高可用