精华内容
下载资源
问答
  • MySQL数据库没有增量备份的机制,但它提供了一种主从备份的机制,就是把主数据库的所有的数据同时写到备份数据库中。这篇文章主要介绍了Mysql的双机热备和负载均衡,需要的朋友可以参考下
  • 双机热备技术原理 双机热备技术产生的原因 传统的组网方式如图所示,内部用户和外部用户的交互报文全部通过Firewall A。如果Firewall A出现故障,内部网络中所有以Firewall A作为默认网关的主机与外部网络之间的...

    防火墙 | 双机热备原理

    双机热备技术原理

    双机热备技术产生的原因

    • 传统的组网方式如图所示,内部用户和外部用户的交互报文全部通过Firewall A。如果Firewall A出现故障,内部网络中所有以Firewall A作为默认网关的主机与外部网络之间的通讯将中断,通讯可靠性无法保证。
    • 双机热备份技术的出现改变了可靠性难以保证的尴尬状态,通过在网络出口位置部署两台或多台网关设备,保证了内部网络于外部网络之间的通讯畅通。
    • USG防火墙作为安全设备,一般会部署在需要保护的网络和不受保护的网络之间,即位于业务接口点上。在这种业务点上,如果仅仅使用一台USG防火墙设备,无论其可靠性多高,系统都可能会承受因为单点故障而导致网络中断的风险。为了防止一台设备出现意外故障而导致网络业务中断,可以采用两台防火墙形成双机备份。
      双机热备在路由器上部署
    • 为了避免路由器传统组网所引起的单点故障的发生,通常情况可以采用多条链路的保护机制,依靠动态路由协议进行链路切换。但这种路由协议来进行切换保护的方式存在一定的局限性,当不能使用动态路由协议时,仍然会导致链路中断的问题,因此推出了另一种保护机制VRRP(虚拟路由冗余协议)来进行。采用VRRP的链路保护机制比依赖动态路由协议的广播报文来进行链路切换的时间更短,同时弥补了不能使用动态路由情况下的链路保护。
    • VRRP(Virtual Router Redundancy Protocol)是一种基本的容错协议。
    • 备份组:同一个广播域的一组路由器组织成一个虚拟路由器,备份组中的所有路由器一起,共同提供一个虚拟IP地址,作为内部网络的网关地址。
    • 主(Master)路由器:在同一个备份组中的多个路由器中,只有一台处于活动状态,只有主路由器能转发以虚拟IP地址作为下一跳的报文。
    • 备份(Backup)路由器:在同一个备份组中的多个路由器中,除主路由器外,其他路由器均为备份路由器,处于备份状态。
    • 主路由器通过组播方式定期向备份路由器发送通告报文(HELLO),备份路由器则负责监听通告报文,以此来确定其状态。由于VRRP HELLO报文为组播报文,所以要求备份组中的各路由器通过二层设备相连,即启用VRRP时上下行设备必须具有二层交换功能,否则备份路由器无法收到主路由器发送的HELLO报文。如果组网条件不满足,则不能使用VRRP。

    在这里插入图片描述

    VRRP在多区域防火墙组网中的应用

    • 当防火墙上多个区域需要提供双机备份功能时,需要在一台防火墙上配置多个VRRP备份组。由于USG防火墙是状态防火墙,它要求报文的来回路径通过同一台防火墙。为了满足这个限制条件,就要求在同一台防火墙上的所有VRRP备份组状态保持一致,即需要保证在主防火墙上所有VRRP备份组都是主状态,这样所有报文都将从此防火墙上通过,而另外一台防火墙则充当备份设备。
      VRRP在防火墙应用中存在的缺陷
    • 如图所示,假设USG A和USG B的VRRP状态一致,即USG A的所有接口均为主用状态,USG B的所有接口均为备用状态。
    • 此时,Trust区域的PC1访问Untrust区域的PC2,报文的转发路线为(1)-(2)-(3)-(4)。USG A转发访问报文时,动态生成会话表项。当PC2的返回报文经过(4)-(3)到达USG A时,由于能够命中会话表项,才能再经过(2)-(1)到达PC1,顺利返回。同理,当PC2和DMZ区域的Server也能互访。
      假设USG A和USG B的VRRP状态不一致,例如,当USG B与Trust区域相连的接口为备用状态,但与Untrust区域的接口为主用状态,则PC1的报文通过USG A设备到达PC2后,在USG A上动态生成会话表项。PC2的返回报文通过路线(4)-(9)返回。此时由于USG B上没有相应数据流的会话表项,在没有其他报文过滤规则允许通过的情况下,USG B将丢弃该报文,导致会话中断。

    在这里插入图片描述

    问题产生的原因:报文的转发机制不同。

    • 路由器:每个报文都会查路由表当匹配上后才进行转发,当链路切换后,后续报文不会受到影响,继续进行转发。
    • 状态检测防火墙:如果首包允许通过会建立一条五元组的会话连接,只有命中该会话表项的后续报文(包括返回报文)才能够通过防火墙;如果链路切换后,后续报文找不到正确的表项,会导致业务中断。
    • 注意:当路由器配置NAT后也会存在同样的问题,因为在进行NAT后会形成一个NAT转换后的表项。

    VRRP用于防火墙多区域备份

    • VRRP在防火墙中应用的要求:
    • VRRP状态的一致性
    • 会话表状态备份
    • VGMP提出VRRP管理组的概念,将同一台防火墙上的多个VRRP备份组都加入到一个VRRP管理组,由管理组统一管理所有VRRP备份组。通过统一控制各VRRP备份组状态的切换,来保证管理组内的所有VRRP备份组状态都是一致的。

    VGMP基本原理

    • 当防火墙上的VGMP为Master状态时,组内所有VRRP备份组的状态统一为Master状态,所有报文都将从该防火墙上通过,该防火墙成为主用防火墙。此时另外一台防火墙上对应的VGMP为备状态,该防火墙成为备用防火墙。
    • 通过指定VGMP组的优先级来决定谁将成为主防火墙或备用防火墙。
    • VGMP的优先级会根据组内的VRRP备份组成员的状态动态调整,以此完成两台防火墙的主备倒换。
    • 与VRRP类似,状态为Master的VGMP也会定期向对端发送HELLO报文,通知Slave端本身的运行状态(包括优先级、VRRP成员状态等)。与VRRP不同的是,Slave端收到HELLO报文后,会回应一个ACK消息,该消息中也会携带本身的优先级、VRRP成员状态等。
    • VGMP HELLO报文发送周期缺省为1秒。当Slave端三个HELLO报文周期没有收到对端发送的HELLO报文时,会认为对端出现故障,从而将自己切换到Master状态。

    VGMP组管理

    • 状态一致性管理
      VGMP管理组控制所有的VRRP备份组统一切换。
    • 抢占管理
      当原来出现故障的主设备故障恢复时,其优先级也会恢复,此时可以重新将自己的状态抢占为主。

    HRP基本概念

    • 在双机热备组网中,当主防火墙出现故障时,所有流量都将切换到备防火墙。因为USG防火墙是状态防火墙,如果备防火墙上没有原来主防火墙上的会话表等连接状态数据,则切换到备防火墙的流量将无法通过防火墙,造成现有的连接中断,此时用户必须重新发起连接。
    • HRP模块提供了基础的数据备份机制和传输功能。各个应用模块收集本模块需要备份的数据,提交给HRP模块,HRP模块负责将数据发送到对端防火墙的对应模块,应用模块需要再将HRP模块提交上来的数据进行解析,并加入到防火墙的动态运行数据池中。
      备份内容:要备份的连接状态数据包括TCP/UDP的会话表、ServerMap表项、动态黑名单、NO-PAT表项、ARP表项等。
      备份方向:防火墙上有状态为主的VGMP管理组,向对端备份。
      备份方式:分为三种
      批量备份:在两台设备第一次协商完成后,批量备份所有信息
      实时备份:在设备运行过程中,新建或者刷新的数据实时备份
      配置批量备份需要消耗较多的资源,缺省情况下是关闭的。
      备份通道:一般情况下,在两台设备上直连的端口作为备份通道,有时也称为“心跳线”(VGMP也通过该通道进行通信)。

    HRP会话快速备份

    • 在来回路径不一致的组网中,业务流的来回报文有可能不会从同一个防火墙上经过。为了支持来回路径不一致的组网,防火墙增加了会话快速备份功能。即在首包创建会话时,立即将会话数据打包备份到对端,然后再将报文转发出去,保证了当回应的报文到达对端防火墙时,对端防火墙上已经接收到备份过来的会话数据并加入到会话表中。比如对于TCP三次握手的报文,SYN+ACK报文从另一台设备回来时,由于查不到会话,报文会被丢弃,导致连接建立失败。对于UDP会话,第一个反向报文过来时,在另一台上也会因为查不到会话,需要走包过滤流程,有可能会被丢弃。
    • 通常情况下,对于TCP连接、状态改变的报文命中会话之后立即备份到对端,包括三次握手报文和fin、rst报文;对于UDP会话,快速备份是创建会话之后立即备份到对端,后续报文也进行备份以避免会话信息的老化。

    双机热备基本组网

    在这里插入图片描述

    • 双机热备组网最常见的是防火墙采用路由模式,下行交换机双线上联到防火墙,正常情况下防火墙A作为主,当防火墙A上行或下行链路down掉后,防火墙B自动切换为主设备,交换机流量走向防火墙B。
    展开全文
  • 双机热备原理: 双机热备中,假设主节点(其中一个角色)的二进制日志文件是mysql-bin.01,position是1000,在它宕机重启后,会变成mysql-bin.02,position变为120,其实这一变动就相当于主节点作了写操作。在主节点...

    主从复制:

    数据库接收到请求后, 由主节点的内置客户端执行sql语句,包括"增删改查”,其中"查”是读操作,不涉及主从复制.

    在主节点中有一个二进制日志文件bin.log, 当用户执行写操作(增删改)的sql语句时, 这些语句会被记录到二进制文件bin.log中, 这个二进制文件携带一个指针标识position,默认是120当二进制日志文件的内容发送改变后,指针标识position也会改变。

    从节点中的IO线程会监听主节点中的这个二进制日志文件bin.log, 当IO线程发现position变动后,会获取变动的信息,并将变动的信息写入到中继日志文件relay.log中,另外sql线程也会监听中继日志文件relay.log,一旦发现中继日志文件relay.log发生变化,就会启动sql线程调用从节点的内置客户端更新写操作,从而保证主从节点数据一致。

    注:对于mysql数据库,主节点中的二进制日志文件以及从节点中的io线程、中继日志、sql线程默认都不开启,需要手动开启。

     

    双机热备:

    单机热备:

    单向的主从结构,一旦主节点宕机,从节点顶替,但是主节点无法在自动恢复后重新加入集群(一次性的替换--单机热备)

    双机热备:

    双向的主从结构,任意一台节点宕机,在恢复后都可以加入集群继续提供热备的服务(只要不是2个同时当机,无限循环--双机热备)

    双机热备的原理:

    双机热备中,假设主节点(其中一个角色)的二进制日志文件是mysql-bin.01,position是1000,在它宕机重启后,会变成mysql-bin.02,position变为120,其实这一变动就相当于主节点作了写操作。在主节点宕机之前,从节点监听的是mysql-bin.01,position是1000,在主节点恢复启动后,从节点监听到主节点作了写操作且position变为120,从而启动sql线程调用从节点内部客户端更新写操作,从而与主节点保持一致。

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

    1.双机热备

    对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说。

    从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现故障时,可以由另一台服务器承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。

    从狭义上讲,双机热备就是使用互为备份的两台服务器共同执行同一服务,其中一台主机为工作机(Primary Server),另一台主机为备份主机(Standby Server)。在系统正常情况下,工作机为应用系统提供服务,备份机监视工作机的运行情况(一般是通过心跳诊断,工作机同时也在检测备份机是否正常),当工作机出现异常,不能支持应用系统运营时,备份机主动接管工作机的工作,继续支持关键应用服务,保证系统不间断的运行。双机热备针对的是IT核心服务器、存储、网络路由交换的故障的高可用性解决方案。

    2.为什么要进行双机热备?

    双机热备服务针对的是服务器的故障。服务器的故障可能由各种原因引起,如设备故障、操作系统故障、软件系统故障等等。一般地讲,在技术人员在现场的情况下,恢复服务器正常可能需要10分钟、几小时甚至几天。从实际经验上看,除非是简单地重启服务器(可能隐患仍然存在),否则往往需要几个小时以上。而如果技术人员不在现场,则恢复服务的时间就更长了。

    而对于一些重要系统而言,用户是很难忍受这样长时间的服务中断的。因此,就需要通过双机热备服务,来避免长时间的服务中断,保证系统长期、可靠的服务。

    当然,决定是否使用双机热备,正确的方法是要分析一下系统的重要性以及对服务中断的容忍程度,以些决定是否使用双机热备。换句话说,就是你的用户能容忍多长时间恢复服务,如果服务不能恢复会造成多大的影响。

    在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。而如果没有双机热备,则一旦出现服务器故障,可能会出现几个小时的服务中断,对业务的影响就可能会造成很严重的损失。

    3.双机热备技术与备份的概念区别

    热备份指的是:High Available(HA)即高可用,而备份指的是Backup,即数据备份的一种,这是两种不同的概念,应对的产品也是两种功能上完全不同的产品。热备份主要保障业务的连续性,实现的方法是故障点的转移。而备份,主要目的是为了防止数据丢失,而做的一份拷贝,所以备份强调的是数据恢复而不是应用的故障转移。

    4.双机热备方案的主要两种组建方式

    双机热备方案在进行讨论的时候一定要考虑到很多的因素,其中在各种环境下应用的时候需要格外的引起注意。当然还是有主要的两方式可以借鉴考虑的。

    第一种,双机热备它的工作原理是使用两台服务器,一台作为主服务器(Active),运行应用系统来提供服务。另一台作为备机,安装完全一样的应用系统,但处于待机状态(Standby)。当Active服务器出现故障时,通过软件诊测将Standby机器激活,保证应用在短时间内完成恢复正常使用。

    第二种,双机互备方式则是在双机热备的基础上,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,这种方式实际上是双机热备方案的一种应用。

    但目前使用最多的还是主从模式的双机热备方案。其大致表示可如下图所示:


    目前基于存储共享的双机热备是双机热备方案的最标准方案。对于这种方式,采用两台服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN)。两台服务器可以采用主从、互备等不同的方式。在工作过程中,两台服务器将以下一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担。同时,服务器通过心跳线(目前往往采用建立私有网络的方式)侦测另一台服务器的工作状况。

    下图即为双机热备工作大致状况图,如下图所示:


    双机热备方案当一台服务器出现故障时,另一台服务器根据心跳侦测的情况做出判断,并进行切换,接管服务。对于用户而言,这一过程是全自动的,在很短时间内完成,从而不会对业务造成大的影响。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。

    5.Mysql双机热备实现原理图

    有了上面对双机热备知识的讲解,对其实现原理就有了一个深入了解,那么我们要做mysql数据库的双机热备就清楚明了多了。

    Mysql双机热备系统的拓扑结构如下图所示:

     

     两台服务器通过以太网连接网络,通过网络对外提供服务、相互通信。

    两台服务器之间用com口直接互联,双机热备软件利用这个连接进行双机热备相关的通信、监控和控制等。

    两台服务器通过HBA卡连接FC网络,访问共同的磁盘阵列,实现双机热备系统必要的磁盘。

    6.Mysql双机热备实现的配置

    为了数据的安全,客户有两台机器作为互相备份,当一台机器出现故障时,自动切换到另一台服务器。大部分的软件是通过LifeKeeper来实现的,但是Mysql的双机备份在LifeKeeper里没有实现,所以只能自己手动来实现Mysql的双机备份了。

    其实,Mysql的双机备份有一个很简单的第三方软件可以实现,那就是SQLyog,他有一个功能叫sja(SQLyog Job Agent)可以轻松实现,但是却有一个不足之处,就是Mysql表里必须有一个primary key,即主键值,如果没有,则此表不能用sja来实现。

    第二种方法就是用Mysql自身的Replication机制来实现了。但是这个功能只有Mysql 3.23以上的版本才有。

    这里先说明下,由于我还没有通过实际的应用例子来检测这种双机热备方式是否能过通过,所以我会在我通过实例实现后在续写我后面的关于Mysql双机热备实现的配置部分。现在这部分内容主要讲的还是双机热备份的实现原理和意义。

     

     

     

    ★mysql双机热备的实现  
    接续上一篇关于mysql双机热备实现原理分析,在本文经过深思熟虑和多次用不同的方式实测试后。最后在这篇文章中,用一个小例子来完成mysql双机热备的实现。

    Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份的数据库中。实现mysql数据库的热备份。 

    要想实现双机的热备,首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都高于3.2。还有一个基本的原则就是作为从数据库的数据版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。

    当然要实现mysql双机热备,除了mysql本身自带的REPLICATION功能可以实现外,也可以用Heartbeat这个开源软件来实现。不过本文主要还是讲如何用mysql自带的REPLICATION来实现mysql双机热备的功能。

     

    1. 准备服务器
     

    由于Mysql不同版本之间的(二进制日志)binlog格式可能会不太一样,因此最好的搭配组合是主(Master)服务器的Mysql版本和从(Slave)服务器版本相同或者更低,主服务器的版本肯定不能高于从服务器版本。

    本次我用于测试的两台服务器版本都是Mysql-5.5.17。

    2. Mysql 建立主-从服务器双机热备配置步骤
     

    2.1环境描述
    A服务器(主服务器Master):59.151.15.36

    B服务器(从服务器Slave):218.206.70.146

    主从服务器的Mysql版本皆为5.5.17

    Linux环境下

    将主服务器需要同步的数据库内容进行备份一份,上传到从服务器上,保证始初时两服务器中数据库内容一致。

    不过这里说明下,由于我是利用Mysql在安装后就有的数据库test进行测试的,所以两台服务器里面是没有建立表的,只不分别在test里面建立了同样的一张空表tb_mobile;

    Sql语句如下:

    mysql> create table tb_mobile( mobile VARCHAR(20) comment'手机号码', time timestamp DEFAULT now() comment'时间' );

    2.2 主服务器Master配置
    2.2.1 创建同步用户

    进入mysql操作界面,在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICATION SLAVE权限。因为从mysql版本3.2以后就可以通过REPLICATION对其进行双机热备的功能操作。

    操作指令如下:

    mysql> grant replication slave on *.* to 'replicate'@'218.206.70.146' identified by '123456';

    mysql> flush privileges;

    创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用replicat帐户对主服务器(Master)数据库进行访问下,看下是否能连接成功。

    在从服务器(Slave)上输入如下指令:

    [root@YD146 ~]# mysql -h59.151.15.36 -ureplicate -p123456

    如果出现下面的结果,则表示能登录成功,说明可以对这两台服务器进行双机热备进行操作。

    2.2.2 修改mysql配置文件

    如果上面的准备工作做好,那边我们就可以进行对mysql配置文件进行修改了,首先找到mysql配置所有在目录,一般在安装好mysql服务后,都会将配置文件复制一一份出来放到/ect目录下面,并且配置文件命名为:my.cnf。即配置文件准确目录为/etc/my.cnf

    找到配置文件my.cnf打开后,在[mysqld]下修改即可:

    [mysqld]

    server-id = 1

    log-bin=mysql-bin                //其中这两行是本来就有的,可以不用动,添加下面两行即可

    binlog-do-db = test

    binlog-ignore-db = mysql

    2.2.3 重启mysql服务

    修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。

    2.2.4 查看主服务器状态

    进入mysql服务后,可通过指令查看Master状态,输入如下指令:

    注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。

    注:这里使用了锁表,目的是为了产生环境中不让进新的数据,好让从服务器定位同步位置,初次同步完成后,记得解锁。

    2.3 从服务器Slave配置
    2.3.1修改配置文件

    因为这里面是以主-从方式实现mysql双机热备的,所以在从服务器就不用在建立同步帐户了,直接打开配置文件my.cnf进行修改即可,道理还是同修改主服务器上的一样,只不过需要修改的参数不一样而已。如下:

    [mysqld]

    server-id = 2

    log-bin=mysql-bin

    replicate-do-db = test

    replicate-ignore-db = mysql,information_schema,performance_schema

    2.3.2重启mysql服务

    修改完配置文件后,保存后,重启一下mysql服务,如果成功则没问题。


     2.3.3用change mster 语句指定同步位置

    这步是最关键的一步了,在进入mysql操作界面后,输入如下指令:

    mysql>stop slave;          //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。

    mysql>change master to

    >master_host='59.151.15.36',master_user='replicate',master_password='123456',

    > master_log_file=' mysql-bin.000016 ',master_log_pos=107;

    注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

    遇到的问题,如果按上面步骤之后还出现如下情况:


     则要重新设置slave。指令如下

    mysql>stop slave;

    mysql>reset slave;

    之后停止slave线程重新开始。成功后,则可以开启slave线程了。

    mysql>start slave;

    2.3.4查看从服务器(Slave)状态

    用如下指令进行查看

    mysql> show slave status\G;

    查看下面两项值均为Yes,即表示设置从服务器成功。

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    2.4 测试同步
    之前开始已经说过了在数据库test只有一个表tb_mobile没有数据,我们可以先查看下两服务器的数据库是否有数据:

    Master:59.151.15.36


     Slave:218.206.70.146


     好了,现在可以在Master服务器中插入数据看下是否能同步。

    Master:59.151.15.36


    Slave:218.206.70.146


     可以从上面两个截图上看出,在Master服务器上进行插入的数据在Slave服务器可以查到,这就表示双机热备配置成功了。

    3. Mysql 建立主-主服务器双机热备配置步骤
    服务器还是用回现在这两台服务器

    3.1创建同步用户

    同时在主从服务器建立一个连接帐户,该帐户必须授予REPLIATION SLAVE权限。这里因为服务器A和服务器B互为主从,所以都要分别建立一个同步用户。

    服务器A:

    mysql> grant replication slave on *.* to 'replicate'@'218.206.70.146' identified by '123456';

    mysql> flush privileges;

    服务器B:

    mysql> grant replication slave on *.* to 'replicate'@'59.151.15.36' identified by '123456';

    mysql> flush privileges;

    3.2修改配置文件my.cnf

    服务器A

    [mysqld]

           server-id = 1

    log-bin=mysql-bin 

    binlog-do-db = test

           binlog-ignore-db = mysql

    #主-主形式需要多添加的部分

           log-slave-updates

           sync_binlog = 1

           auto_increment_offset = 1

           auto_increment_increment = 2

           replicate-do-db = test

           replicate-ignore-db = mysql,information_schema

    服务器B:

    [mysqld]

    server-id = 2

    log-bin=mysql-bin 

    master-slave need

           replicate-do-db = test

           replicate-ignore-db = mysql,information_schema,performance_schema

          

    #主-主形式需要多添加的部分

           binlog-do-db = test

           binlog-ignore-db = mysql

           log-slave-updates

           sync_binlog = 1

           auto_increment_offset = 2

           auto_increment_increment = 2

    3.3分别重启A服务器和B服务器上的mysql服务

    重启服务器方式和上面的一样,这里就不做讲解了。

    3.4分别查A服务器和B服务器作为主服务器的状态

    服务器A:

     服务器B:


     3.5分别在A服务器和B服务器上用change master to 指定同步位置

    服务器A:

    mysql>change master to

    >master_host='218.206.70.146',master_user='replicate',master_password='123456',

    > master_log_file=' mysql-bin.000011 ',master_log_pos=497;

    服务器B:

    mysql>change master to

    >master_host='59.151.15.36',master_user='replicate',master_password='123456',

    > master_log_file=' mysql-bin.000016 ',master_log_pos=107;

    3.6 分别在A和B服务器上重启从服务线程

    mysql>start slave;

    3.7 分别在A和B服务器上查看从服务器状态

    mysql>show slave status\G;

    查看下面两项值均为Yes,即表示设置从服务器成功。

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    3.8 测试主-主同步例子

    测试服务器A:

    在服务器A上插入一条语句如下图所示:

     之后在服务器B上查看是否同步如下图所示:

     测试服务器B:

    在服务器B上插入一条语句如下图所示:


     然后在从服务器A上查看是否有同步数据如下图所示:


     最后从结果可以看出主-主形式的双机热备是能成功实现的。

    4. 配置参数说明
    Server-id

    ID值唯一的标识了复制群集中的主从服务器,因此它们必须各不相同。Master_id必须为1到232-1之间的一个正整数值,slave_id值必须为2到232-1之间的一个正整数值。

    Log-bin

    表示打开binlog,打开该选项才可以通过I/O写到Slave的relay-log,也是可以进行replication的前提。

    Binlog-do-db

    表示需要记录二进制日志的数据库。如果有多个数据可以用逗号分隔,或者使用多个binlog-do-dg选项。

    Binglog-ingore-db

    表示不需要记录二进制日志的数据库,如果有多个数据库可用逗号分隔,或者使用多binglog-ignore-db选项。

    Replicate-do-db

    表示需要同步的数据库,如果有多个数据可用逗号分隔,或者使用多个replicate-do-db选项。

    Replicate-ignore-db

    表示不需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项。

    Master-connect-retry

    master-connect-retry=n表示从服务器与主服务器的连接没有成功,则等待n秒(s)后再进行管理方式(默认设置是60s)。如果从服务器存在mater.info文件,它将忽略些选项。

    Log-slave-updates

    配置从库上的更新操作是否写入二进制文件,如果这台从库,还要做其他从库的主库,那么就需要打这个参数,以便从库的从库能够进行日志同步。

    Slave-skip-errors

    在复制过程,由于各种原因导致binglo中的sql出错,默认情况下,从库会停止复制,要用户介入。可以设置slave-skip-errors来定义错误号,如果复制过程中遇到的错误是定义的错误号,便可以路过。如果从库是用来做备份,设置这个参数会存在数据不一致,不要使用。如果是分担主库的查询压力,可以考虑。

    Sync_binlog=1 Or N

    Sync_binlog的默认值是0,这种模式下,MySQL不会同步到磁盘中去。这样的话,Mysql依赖操作系统来刷新二进制日志binary log,就像操作系统刷新其他文件的机制一样。因此如果操作系统或机器(不仅仅是Mysql服务器)崩溃,有可能binlog中最后的语句丢失了。要想防止这种情况,可以使用sync_binlog全局变量,使binlog在每N次binlog写入后与硬盘同步。当sync_binlog变量设置为1是最安全的,因为在crash崩溃的情况下,你的二进制日志binary log只有可能丢失最多一个语句或者一个事务。但是,这也是最慢的一种方式(除非磁盘有使用带蓄电池后备电源的缓存cache,使得同步到磁盘的操作非常快)。

    即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。如果使用InnoDB表,Mysql服务器处理COMMIT语句,它将整个事务写入binlog并将事务提交到InnoDB中。如果在两次操作之间出现崩溃,重启时,事务被InnoDB回滚,但仍然存在binlog中。可以用-innodb-safe-binlog选项来增加InnoDB表内容和binlog之间的一致性。(注释:在Mysql 5.1版本中不需要-innodb-safe-binlog;由于引入了XA事务支持,该选项作废了),该选项可以提供更大程度的安全,使每个事务的binlog(sync_binlog=1)和(默认情况为真)InnoDB日志与硬盘同步,该选项的效果是崩溃后重启时,在滚回事务后,Mysql服务器从binlog剪切回滚的InnoDB事务。这样可以确保binlog反馈InnoDB表的确切数据等,并使从服务器保持与主服务器保持同步(不接收回滚的语句)。

    Auto_increment_offset和Auto_increment_increment

    Auto_increment_increment和auto_increment_offset用于主-主服务器(master-to-master)复制,并可以用来控制AUTO_INCREMENT列的操作。两个变量均可以设置为全局或局部变量,并且假定每个值都可以为1到65,535之间的整数值。将其中一个变量设置为0会使该变量为1。

    这两个变量影响AUTO_INCREMENT列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset确定AUTO_INCREMENT列值的起点。

    如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值被忽略。例如:表内已有一些数据,就会用现在已有的最大自增值做为初始值。

    展开全文
  • Keepalived双机热备原理与基础配置

    千次阅读 2018-08-28 22:12:28
    Keepalived的热备方式 基于VRRP热备份协议,以软件的方式实现Linux服务器的多机热备份功能。是通过共有的虚拟IP地址(VIP)对外提供服务;每个热备组内只能有一个服务器提供服务,其他服务器处于冗余状态,若当前...

    Keepalived的热备方式
    基于VRRP热备份协议,以软件的方式实现Linux服务器的多机热备份功能。是通过共有的虚拟IP地址(VIP)对外提供服务;每个热备组内只能有一个服务器提供服务,其他服务器处于冗余状态,若当前服务器失效后,则其他处于冗余状态的服务器将接替他的工作(优先级高的),以继续提供服务。
    ## 漂移地址 ##
    虚拟IP地址可以在热备组内的服务器间进行转移,所以也称为漂移IP地址;使用Keepalived时,漂移地址的实现不需要手动建立虚拟接口配置文件,而是由Keepalived根据配置文件自动管理。

    Keepalived的故障转移

    Keepalived可作为服务器的故障切换,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(不管是web、FTP、Mail、还是SSH、DNS)。
    下面介绍Keepalived的配置:
    实验环境:
    两台centos7服务器(一主一备)

    1.首先需要安装软件包(软件包需从网上下载)
    yum -y install keepalived
    为了方便使用,可将Keepalived服务设置为开机启动
    systemctl enable keepalived
    2.配置主服务器
    安装Keepalived服务后,编辑Keepalived主配置文件:/etc/keepalived/keepalived.conf
    在配置文件中,修改”global_defs{….}”区域可设置全局参数;修改“vrrp_instance 实例名称 {….}”区域可指定VRRP热备参数;
    注释文字以”!”符号开头
    修改配置文件:
    vim /etc/keepalived/keepalived.conf
    修改内容如下:
    glabal_defs {
    route_id R1 //服务器名称
    }
    vrrp-instance VI_1 {
    state MASTER //确定热备类型(MASTER为主,BUCKUP为备)
    interface ens33 //热备份接口
    virtal_router_id 1 //热备份组号
    priority 100 //优先级(高的为主)
    advert_int 1 //Hello time
    }
    authentication {
    auth_type PASS
    auth_pass 12345 //密码认证(主备相同)
    }
    virtual_ipaddress {
    192.168.18.254 //(VIP地址)
    }

    3. 修改后启动服务
    systemctl start keepalived
    实际状态为MASTER的主服务器将为ens33接口自动添加VIP地址,通过:
    ip add show dev ens33 可查看。

    4.配置备份服务器
    在同一个Keepalived热备组内,所有服务器的Keepalived配置文件基本相同,所以在配置备份服务器时,可以参考主服务器的配置文件,只修改服务器名称、热备状态、优先级就可以了。
    配置步骤与主基本相同:
    安装软件包
    yum -y install keepalived
    编辑主配置文件
    vim /etc/keepalived/keepalived.conf
    glabal_defs {
    route_id R2 //服务器名称
    }
    vrrp-instance VI_1 {
    state BACKUP //确定热备类型(MASTER为主,BUCKUP为备)
    interface ens33 //热备份接口
    virtal_router_id 1 //热备份组号
    priority 30 //优先级(高的为主)
    advert_int 1 //Hello time
    }
    authentication {
    auth_type PASS
    auth_pass 12345 //密码认证(主备相同)
    }
    virtual_ipaddress {
    192.168.18.254 //(VIP地址)
    }

    5.编辑后启动服务:
    systemctl start keepalived
    启动后主服务器仍然在线,VIP地址实际上仍然由主服务器控制,其他服务器处于备份状态,因此在备份服务器中将不会为ens33接口添加VIP地址
    ip address show dev ens33

    这样双机热备就实现了,
    6.测试
    可以通过一个简单的方法验证:使用客户机长pingVIP地址,然后将主服务器关闭,查看是否能通;
    通过测试发现:当主服务器关闭后ping测试在中断一次后即恢复正常,说明备份服务器夺回了VIP地址的控制权,服务恢复正常运行。

    通过查看R2(之前的备份服务器),发现它以成为主服务器

    这样Keepalived就算成功实现了。

    展开全文
  • linux下基于keepalived的mysql双机热备实现方案,本文档用于实现mysql数据库双机热备灾备方案,在系统部署过程中还需仔细认真,有时候一个小小的配置错误就可能导致部署失败,本人在此套技术验证过程中也踩了不少坑...
  • 这份文档是我在实际工作当中总结而来,希望能帮助在数据库双机热备方面有困惑的开发人员。
  • 双机热备技术一、双机热备协议架构(一)VRRP1、VRRP状态机2、VRRP状态切换3、VRRP的不足(二)VGMP1. 基本原理1)VGMP产生 一、双机热备协议架构 (一)VRRP 1、VRRP状态机   加入VRRP备份组的接口有三种状态,...
  • 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说。 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一台服务器出现...
  • 一、何为双机热备? 所谓的双机热备无非就是以7X24小时不中断的为企业提供服务为目的,各种双机热备的技术很多,那么华为使用了这个共有协议的热备协议——VRRP。 华为的双机热备是通过部署两台或多台防火墙实现热备...
  • 一、双机热备是什么? 二、什么是VRRP? 三、VRRP的两种角色 四、VRRP的三个状态机 五、VRRP选举Master路由器和Backup路由器的流程 六、通过VGMP实现VRRP备份组的统一管理 七、双机热备的配置 八、总结 一、双机...
  • 双机热备是什么意思?为什么要用双机热备双机热备有哪些种类?包含了哪些双机热备软件?下面就来简单地说说。 什么是双机热备? 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。...
  • 双机热备原理

    千次阅读 2018-05-26 09:38:00
    负载均衡的原理 》中讲到,张大胖在Bill的指导下,成功地开发了一个四层的负载均衡软件, 把流量“均匀地”分发到了后面的几个服务器中, 获得了老板的1000块钱奖励。 但是张大胖心中隐隐不安,总觉得系统埋着一颗...
  • 双机热备是什么意思?为什么要用双机热备双机热备有哪些种类?包含了哪些双机热备软件?下面就来简单地说说。什么是双机热备?从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务。当一...
  • 在这个高度信息化的IT时代,企业的生产系统、...一、Keepalived双机热备基础知识 1.Keepalived概述 Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能——判断LVS负载调...
  • 双机热备技术

    2021-09-06 21:30:30
    双机热备技术 一、双机热备概述 ...二、双机热备基本原理 1、双机热备协议架构 (1)VRRP <1>作用 ① 负责单个接口的故障检测和流量引导。每个VRRP备份组拥有一个 虚拟IP地址 ,作为网络的网关地址;
  • 负载均衡原理双机热备

    千次阅读 2019-07-04 11:35:53
    本文先介绍一下负载均衡的原理。 如果把系统部署到几个服务器上,用户的访问请求就可以分散到各个服务器,那单台服务器的压力就小得多了。但带来的问题是:机器多了,每个机器一个IP, 用户(客户端)可能就迷糊了...
  • ...2.前面的双机热备原理心跳检测机制其实就是keepalive这东西。可以去官网下载,只能下载Linux环境下,没有windows环境的。如图:    心跳检测原理图,如下图所示:  
  • Mysql 8.0主从同步双机热备配置教程

    千次阅读 2021-11-12 10:16:27
    MySQL主备的基本原理 在状态1中,客户端的读写都直接访问节点A,而节点B是A的备库,只是将A的更新都同步过来,到本地执行。这样可以保持节点B和A的数据是相同的。当需要切换的时候,就切成状态2。这时候客户端读写...
  •  RoseHA双机系统的两台服务器(主机)都与磁盘阵列(共享存储)系统直接连接,用户的操作系统、应用软件和RoseHA高可用软件分别安装在两台主机上,数据库等共享数据存放在存储系统上,两台主机之间通过私用心跳网络...
  • 双机热备

    2020-12-18 08:12:58
    1双机热备 双机热备是一种概念,各种设备均可以采用此概念进行部署,比如三层交换机 、路由器、防火墙、服务器等。如果仅部署一台设备,难免会有单点故障的风险,所以部署两台,一主一备较为保险,一台坏了,另一台...
  • 双机热备方案设计

    千次阅读 2019-06-04 16:42:07
    1什么是双机热备方案  双机热备就是使用互为备份的两台服务器共同执行同一服务,其中一台主机为工作机(Primary Server),另一台主机为备份机(Standby Server),保证系统不间断的运行。双机热备软件就是实现...
  • 防火墙双机热备

    2021-03-17 23:27:35
    防火墙一大特色功能――双机热备。 1、双机部署提升网络可靠性 随着移动办公、网上购物、即时通讯、互联网金融、互联网教育等业务蓬勃发展,网络承载的业务越来越多,越来越重要。所以如何保证网络的不间断传输成为...
  • Keepalived和nginx实现负载和双机热备原理
  • pacemaker Pacemaker是一个集群管理器。它利用首选集群基础设施(OpenAIS 或heartbeat)提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。 ...
  • 用Nginx实现双机热备,实现高可用,解决Nginx服务器的单点故障问题。架构原理1、双机均正常工作。用户通过域名访问到DNS域名解析时,通过轮询的方式计算虚拟IP。获取对应的nginx服务器。进行请求转发操作2、当...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,921
精华内容 1,968
关键字:

双机热备原理