zoukankan      html  css  js  c++  java
  • MySQL主从

    一、 主从复制原理

      

      1. master 主库 开启binlog日志

      2. slave 从库

        从库中开启 IO线程 和 sql线程   IO线程复制主库的binlog日志的命令至本机的relay-log文件(中继日志)里面 

        sql线程 执行本机中的relay-log文件中的sql语句实现主从数据一致

    二、构建思路 

     三、配置主从

      1.添加配置(主库从库都要配置)

         

    vim /etc/my.cnf
     [mysqld]
      server_id=51            //server_id(每个数据库的不能一样)
    log-bin=master51        //日志名
    

       2. 主库授权 给予复制数据的权限

        

    mysql -uroot -p密碼
    mysql> grant  replication slave on *.*  to repluser@"%" identified  by "123qqq...A";
    

       3. 配置从库

        (1)查看主库的 binlog日志的偏移量

          show master statusG’;

        (2)指定从库server_id (不能和MySQL主库的server_id 一致)

        (3)备份主库的数据(由于slave只能备份 开启主从之后的数据如果想要 主库和从库的数据一致的话就要完全备份 主库数据)

          

    mysqldump  -uroot  –p密码   --master-data   数据库名   > /allbak.sql  //在主服务器上备份数据
    ]# scp  /allbak.sql    root@192.168.4.52:/root/   //将备份文件拷贝给从服务器
    mysql> create database 数据库名 ;  //在从服务器上创建与主服务器同名的数据库
    ]# mysql  -uroot –p密码  数据库名  <  /root/allbak.sql //从服务器使用备份文件恢复数据
    ]# vim /root/allbak.sql //在从服务器查看备份文件中的binlog日志信息
    

       4. 在从库上指定主库信息

          

    mysql -uroot –p密码     //管理员root 本机登录
    mysql> show slave status;  //查看状态信息,还不是从服务器
    Empty set (0.00 sec)
    mysql> change   master  to //指定主服务器
        -> master_host=“192.168.4.51”,                 //主服务器ip地址
        -> master_user=“repluser”,                        //主服务器授权用户
        -> master_password=“123qqq…A”,            //主服务器授权用户密码
        -> master_log_file=“master51-bin.000001”,//主服务器日志文件
        -> master_log_pos=441;                  //主服务器日志偏移量
    mysql>  start slave
    mysql> show slave statusG

       5.  开启 start slave 

    四、主从从

      如果是做主从从的话那么需要在即做主库又做从库的服务器的配置文件中加上 log_slave_updates 允许级联复制 

        

    五、复制模式

      

      改为半同步复制

         (1)查看是否允许动态加载模块

            

         (2)命令行加载插件

            

         (3)启用半同步复制

            

         4.配置永久的半同步复制

            

     六、还原  

    /var/lib/mysql/master.info
    /var/lib/mysql/relay-log.info
    /var/lib/mysql/主机名-relay-bin.*   (2个数字结尾的文件和一个index结尾的文件)
    

       删除这四类文件就可以还原从库

       

         

  • 相关阅读:
    EntityFramework Core Raw Query再叙注意事项后续
    EntityFramework Core 1.1有哪些新特性呢?我们需要知道
    ASP.NET Core MVC/WebAPi如何构建路由?
    EntityFramework Core解决并发详解
    EntityFramework Core Raw Query再叙注意事项
    EntityFramework Core Raw SQL
    ASP.NET Core MVC/WebAPi 模型绑定探索
    EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
    EntityFramework Core 1.1是如何创建DbContext实例的呢?
    神马玩意,EntityFramework Core 1.1又更新了?走,赶紧去围观
  • 原文地址:https://www.cnblogs.com/zshBlos/p/13127132.html
Copyright © 2011-2022 走看看