• Mysql主从级联复制


    场景1

      如果主节点已经运行了一段时间,且有大量数据时,如何配置并启动slave节点

        通过备份恢复数据至从服务器
    ·    复制起始位置为备份时,二进制日志文件及其POS:

       Mater 设置

      1) 修改配置文件

      2) 备份出数据库,会自动刷新日志,查看bin 日志

    [root@mysql-master ~]# mysqldump -A -F --single-transaction --master-data=1 > /root/all.sql
    
    MariaDB [(none)]> show binary logs;
    +--------------------+-----------+
    | Log_name           | File_size |
    +--------------------+-----------+
    | mariadb-bin.000001 |      2200 |
    | mariadb-bin.000002 |       245 |
    +--------------------+-----------+
    2 rows in set (0.00 sec)
    

      3) 备份完成之后 随便创建点东西 或者空数据库

      Slave 设置

        1) 导入 Master 备份的数据

    [root@mysql-node1 ~]# mysql < /root/all.sql 
    

        2) 链接数据库(因为导出的数据库里面已经有了,要指定的log,在此就不需要指定)

    MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.0.40',MASTER_USER='alave',MASTER_PASSWORD='123456';
    MariaDB [(none)]> start slave;
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    MariaDB [(none)]> show slave statusG
    

      

    从服务器添加只读属性

      1、限制从服务器为只读

        在从服务器上设置readonly=ON

        注意:此限制对拥有SUPER权限的用户均无效

        阻止所有用户,包括主服务器复制的更新

        mysql> FLUSH TABLES WITH READ LOCK;

      

      1) 查看是否开启

    MariaDB [(none)]> show variables like 'read%';
    +----------------------+--------+
    | Variable_name        | Value  |
    +----------------------+--------+
    | read_buffer_size     | 131072 |
    | read_only            | OFF    |
    | read_rnd_buffer_size | 262144 |
    +----------------------+--------+
    

      2) 修改配置文件开启read_only

      3) 查看是否开启

    MariaDB [(none)]> show variables like 'read%';
    +----------------------+--------+
    | Variable_name        | Value  |
    +----------------------+--------+
    | read_buffer_size     | 131072 |
    | read_only            | ON     |
    | read_rnd_buffer_size | 262144 |
    +----------------------+--------+
    

      

     级联复制

    如果要启用级联复制,需要在从服务器启用以下配置
      [mysqld]
      log_slave_updates

     实验:

      Mastr 配置和之前一样不变,导出数据库.等(注: 同步之前查看log ops)

      中间从服务器,导入sql,并且启动,进行同步,配置文件需要先加入以下信息

     [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    innodb_file_per_table
    server_id=2
    read-only
    log_slave_updates
    log_bin
    

      Csalve配置

        1) 配置文件

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    server-id=3
    read-only

        2) 链接(用户名可以Master 同步过去的用户<不行再创建一个在中间的从服务器>,服务器地址填中间从服务器)

    MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST='172.16.0.41',MASTER_USER='vvve',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mariadb-bin.000001',MASTER_LOG_POS=517706;
    Query OK, 0 rows affected (0.01 sec)
    
    MariaDB [(none)]> start slave;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]> show slave statusG
    

      

      

  • 相关阅读:
    eth私有节点搭建
    angularjs 文件类型格式校验
    Windows Server 2019, 2016 or 2012 安装telnet
    Oracle导致Redo日志暴增的SQL语句排查
    log4j waf 绕过技巧
    jtemplate使用笔记
    NPOI2.0
    关于java同一个类互相调用,spring事务失效问题
    java 将redis的数据批量取出来的时候遇到json格式转换异常
    超级好用的文档转换工具
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/10453844.html
Copyright © 2020-2023  润新知