• 8、MySQL主从数据库配置


    数据库高可用实现

    1.1 主从复制搭建

    1.1.1 编辑主数据库

    搭建步骤:

    1.为数据库创建服务ID号标识数据库

    2.需要开启二进制日志文件

    3.查询数据的二进制日志状态(文件名称+文件的位置)

    4.从库引入主库的文件进行配置

    4.1为从库指定主库的位置

        1.IP

        2.端口3306

        3.用户名和密码

    4.二进制文件名称和位置

         4.2 启动主从模式

    1.2 具体实现过程

    1.2.1 开启二进制文件

    1.编辑mysql的配置文件

     

    2.配置id和文件名称

     

    3.重启Mysql服务

     

    4.检测二进制日志文件是否生效

    cd /var/lib/mysql

     

    1.2.2 查询主库的状态

    说明:通过查询主库的状态获取二进制日志文件的名称和数据位置

     

    1.3 配置从数据库

    1.3.1 配置从库的标号

    说明:编辑从库Id.

     

    2.编辑日志文件

     

    3.重启数据库

    service mysql restart

     

    4.检测日志文件

    cd /var/lib/mysql/

      

    1.4 实现主从

    1.4.1 实现主从挂载

    1.实现挂载

    CHANGE MASTER TO MASTER_HOST="192.168.126.137",
    MASTER_PORT=3306,MASTER_USER="root",
    MASTER_PASSWORD="root",
    MASTER_LOG_FILE="mysql-bin.000001",
    MASTER_LOG_POS=120
     

     

    2.开启主从服务

    #开启主从服务

    START SLAVE

    3.检测主从的状态

    说明:如果出现2yes表示主从配置成功

    #检测主从状态

    SHOW SLAVE STATUS

     

    4.主从测试

    说明:修改主库的数据,查询从库的数据是否修改

     

    1.4.2 挂载错误

    CHANGE MASTER TO MASTER_HOST="192.168.126.137",
    MASTER_PORT=3306,MASTER_USER="root",
    MASTER_PASSWORD="root",
    MASTER_LOG_FILE="mysql-bin.000001",
    MASTER_LOG_POS=120
    
    #开启主从服务
    START SLAVE
    
    #检测主从状态
    SHOW SLAVE STATUS
    
    #如果出现yes/no  no/yes
    STOP SLAVE
    
    #将主库重启 从库重启 依次执行上述语句

    1.5 挂载错误集

    1.5.1 关于二进制日志文件多个问题

    说明:当重启主数据库时,Mysql会自动的生成一个新的二进制日志文件,并且名称是累加的.这时如果实现主从挂载时,应该以show master status 为准

    1.5.2 切记不要复制mysql虚拟机

    /var/lib/mysql/auto.cnf

     

    1.5.3 关闭防火墙

    如果不关闭防火墙,会出现一直在等待的状态.

    1.5.4 查看IO异常信息

    1.5.5 回滚mysql

    说明:linux回滚,回滚之后重新配置

     

    实现数据库的高可用

    3.1 高可用的原则

    3.1.1 分析

     

    说明:上图中已经实现了数据库的主从复制,但是如果主数据宕机后,这时整个服务将会停止!!!

    升级:通过某些技术手段可以实现高可用.但是会遇到数据如何同步的问题???

    说明:当主库宕机后,由从库代替主库完成更新操作,如果主数据库成功启动,这时会出现从数据库和主数据库中的内容不匹配的现象??如何处理???

    3.2 双机热备模式

    3.2.1 双机热备模式说明

    说明:为了满足数据库高可用后出现数据不同步的问题,采用双机热备的形式解决该问题.

    图例:

     

    说明:双机热别的形式,是实现数据库高可用的前提条件.A宕机后,通过mycat实现高可用自动切换到B.这时B持续为用户提供服务,并且将”更新”的信息写入二进制日志文件中,A数据库启动后会自动的同步数据,最终实现高可用!

    3.2.2 双机热备的配置

    之前:A----B从机

    现在:B主机---A从机

    1. 查询主库的状态

     

    1. 从库挂载主库
    #挂载从机
    CHANGE MASTER TO MASTER_HOST="192.168.126.141",
    MASTER_PORT=3306,MASTER_USER="root",
    MASTER_PASSWORD="root",
    MASTER_LOG_FILE="mysql-bin.000001",
    MASTER_LOG_POS=120
    
    #启动主从服务
    START SLAVE
    
    #检测主从状态
    SHOW SLAVE STATUS

     

    1. 测试结果

     B数据库添加信息,查看A数据库中是否实现数据同步.如果实现数据同步,则搭建完成

     

    3.3 Mycat介绍

    3.3.1 Mycat介绍

     

    3.4 MyCat部署

    3.4.1 配置JDK

     

    3.4.2 上传文件

    1.上传文件


    2.解压Mycat文件

    3.修改配置文件

     

    3.4.3 Server.xml的配置

     

    3.4.4 配置schema.xml

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

     

    3.4.6 Mycat测试

    说明:启动Mycat

    命令

    ./mycat stop

    ./mycat start

    2.检测Mycat启动是否成功

    logs日志下检测Mycat启动是否成功

     

    1. Mycat对外报错的端口是8066

    3.4.7 Mycat测试

    说明:将主数据库关闭后,测试应用是否正常.再次开启主数据库后检测数据是否实现数据同步.

  • 相关阅读:
    mogodb优化
    uuid
    ssl详解
    探究rh6上mysql5.6的主从、半同步、GTID多线程、SSL认证主从复制
    CMAKE MYSQL
    证书生成
    叶金荣主页
    mysqlslap
    sysbench 测试MYSQL
    mysql实验室
  • 原文地址:https://www.cnblogs.com/xiangyuqi/p/8651788.html
Copyright © 2020-2023  润新知