zoukankan      html  css  js  c++  java
  • mysql 主从同步 实现增量备份

    数据库复制 replication 的实现原理

    1:主服务器凡运行语句,都产生一个二进制日志 binlog

    2:从服务器不断读取主服务器的binlog

    3:从主服务读取到的binlog,转换为自身可执行的relaylog,

    4:执行relaylog 

    具体实施

    本人虚拟机下有两台linux,IP为199 200

    1: 200做从服务器

    2: 199mysql,做为主服务器.

    3: 保证主从3306端口互通.

    4: 配置主服务器,打开binlog

    上面就是实现增量备份的思路。下面我具体配置一下

    一 、配置二进制日志

    server_id = 199
    #开启二进制日志
    log-bin=mysql-bin
    log-bin-index=master-bin.index
    #指定日志格式 位置、语句 和自动选择(mixed)
    
    
     binlog_format=mixed

    主服务器 配置好,重启mysql

    进入mysql   输入  show master status;    出现下图的说明日志文件配好了。

     二、授权账号

         二进制文件是数据,也就是获得了二进制文件就获得了所以数据,那么问题来了,这么重要的东西要是谁都能访问,那不坏菜了。。。。。所以主服务器 要给从服务器设置账号,指定那些才能访问。

      授权给客户端  那些库和表 用户名为root 密码为root的账号在ip为192.168.1.200 起作用

      grant replication client, replication slave on *.*  to 'root'@'192.168.1.200' indentified by 'root' ;      

    三 从服务器

    
    

      server_id = 200

      relay_log = mysql-relay-bin

      log_slave_updates = 1

     read_only         = 1

    server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自己的二进制日志
    有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。所以,尽量使用read_only,它防止改变数据(除了特殊的线程)。

    但是,read_only并是很实用,特别是那些需要在slave上创建表的应用。

    从服务器 从启mysql

    在mysql 执行  告诉从服务器 从哪个ip 用那个用户名 密码   那个日志文件 从什么位置   开始监听复制

    change master to master_host='192.168.1.199',master_user='root',master_password='root',
     master_log_file='mysql-bin.000001',master_log_pos=154;

     

    Start slave;   启动备

    show  slave status; 查看从服务器状态

    reset slave ;  重置slave状态.

    stop slave; 暂停slave状态;

  • 相关阅读:
    《精益创业 埃里克莱斯》精读 读书笔记总结----《创业必读书第6本》--创业第二关跑通业务:如何快速完成从0到1的业务验证的第1本
    deque STL 深入剖析 TODO
    leetcode 901 股票价格跨度
    「学习笔记」多项式 I
    专题讨论【索引失效】
    手撕代码和笔试题
    如何通过科学的方法来在win10运用office 技术
    js es6 map函数
    数据分析中的'疑难杂症'小结(一)
    吴恩达机器学习作业1- 线性回归作业(python实现)
  • 原文地址:https://www.cnblogs.com/jianz/p/6118963.html
Copyright © 2011-2022 走看看