说明

机器A:(172.16.1.251),机器B:(172.16.1.252)

两台机器都创建数据库web:create database hello default charset utf8;

实现步骤

双向热备份:首先设置A上数据库为master,B上的备份数据库为slave;然后配置B上的数据库为master,A上数据库为slave

(1)修改 A和B上的 配置文件my.cnf,加入以下内容

  1. server-id=7      # 主ID,与从ID不能相同
  2. log-bin=mysql-0-bin     #设定生成log文件名
  3. binlog-do-db=web   #设置同步数据库名
  4. binlog-ignore-db=mysql   #忽略同步mysql数据库
  5. replicate-do-db=web    # 两处web是一致的
  6. replicate-ignore-db=mysql
  7. auto-increment-increment=10      # 插入id增长间隔
  8. auto-increment-offset=1        #从1开始增长
  1. server-id=17      # 主ID,与从ID不能相同
  2. log-bin=mysql-1-bin     #设定生成log文件名
  3. binlog-do-db=web   #设置同步数据库名
  4. binlog-ignore-db=mysql   #忽略同步mysql数据库
  5. replicate-do-db=web   # 两处web是一致的
  6. replicate-ignore-db=mysql
  7. auto-increment-increment=10      # 插入id增长间隔
  8. auto-increment-offset=2        #从2开始增长

(2)重启A和B上的mysql,两台机器上分别创建一个mysql用户用来同步

  1. CREATE USER 'usera'@'172.16.1.252' IDENTIFIED BY '123456';   //usera为账号,172.16.1.252表示账号只能从指定id也就是B机器访问,最后123456是密码,机器A上执行
  2. CREATE USER 'usera'@'172.16.1.251' IDENTIFIED BY '123456';   //机器B上执行

(3)设置用户权限

  1. grant replication slave,reload on *.* to 'usera'@'172.16.1.252' IDENTIFIED BY '123456';  //  机器A上执行
  2. grant replication slave,reload on *.* to 'usera'@'172.16.1.251' IDENTIFIED BY '123456';  // 机器B上执行

(4)设置A和B的主从联系,B和A的主从联系

//机器A上执行,A为slave

  1. mysql> change master to
  2. -> master_host = '172.16.1.252',
  3. -> master_port = 3306,
  4. -> master_user = 'usera',
  5. -> master_password = '123456';

//机器B上执行,B为slave

  1. mysql> change master to
  2. -> master_host = '172.16.1.251',
  3. -> master_port = 3306,
  4. -> master_user = 'usera',
  5. -> master_password = '123456';

因为是双向备份,所以配置中很多操作是重复的,只是主从顺序不一致,一个正向一个反向。

双向备份说明

  • 主库必须启用Bin log,主库和从库必须有唯一的Server Id
  • 从库必须清楚了解从主库的哪一个Bin log文件的哪一个偏移位置起开始复制
  • 从库可以从主库只复制指定的数据库,或者数据库的某些数据表
  • 主库和从库的数据库名称可以不一样,不过还是推荐使用一样的名称
  • 主库和从库的MySQL版本需保持一致

从MySQL3.23.15以后,MySQL支持单向的异步复制。也就是说,1台MySQL服务器充当Master(主库),1台或多台MySQL服务器充当Slaves(从库),数据从Master向Slaves进行异步复制。注意,这种复制是异步的,有别于MySQL的同步复制实现(这种实现称做MySQL集群,MySQL
Cluster)。
当主库有更新的时候,主库会把更新操作的SQL写入二进制日志(Bin
log),并维护一个二进制日志文件的索引,以便于日志文件轮回(Rotate)。在从库启动异步复制的时候,从库会开启两个I/O线程,其中一个线程连接主库,要求主库把二进制日志的变化部分传给从库,并把传回的日志写入本地磁盘。另一个线程则负责读取本地写入的二进制日志,并在本地执行,以反映出这种变化。较老的版本在复制的时候只启用一个I/O线程,实现这两部分的功能。

