首页 > 代码库 > [写了也记不住系列]数据复制与AA双活(1)

[写了也记不住系列]数据复制与AA双活(1)

写了也记不住,不记更完蛋,边看边查边记吧,就酱紫好了。

最开始有些概念需要弄明白:

1. 什么是RPO?

Wiki: https://en.wikipedia.org/wiki/Recovery_point_objective

A recovery point objective, or “RPO”, is defined by business continuity planning. It is the maximum targeted period in which data might be lost from an IT service due to a major incident.

有中文翻译做恢复点目标,但感觉比较奇怪,明显的直译嘛,信达雅不达标啊有木有,还不如直接就叫做RPO好了。RPO指的是系统故障或灾难发生后,可能发生数据丢失的最大时间段。这个怎么理解呢?举个简单而痛苦的例子,家里的老电脑玩的时间一长就会毫无征兆地自动死机,而我又偏(没)偏(钱)喜(换)欢(新)用它打游戏……所以经常打到一半正在激情澎湃之时,随着啪的一声响,几个小时白搞!一种摔键盘的冲动简直无法控制!每当怒从心头起,恶向胆边生之际,作为一个有修养的胖子总能用冰冰凉的雪碧让自己冷静一下(无偿打广告)。总得想个办法啊,新买电脑是不行了,刚给老婆换了Mac穷的要死,只能自己想办法了,那就制定一个规则吧,每玩十分钟就停下来存档一次,时时告诫自己别贪心,这样下次就算自动关机了,最多也就十分钟白打了,那这十分钟的内容,其实就是系统故障发生后丢失的数据,RPO就是十分钟之前保存游戏时,游戏进程中的那个点!

2. 什么是RTO?

Wiki: https://en.wikipedia.org/wiki/Recovery_time_objective

The recovery time objective (RTO) is the targeted duration of time and a service level within which a business process must be restored after a disaster (or disruption) in order to avoid unacceptable consequences associated with a break in business continuity.

中文译作恢复时间目标,就这么着吧,懒得想谁翻译的了,我也想不出什么更好的名字,还是叫他RTO吧。这货是什么呢,其实简单来讲,就是故障发生之后,多久可以恢复!所以这两货,一个是往前的恢复时间点,一个是往后的修复时间点。还是刚才那个例子,我的RTO完全取决于刚刚打到哪里了,以及我接着玩下去的冲动,如果正高潮着呢,那必须是马上重启继续开搞,如果当寂静降临,突然感觉好空虚,我可能就直接睡觉去了……打个游戏可以随意,商业系统可就不行了……银行系统宕机了,钱进不来也出不去怎么可以!那必须是越快越好!

老子(三声)曾经说过:中庸之道,平衡之术是宇宙间唯一不变的真理!

大的机构啊,公司啊,为了保持业务的连续性,势必希望丢失的数据越少越好,恢复的越快越好!但制约这些的因素可太多了,你总不能每秒都对数据库进行一次全备份吧,你总不能秒速一键恢复吧,设备是要钱的,就算你是传说中的壕壕你也得遵从三次元的规律不是……很多事情道理是相差不多,简单来说,就像我对付老破电脑,用的是十分钟备份一次,我为啥不十秒钟备份一次?因为没必要,备份一次也要时间啊……如果这十秒我的英雄坐在地上发呆,我备份他干嘛?

我好像是个话唠……

以上几段可以直接忽略,想说的就是一点:要达到业务连续性,其实包含一种平衡,在数据尽可能少的丢失的同时,花更少的钱去实现RPO和RTO。

3. 什么是Failover?

Wiki:https://en.wikipedia.org/wiki/Failover

Failover is switching to a redundant or standby computer server, system, hardware component or network upon the failure or abnormal termination of the previously active application, server, system, hardware component, or network. Failover and switchover are essentially the same operation, except that failover is automatic and usually operates without warning, while switchover requires human intervention.

翻译叫故障转移,之前听同事说过SQL Server的Failover,其实这应该是一种技术解决方案吧,包含一系列具体的操作,不多说了。

=====================我是等待case跑完的分割线========================

Active/Active 双活,这名字直接明了,我俩都活着,经常听到什么两地三中心,同城XXX,说白了,就是把原本那种一个数据中心的结构变成多个,用数据复制的方法将几个中心连接起来,好处多多,通过把一些业务迁移到其他站点,查询快了,用户高兴了,最主要的是连宕机也不怕了。既然都是活的,就和以往的备份系统不一样了,以往standby的系统,很多就是个替补的角色,主力不拉肚子是上不去场的,主力从厕所回来了还得给人让地方,说白了就是个场边的饮水机管理员,如果套用到女神屌丝的戏份里就是个备胎。现在的AA,你是主站点能处理事务,我也可以呀,你开着玛莎拉蒂一身阿玛尼赢取白富美,我也可以开着自己的小宝马勾搭七分妹,虽然不是cheno,我也可以喂自己袋盐!新时代的AA实现了共同富裕!为祖国的四化建设加砖添瓦……

又扯远了……就是这么不羁的胖纸……

AA虽说都号称可以unlimited distance,但实际上还是会有传输延迟以及处理事件的,所以在failover中使用AA的配置也是有一定RTO的(其实这是废话),现在能达到几分钟甚至秒钟。

简单总结一下以上的大段:

AA优势在于:

1. 异地灾备

1. 通过将不重要的任务分发到备用站点上,更大限度的利用了硬件资源,同时提高了主站点的性能和使用效率

2. 降低了系统升级维护/意外发生时给外部造成的影响

 

[写了也记不住系列]数据复制与AA双活(1)