WEB开发网
开发学院数据库MSSQL Server SQL Server 2005灾难恢复步骤(一) 阅读

SQL Server 2005灾难恢复步骤(一)

 2008-10-24 10:07:16 来源:WEB开发网   
核心提示: RESTOREDATABASENorthwindFROMDISK=N'D:DBBackupNorthwindBackup.bak'WITHNORECOVERY,RESTRICTED_USERGORESTORELOGNorthwindFROMDISK=N'D:DBBa

  RESTOREDATABASENorthwind
  FROMDISK=N'D:DBBackupNorthwindBackup.bak'
  WITHNORECOVERY,RESTRICTED_USER
  GO
  RESTORELOGNorthwind
  FROMDISK=N'D:DBBackupNorthwindBackupLog.trn'
  WITHRESTRICTED_USER,
  STOPAT='2008-09-2310:42:44.00',RECOVERY
  --usea"knowngood"pointintime
  GO

虽然我们已经把数据库恢复到一个已知的良好时间点,但是我们并没有知道我们实际上到底失去了多少数据。我们需要找出在执行DROP TABLE语句之前执行最后的一个INSERT语句的准确时间,这样我们才能恢复尽可能多的数据。但是由于我们需要尽可能快地使数据库联机,所以我们不想在数据库上直接做这些。这正证明了接下来的步骤是有价值的。

你可以通过执行一个针对它的查询来验证删除的表是否已经恢复。

  SELECT*
  FROMNorthwind.dbo.[OrderDetails]
  GO

5) 创建一个恢复点的快照

我们将创建一个还原数据库的数据库快照,以此来做进一步的处理。这个数据库快照将是把数据恢复到执行DROP TABLE语句之前的准确时间的参考。

  USEmaster
  GO
  CREATEDATABASENorthwind_RestorePointSnapshot
  ON
  (NAME=N'Northwind',
  FILENAME=N'D:DBBackupNorthwindData_RestorePontSnapshot.snap')
  ASSNAPSHOTOF[Northwind]
  GO

依靠这个表模式,我们可以选择让它保持原状,或者像我们对Order Details 表所做的那样,或者多做一些操作。如果这张表有一个现有IDENTITY栏,我们需要在IDENTITY栏的最大值和需要恢复的行的假设数量之间创建一个间隙。这当然取决于在服务器上发生的事务数目。要确定IDENTITY栏的最大值,你可以执行如下显示的DBCC CHECKIDENT命令:

上一页  1 2 3 4 5 6  下一页

Tags:SQL Server 灾难

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接