双机热备解决方案(mysql双机热备方案)

数据库双机热备有两种典型的方式,一种是比较标准的,两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网SAN),并且安装双机软件,实现双机热备,称为共享方式。另一种方式是通过纯软件的方式,一般称为镜像的方式…

大家好,又见面了,我是你们的朋友全栈君。

数据库双机热备有两种典型的方式,一种是比较标准的,两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网
SAN
),并且安装双机软件,实现双机热备,称为共享方式。另一种方式是通过纯软件的方式,一般称为镜像的方式(
Mirror
)。[@more@]

对于共享方式,数据库放在共享的存储设备上。当一台服务器提供服务时,直接在存储设备上进行读写。而当系统切换后,另一台服务器也同样读取该存储设备上的数据。

 对于纯软件的方式,通过镜像软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。

 纯软件方式有两大优点:首先节约投资,不需购买昂贵的磁盘阵列;其次不受距离的限制,两台服务器不需受SCSI电缆的长度限制(光纤通道的磁盘阵列也不受距离限制,但投资会大一些)。

 另一方面,纯软件方式(镜像方式)相应也有三大缺点:

 1. 对写入性能的影响。由于要对数据进行实时复制,就必然会有一个过程。镜像软件可以以两种方式处理这个过程,一种是同步方式,即只有在复制也完成后,原来的操作(比如事务提交)才算成功。另一种是异步方式,只要源数据操作完成,就算成功,复制工作在其后进行。前一种方式对于数据库的写入的速度会有一定的影响(很小的影响),而后一种方式则在切换时有可能会产生数据的丢失。

 2. 数据同步过程的影响。当任何一台服务器重新启动(不论是正常切换、非正常启动或是例行维护)后,都需要对两台服务器上的数据进行同步。这一过程是自动进行的,有些软件可以以差分(同步差异部分)的方式进行,但需购买单独模块,也有些软件是要重新复制全部数据。在数据量较大时,这一过程不仅对性能存在影响,也同时造成了一个双机热备的不可用时间缺口。

 3. 可靠性。从理论上,镜像方式与共享存储的效果是一样的。但也有些用户及集成商会感觉这一方式存在着一定的风险。

 从方案选择的角度,建议在进行双机热备时,如果投资非常紧张且数据量小、服务及数据不是很关键写入的频率不是很频繁且响应速度要求不是很高,也可以将镜像方式作为一种选择。否则,还是应尽可能使用采用共享的存储设备(如磁盘阵列)的方式。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/43132/viewspace-804950/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/43132/viewspace-804950/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126887.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android之布局详解

    Android之布局详解四种基本布局

    2022年6月2日
    57
  • Intercooler.js – 让 AJAX 像锚标签一样简单

    Intercooler.js – 让 AJAX 像锚标签一样简单

    2021年9月4日
    55
  • 分布式熔断机制_服务器熔断是什么意思啊

    分布式熔断机制_服务器熔断是什么意思啊#服务熔断-“熔断器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器(hystrix)的故障监控,某个异常条件被触发,直接熔断整个服务。向调用方法返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,就保证了服务调用方的线程不会被长时间占用,避免故障在分布式系统中蔓延,乃至雪崩。如果目标服务情况好转则恢复调用。服务熔断是解决服务雪崩的重要手段。#服务熔断图示…

    2022年8月31日
    4
  • UITextView 手势触发 TouchesBegan 函数

    UITextView 手势触发 TouchesBegan 函数前几天做了个手势可以改变文章字体大小的功能。开始,在当前view中添加一个UITextView,然后添加-(void)touchesBegan:(NSSet*)toucheswithEvent:(UIEvent*)event函数,可怎么也触发不了,在网上找了些资料,说得也不是很清楚,今天把它总结下。       首先说原因吧,你把UITextView加载到当前view上,

    2022年7月25日
    9
  • QueryInterface IID_IDispatch

    QueryInterface IID_IDispatchSTDMETHODIMPCMathFactory::QueryInterface(REFIIDriid,void**ppv){ *ppv=NULL; if(riid==IID_IUnknown||riid==IID_IClassFactory)//这儿不改变也可以! //if(riid==IID_IUnknown||riid==IID_IClassFactory||riid=

    2022年7月21日
    14
  • android 创建数组

    android 创建数组一:privateString[]data=newString[]{“Hello”,”jike”,”world”};二:创建数组对象:privateCellData[]data=newCellData[]{newCellData(“jike”,”world”),newCellData(“title”,”content”)};publiccl…

    2022年6月1日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号