zoukankan      html  css  js  c++  java
  • mysqlGTID主从配置

    GTID主从简介

    GTID是基于mysql生成的事务ID,由服务器ID和事务ID组成。
    这个ID在主库及从库上都是唯一的。
    这个特性可以让mysql的主从复制变得更加简单,一致性更加可靠。

    GTID优势

    1. 更简单的实现同步,不需要再找log_file和log_pos
    2. GTID是连续的,没有中断,数据一致性高,不会发生丢失
    3. 搭建主从更简单
    4. 比传动主从更安全

    GTID劣势

    1. 不支持主从关系中存在非事务数据库
    2. 不支持CREATE TABLE … SELECT语句
    3. 不支持针对临时表的操作:
    4. 开启 GTID 后不能再使用原来的传统的复制方式;

    配置GTID主从

    环境:

    • 主数据库
      • CentOS7/RedHat7
      • IP-192.168.233.129
      • Hostname-Lynk
      • 有数据
    • 副数据库
      • CentOS7/RedHat7
      • IP-192.168.233.247
      • Hostname-Hyrule
      • 无数据

    给从库授权

    #以下操作在主库进行
    mysql> CREATE USER 'repl'@'192.168.233.247' IDENTIFIED BY 'repl123';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.233.247';
    Query OK, 0 rows affected (0.00 sec)
    

    确保数据一致

    #新开一个终端,对主库锁表,防止配置期间有其他人写入,锁表期间不能关闭终端或退出mysql交互式命令行
    mysql> FLUSH TABLES WITH READ LOCK;
    
    #全备主库
    [root@lynk ~]# mysqldump -uroot -plynk123~ --all-databases > /opt/all-201902271749.sql
    #复制备份文件到从库
    [root@lynk ~]# scp /opt/all-201902271749.sql root@192.168.233.247:/opt/
    
    #在从库恢复主库的备份
    [root@Hyrule ~]# mysql -uroot -plynk123~ < /opt/all-201902271749.sql 
    

    配置主库

    [root@lynk ~]# vim /etc/my.cnf
    #添加以下内容
    #数据库服务器唯一标识符,主库的server-id值必须比从库的大
    server_id=1
    gtid_mode=on 
    #强制gtid一致性,开启后对于特定create table不被支持
    enforce_gtid_consistency=on 
    log_bin=master-binlog
    log-slave-updates=1
    binlog_format=row 
    skip_slave_start=1
    
    #结束主库锁表状态,只要退出另一个终端中mysql交互式命令行就行了
    mysql> quit
    #重启主库
    [root@lynk ~]# systemctl restart mysqld
    

    配置从库

    [root@Hyrule ~]# vim /etc/my.cnf
    #添加以下内容
    gtid_mode=on
    enforce_gtid_consistency=on
    server_id=2
    log-bin=slave-binlog
    log-slave-updates=1
    binlog_format=row 
    skip_slave_start=1
    
    #重启从库
    [root@Hyrule ~]# systemctl restart mysqld
    
    #配置主从复制
    mysql> CHANGE MASTER TO
        -> MASTER_HOST='192.168.233.129',
        -> MASTER_USER='repl',
        -> MASTER_PASSWORD='repl123',
        -> MASTER_PORT=3306,
        -> MASTER_AUTO_POSITION = 1;
    Query OK, 0 rows affected, 2 warnings (0.03 sec)
    
    mysql> start slave;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show slave status G
    #确保以下两项是Yes
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
  • 相关阅读:
    JavaScript的系统函数学习
    Web开发过程中要注意的问题 [转]
    试图运行项目时出错:无法在web服务器上启动项目得解决办法
    不错的函数
    js 学习笔记
    [转载]学习英语之写作篇 (兼考拉回国杂记之八)
    [转载]学习英语之阅读篇 (兼考拉回国杂记之七)
    转载 在WPF中使用Microsoft Chart Controls (MSchart)
    word excel ppt 简单实用总结
    (转)深入浅出WPF(1)——什么是WPF
  • 原文地址:https://www.cnblogs.com/lynk/p/10445640.html
Copyright © 2011-2022 走看看