您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 数据库 > 正文

运维人员如何建立有效的备份系统

发表于:2020-03-19 作者:爱码农 来源:今日头条

为什么要备份数据库?

我认为这个问题的答案已经很明显了。因此,我不想回答这个问题,而是想回答另一个问题:通过数据库备份可以预防哪些风险?实际上,自产生以来,数据始终伴随着自然灾害,电源故障,网络故障,硬件故障,软件故障和人为故障导致数据丢失的风险。

关键是,即使您的数据库从今天的硬件错误,明天的闪电或明天的第二天掉电中幸存下来,也可能由于从今天起三天的失误而错误地删除了数据。

数据库备份带来哪些挑战?

第一个挑战是盘点数据库资产。对于单个用户,所有这些数据库资产可能只是一个实例,即使没有盘点,用户也清楚地知道这些资产。但是,对于企业用户,尤其是大型企业的用户,由于业务多样性,数据库可以具有多个实例和各种数据库类型。在这种情况下,运维人员需要清楚地了解不同数据库的数量,分布,类型(生产或核心数据库)和功能。

第二个挑战是对备份系统的评估。尽管备份是日常的基本操作,但人们通常会发现备份在紧缩时期没有帮助。原因是备份作为一项基本任务不会促进业务发展,只要没有问题发生,很少有人会记住它。但是,一旦出现问题,备份立即成为公众关注的目标。在紧急情况下,备份通常无济于事,主要是因为人们对备份的重视程度不够,因此对备份的投资不足。许多企业声称备份是头等大事,但从未正确实施它们。

我建议您立即询问您的技术团队:您的备份系统真的有效吗?

什么是有效的备份系统?

可以将不同的数据库用于不同的目的,并且备份系统的有效性也会相应变化。根据其功能,数据库可以分为测试数据库,生产数据库和核心数据库。

对于测试数据库,您必须根据其预期用途来了解数据库的重要性。如果测试数据库用于个人测试,则在大多数情况下,无需备份即可导入和清除数据。如果将测试数据库用于研发,建议您启用备份功能,并且不要低估备份的重要性。这是因为企业中的所有开发和测试人员都在测试数据库上工作,并且单个数据问题可能立即给整个团队造成麻烦。此外,测试数据库可能比生产数据库遇到更多的问题。

对于生产数据库,首先,请确保已启用备份功能。然后,评估备份周期是否满足要求,例如每天进行完全备份。发生故障时,最多只会丢失一天的新数据。在这种情况下,您需要检查备份数据的最后副本是否已还原以及备份数据是否有效。

对于核心数据库,其重要性高于测试或生产数据库。除上述措施外,您还需要采取其他措施。实时备份已成为企业选择数据库备份解决方案的必选选项,因为它可以很大程度地减少因故障而丢失的数据量。快速恢复对核心数据库也起着越来越重要的作用。根据潜在故障的风​​险,您可以选择优秀的恢复解决方案,在整个备份和恢复系统上进行常规钻取,并采样备份数据以测试恢复功能。我建议您制定一个策略,该策略可以自动,定期执行整个恢复过程并提供钻取报告。

笔记:

  1. 不验证备份数据的有效性甚至比不备份数据还要糟糕。想象一下,您的所有业务数据在灾难中已被完全破坏。但是,当您要恢复数据时,您可能会发现备份数据已损坏,备份的文件不正确或发生了其他可怕的事情。在这种情况下,您该怎么办?没有验证的数据备份解决方案可能会带来更大的灾难。您必须验证备份内容,以确保已正确备份数据并可以将其用于恢复。不要等到为时已晚。
  2. 不要坚持大型而全面的解决方案。各种解决方案必须满足多样化的要求。特别是对于核心数据库,必须定期备份整个实例,以防止硬件故障和实例损坏。此外,必须实时备份每个表,这通常可以将关键时刻的数据恢复时间减少多达90%。
  3. 手动或自动数据验证均旨在验证用于恢复的备份数据(也称为恢复数据)的有效性。验证恢复数据的完整性非常具有挑战性。在大多数情况下,会根据业务特征对恢复数据和生产数据进行采样并进行比较。或者,恢复数据库用作辅助数据库,并与主数据库同步以验证数据完整性。