快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

SQL Server备份

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

探索SQL Server备份主要方面的系列文章中的第二篇

在本系列的第1部分中,我写了有关备份的原因。从失业,杀死公司到遵守法律,通常有很多原因进行备份,尤其是进行SQL Server备份。

不幸的是,SQL Server备份比以前要难得多。仅少数组织(例如医院或警察局)曾经要求应用程序每周7天,每天24小时保持在线。现在,许多组织都有此要求。

最近,我正在帮助客户进行一项操作,该操作要求网站的数据库每天可能要脱机15分钟。这是一家开展电子商务活动最少的公司,几乎所有客户都在美国。当我查看网站日志以了解到这一点时,我感到非常震惊,虽然该网站在东部时间凌晨3点至凌晨4点之间平静了很多,但它绝不是安静的。在那几个小时内,仍然有成千上万次点击。这些人不睡觉吗?

由于SQL Server通常一天24小时都处于活动状态,因此在暂停期间每天仅进行一次备份是不够的。但是多少备份就足够了?我能听到您说:“我有非常重要的数据,我无法承受停机时间!” 但是,在您消除允许出现任何停机或数据丢失的可能性之前,请考虑一下,很难100%地确保您在任何情况下都不会丢失任何数据或停机。

我的观点是,在考虑实现不同级别的数据丢失的成本时,适用数量级定律。(考虑到距您当前办公室至少3英里的独立安全位置的成本,全天候的DBA级生产人员配备,可以运行查询的人员的完整安全模型,完全冗余的架构以及进行此操作所需的所有软件可以在不同镜像服务器之间100%完美地工作,专用网络线路,配置和测试的成本,对任何允许访问服务器的人进行全面的安全性和后台测试等)。我对这些数量级的猜测可以在下表中看到:

可接受的数据丢失 中断期 维修费用
在任何情况下都没有 在任何情况下都没有 百万
特殊情况
(最长1小时)
在特殊情况下少于1小时 数十万
最近几个小时的数据 几个小时 成千上万
最近数据的天数
月数 几乎没有

表1:不同级别的数据丢失可接受性的成本数量级估计

显然,大多数组织没有必要也没有资源来消除所有数据丢失或中断。他们可能会得出这样的结论:每天不备份数据是有几个小时的时间是可以接受的,这可能会丢失这段时间内输入的新数据。

在本文中,我将讨论在要使用备份的情况下备份SQL Server的情况。

可能出什么问题了?

在考虑数据库可以承受多少数据丢失和破坏(以及为避免它而可以承受多少费用)时,您需要仔细考虑数据丢失的可能方式。

因错误或恶意操作而删除的数据–在大多数情况下,当我需要恢复数据时,无论是直接还是间接地,都是造成问题的原因。最近,我运行了一个查询来修复实时数据库。发生错误,导致大量重复的行。我运行了查询的SELECT部分​​(我将在我的DELETE语句中用于NOT IN()子句的部分),并得到了一些我认为合理的行。我将其用作更新语句的NOT IN()子句,并且由于可以肯定查询必须是正确的,因此,正如我通常所做的那样,我没有像运行事务一样运行查询,然后执行COMMIT或视情况回滚。我单击了查询分析器中的绿色小箭头,然后我震惊地看到表中的每一行都被删除了!

幸运的是,我有一个备份,并且在中断很少的情况下,我能够重新创建数据。

大多数数据丢失是由此类错误引起的,而不是由于想要伤害您或您的数据的人的故意行为而发生的。汉隆的剃刀声明:切勿将恶意归咎于恶意。

防止这种我造成的无意损害可以通过多种方法来解决。首先,此DELETE查询应该首先在测试数据库上运行,即使需要将数据库备份并将其还原到另一台计算机上也是如此。接下来,我应该在事务中运行SQL语句。最后,在许多情况下,我(作为开发人员)不应被允许获取接近生产数据的任何信息。

恶意行为的发生频率要低得多,可以采取许多措施来防止这种情况发生。基本步骤是数据库服务器的物理安全性。如果潜在的攻击者无法直接访问计算机(这意味着防火墙上的相应端口已关闭),则他们将需要加倍努力。

一个普遍的问题是,备份通常是从问题已经存在的时间段开始的,并且不会包含要还原的未损坏或丢失的数据。如果与每月流程相关的数据由于用户或程序员错误而损坏,例如,在每月流程运行时,有可能在问题发生之前就没有该表的备份。

硬件故障–这是许多人在考虑备份SQL Server数据时最担心的问题。硬件问题可以通过多种方式来还原备份。

首先,磁盘故障一直很流行。硬盘的转速从5,000到15,000 RPM。这种机械运动会很快发生坏事。硬盘控制器或主板出现故障的可能性较小。无论如何,您将可能无法直接获取硬盘上的数据。在这里,在不同的物理卷上(如果不是在不同的设备上或在可移动存储上)进行备份至关重要。

发生此类故障时,一个常见的问题是缺少可快速还原备份的硬件。如果您的数据库服务器出现故障,需要多长时间将数据库还原到新设备上,并可能更改涉及的程序以指向新服务器?

灾难性的站点故障–最具破坏性的场景通常是最少考虑的问题。《 Microsoft SQL Server 2000 Unleashed》一书将这种灾难性故障称为“飞毛腿测试”。如果一枚导弹击中了您的建筑物,您的数据库,甚至您的企业,能否生存?尽管这只是五年前的一个抽象概念,但当我写这篇文章时,距离乌鸦从世界贸易中心(WTC)曾经耸立的地方飞来的距离还不到60英里。除了不可否认的人员伤亡之外,许多幸存下来的企业9/11发现他们的数据不见了。”以下是受WTC灾难影响的一些公司的样本,以及有关其计划运作情况的信息:http://www.business2.com/b2/web/articles/0,17863,514202,00。 html。影响范围从几乎没有到整个数据丢失。自2001年以来,

更为平凡但同样具有破坏性的可能是灾难性的电源或连接故障。我的一个客户很乐意将所有数据库和Web服务器从一个托管站点迁移到内部,直到在36小时的电源故障使公司断网后才将它们移回。虽然可以短暂打开服务器电源以复制数据库和应用程序,但该公司没有任何方便的方法将这些数据返回到Web上。

在灾难性的站点故障情况下,访问场外备份有多方便?当您一无所有时,重新创建机器(所有机器)有多容易?

完全可以防止由于此类灾难性站点故障而造成的重大破坏,这可以将您的备份计划转移到数百万美元的类别中。

那么,真正的备份是什么?

在我看来,备份不仅仅是将数据实际备份到磁盘或设备上。我实际上是在谈论可以用来允许数据以最小的中断保持可用的策略。

处理备份的最佳方法是首先防止丢失。您无法防止大多数灾难性站点故障,但可以通过提供许多不间断电源和冗余Internet访问来减轻较小的站点故障。万一发生火灾,洪水,飓风或恐怖袭击,您可能必须依靠备份。

下一步:从头开始构建以防止数据丢失

正确设置硬件是确保数据安全的第一步。在指定硬件和设置数据库时做出的决定可以使您成为数据库英雄(甚至可能是本周的下一个数据库极客),或者在一切出错时使您成为替罪羊。您的普通硬件人员不了解SQL Server,而您的普通DBA不了解硬件。作为一个对两个世界都足够了解的人,可以对结果产生真正的影响。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638