mysql双机热备实现的更多相关文章

  1. mysql双机热备的实现

    转:http://blog.csdn.net/qq394829044/article/details/53203645 Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 ...

  2. (转)mysql双机热备的实现

    mysql双机热备的实现 原文:http://www.zjian.me/web/php/mysql%E5%8F%8C%E6%9C%BA%E7%83%AD%E5%A4%87%E7%9A%84%E5%AE ...

  3. Mysql双机热备--预备知识

    1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务.当一台服务器 ...

  4. mysql 主从复制(mysql双机热备的实现)

    转:http://blog.csdn.net/qq394829044/article/details/53203645 Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 ...

  5. MySQL双机热备环境搭建

    一.    前期准备 准备两台服务器(电脑),接入到同一局域网中,能够使双方可以ping通: 安装MySQL数据库,具体安装方法网上很全面,但是安装的版本需保持一致: 服务器IP地址设置. l  A服 ...

  6. CentOS系统MySQL双机热备配置

    1  概述 在集成项目中需要应对不同环境下的安装配置,主流操作系统大致可以分为三种:Linux.Windows以及UNIX.其中Linux备受青睐的主要原因有两个: 首先,Linux作为自由软件有两个 ...

  7. windows下使用mysql双机热备功能

    一. 准备工作 1. 准备两台服务器(电脑),接入局域网中,使互相ping得通对方 2. 两台服务器都安装mysql-server-5.1,必须保证mysql的版本一致 3. 假设,服务器A:192. ...

  8. mysql双机热备的配置步骤

    设置双机热备: 首先要在两台机器上建立同步用户: grant replication slave on *.* to 'repdcs'@'192.168.21.39' identified by '1 ...

  9. Mysql双机热备配置(超详细多图版)

    一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...

  10. Centos7 Mysql 双机热备实现数据库高可用

    mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器. 双机热备的条件是双机mysql版本必须一致. 服务器分 ...

随机推荐

  1. Spring注解之@Lazy注解,源码分析和总结

    一 关于延迟加载的问题,有次和大神讨论他会不会直接或间接影响其他类.spring的好处就是文档都在代码里,网上百度大多是无用功. 不如,直接看源码.所以把当时源码分析的思路丢上来一波. 二 源码分析 ...

  2. 记DotNetBar换肤

    界面: comboBoxEx  选择皮肤 buttonX 测试指定皮肤 styleManager 后台代码: 初始化 : this.EnableGlass = false; 设置窗体效果 不设置 依然 ...

  3. Xcode Ghost

    Xcode Ghost,是一种手机病毒,主要通过非官方下载的 Xcode 传播,能够在开发过程中通过 CoreService 库文件进行感染,使编译出的 App 被注入第三方的代码,向指定网站上传用户 ...

  4. Ecshop如何解决Deprecated: preg_replace()报错

    今天安装Ecshop后,运行出现各种问题,其中 Deprecated: preg_replace() 之类的报错最多,下面贴出解决方案: 错误原因: preg_replace() 函数中用到的修饰符 ...

  5. python_3 :用python微信跳一跳

    [学习使用他人代码] 2018年01月21日 19:29:02 独行侠的守望 阅读数:319更多 个人分类: Python 编辑 版权声明:本文为博主原创文章,转载请注明文章链接. https://b ...

  6. Java爬虫初体验

    年关将近,工作上该完成的都差不多了,上午闲着就接触学习了一下爬虫,抽空还把正则表达式复习了,Java的Regex和JS上还是有区别的,JS上的"\w"Java得写成"\\ ...

  7. 【经验总结】datagrid锁定列后重新加载时出现错位问题的解决

    [问题描述]:有时候datagrid设置了锁定列后,在重新加载datagrid数据时,出现锁定列与非锁定列数据错位的问题,如图: [问题分析]:查看css样式我们发现,锁定的列和非锁定的列属于两个不同 ...

  8. 9.26<立方网>技术笔试题

    该公司题目感觉不难,算法设计有三道大题. 1.设有m和n两个整数,求它们的最大公约数和最小公倍数. 2.猴子分桃问题,每次分桃多一个,共有五个猴子,问最少有多少个桃子. 3.关于java的题目,有A, ...

  9. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:10.项目介绍之架构(2)

    欢迎阅读我的开源项目<迷你微信>服务器与<迷你微信>客户端 前言 前面我们讲到<迷你微信>服务器端的主架构,现在我们来描述一下它的模块详细信息. 网络模块 从上图我 ...

  10. 卸载VS2013 2015

    我有两个VS,特别讨厌,每当使用window程序删除时候,就出现 停止工作! 然后从知乎上发现了这个 https://github.com/Microsoft/VisualStudioUninstal ...