加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL Server 2005灾难恢复步骤

发布时间:2016-01-19 08:37:41 所属栏目:MsSql教程 来源:网络整理
导读:问题 SQL Server 2005在实现高可用性和灾难恢复方面给我们提供了很多种选择。比技术本身更重要的是拿出适当的程序,这是因为我们要管理不同的灾难恢复方案。我
问题

SQL Server 2005在实现高可用性和灾难恢复方面给我们提供了很多种选择。比技术本身更重要的是拿出适当的程序,这是因为我们要管理不同的灾难恢复方案。我们应该如何拿出程序来管理多种多样的灾难恢复场景呢?

专家解答

这一系列文章将探讨不同的灾难恢复场景和涉及你的恢复计划的程序。考虑到你的SQL Server 2005数据库中的灾难恢复选项,你应该包含尽可能多的技术,因为如果灾难发生时你将会有很多种选择来解决这个问题。尽管拥有这些技术被证实是很重要的,但是它也是一个伴随着使整个程序更加有效的过程。在这篇文章里,让我们来看看一个简单的场景,那就是在发生数据库备份的5个小时后,一个用户不小心删除了一张表。从一个数据库备份中恢复意味着失去5小时的数据。而对于大多数的公司来说,比起失去数据,他们更愿意选择失去时间。并且,如果这是一个非常大的数据库,那么将花很长一段时间来恢复和使它联机。在将数据损失控制到最小的前提下,我们将考虑这种情况来建立一个程序方法,以此来尽快地恢复数据库。我们将使用Northwind数据库来显示这个过程。记住在进行以下步骤之前先把Northwind中的数据库恢复模式改成FULL。

1) 确保你有一个好的备份

针对上面的场景,我们假设你有一个每天早上6:00运行的备份,并且没有一个定期创建的数据库快照。你的数据库被配置成使用一个单一的MDF和LDF文件,这个文件对灾难恢复不太适用。让我们在Northwind数据库中创建一个全数据库备份,它将是数据库恢复的起始点。以下是代码:

USE master
GO
BACKUP DATABASE Northwind
TO DISK = N'D:DBBackupNorthwindBackup.bak'
WITH NAME = N'Full Database Backup', DESCRIPTION = 'Starting point for recovery',
INIT, STATS = 10
GO

从Northwind数据库模式中,你很难删除Products, Orders和Customers表,这是因为有其他表比如Order Details表的外码约束限制。但我敢打赌你可以轻易地删除Order Details表。接下来,我们来模拟在大约上午11:00时删除这张表的灾难情景。

DROP TABLE [OrderDetails]

2) 包含发生的问题

由于这个数据库只有一个单一的MDF和LDF文件,我们不可能做很多操作。我们所能做的就是通过把它设置成有限制的用户模式来使数据库脱机。

USE master
GO
ALTER DATABASE Northwind
SET RESTRICTED_USER
WITH ROLLBACK IMMEDIATE
GO

这将很有效地使数据库脱机,停止所有活动的连接。这是分秒必争的时刻,我们需要采取行动。当进行到下面的步骤时,请牢记你的RPO和RTO。

3) 备份事务日志

一个好的数据库管理员应该知道当灾难来临时,首先要做的是备份事务日志 – 假设你的数据库被设置成全数据库备份。这是为了确保在上次备份之后你还保存所有活动的事务。在我们的场景中,由于上次的备份 – 全备份,在这个例子中 – 发生于早上6:00。

BACKUP LOG Northwind
TO DISK = N'D:DBBackupNorthwindBackupLog.trn'
WITH NAME = N'Transaction Log Backup'
, DESCRIPTION = 'Getting everything to current point in time.',
STATS = 10
GO

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读