数据保护:工作负载的可恢复性
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.1 电力中断

尽管笔者很讨厌用身边的事情举例,但我们目前确实在经历轮流停电(rolling blackout)的问题。在容易失火的季节里,电力公司会通过轮流停电降低火灾发生率。

这个因素是很容易设计方案来应对的,从数据保护的角度讲,你也应该能把这样的事情处理好。任何一个颇具规模的数据中心,都会有冗余电源与大型发电机。如果你能知道何时停电,那就应该能够应付规模较大的断电事件。

问题在于,如何应对突发的停电。如果在你事先没有得到通知的情况下,数据中心的所有供电都突然断了,那么其中的所有服务器就全都无法运作。这个时候,有些数据可能没有适当地得到保存,因此可能会遭到破坏。结构化的数据基本上应该不会受到破坏,因为数据库有内置的数据完整性检查机制,不会让结构上有问题的数据写到数据库里面。无结构的数据(也叫非结构化的数据)基本上也应该没事,只是停电那一刻正在写入的少数几个文件可能会有点问题。另外,数据库虽然可以通过数据完整性检查机制来保护数据,但是对数据库做介质恢复(media recovery)所花的时间(这种恢复会在第7章讲解),可能比全恢复(full restore,也就是直接恢复所有数据)更长。

上一段里有好几个“应该”,然而“应该”并不等于“肯定”,所以这正是我们要做备份的理由。有时服务器一旦崩溃,里面的数据库就再也救不回来了。有时断电那一刻正在写入的可能是一份相当重要的文件,大家为了这份文件忙碌了好多天。这些都是我们(不能仅依靠数据库自身的机制)必须做备份的理由。