zoukankan      html  css  js  c++  java
  • 部署MySQL主从半同步复制

    半同步复制:
    而半同步复制是在协议中添加了一个同步步骤,主节点在发送完日志文件之后,等待来自从节点的回应,收到从节点的同步确认之后才去提交数据(保证数据一定被备份了) 

    一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) —–>IO Thread (从) —–> SQL Thread(从)。
    复制只能是单向的,从主节点(master)到从节点(slave)上. 
    master用户写入数据,生成event记录到binary-log(二进制日志)中. 
    slave接收master上传来的binlog,然后按顺序应用,重现master上的用户操作.

    半同步复制支持多种插件:/usr/lib64/mysql/plugin/*

    半同步复制插件:

     semisync_master.so

     semisync_slave.so

    1.查看系统中是否存在插件

    rpm -ql mariadb-server | grep semisync

    /usr/lib64/mysql/plugin/semisync_master.so

    /usr/lib64/mysql/plugin/semisync_slave.so

    2.登录master1数据库安装插件

    INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

    3.检查插件是否安装成功

     SHOW PLUGINS;

     大约有43条记录

    4.启用插件步骤

     SHOW GLOBAL VARIABLES LIKE '%semi%'

     有4条记录

    SET @@global.rpl_semi_sync_master_enabled=ON;

    SHOW GLOBAL VARIABLES LIKE '%semi%';

     有4条记录

    =============================

    1.登录master2安装插件

     INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

     SHOW PLUGINS;

     也是43条记录

    2.启动插件步骤:

     SHOW GLOBAL VARIABLES LIKE '%semi%';

    SET @@global.rpl_semi_sync_slave_enabled=ON;

     SHOW GLOBAL VARIABLES LIKE '%semi%';

     =============================

    查看master1信息

    SHOW GLOBAL STATUS LIKE '%semi%';

     在maser2启动IO线程

     STOP SLAVE IO_THREAD;

    START SLAVE IO_THREAD;

    =======================

    查看master1信息

    SHOW GLOBAL STATUS LIKE '%semi%';

     ==================================

    在主节点为事先创建的用户进行主从复制授权:

    grant replication slave on *.* to 'myslave'@'192.168.200.%' identified by '123123';

    重新加载授权表

     flush privileges;

    查看服务信息

     show master status;

     =======================

    master2指向master1

    CHANGE MASTER TO  MASTER_HOST='192.168.200.111', MASTER_USER='myslave', MASTER_PASSWORD='123123', MASTER_LOG_FILE='mysql-binlog.000003', MASTER_LOG_POS=487;

    与master1信息表相对应

    实验测试:

    在master1中创建库mydb

     CREATE DATABASE mydb CHARACTER SET 'utf8';

    在master2中查看库信息

    show databases;

     实现复制功能

  • 相关阅读:
    微服务下,使用ELK做日志收集及分析
    Spring boot下,集成任务调度中心(XXL-JOB)
    使用mysqldump 导出数据时的常用选项
    MySQL 批量insert 、单条insert
    分享一个 电子书下载网站 支持 ebook pdf azw3 epub mobi
    稀疏数组
    LaTeX 交叉引用系统简介
    服务器jupyter配置与ssh远程登录
    postgresql中终止正在执行的SQL语句
    Python 个人笔记(一)
  • 原文地址:https://www.cnblogs.com/990114-jhc/p/11691101.html
Copyright © 2011-2022 走看看