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

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

 2008-10-24 10:07:16 来源:WEB开发网   
核心提示: 8) 通过提高STOPAT参数值来还原事务日志我们执行RESTORE LOG命令,通过一分钟 – 从10:42:44.00到 10:43:44.00来增加STOPAT参数值,SQL Server 2005灾难恢复步骤(一)(6),RESTORELOGNorthwind_reco

8) 通过提高STOPAT参数值来还原事务日志

我们执行RESTORE LOG命令,通过一分钟 – 从10:42:44.00到 10:43:44.00来增加STOPAT参数值。

  RESTORELOGNorthwind_recover
  FROMDISK=N'D:DBBackupNorthwindBackupLog.trn'
  WITHSTANDBY=N'D:DBBackupNorthwind_UNDO.bak',
  STATS=10,STOPAT='2008-09-2310:43:44.00'
  GO

这是它重复的部分。不要因为它确实繁琐而感到烦恼。你可以通过1分钟,5分钟,10分钟和记录这些时间来增加这个值。记住在执行RESTORE LOG命令之后在删除的对象上运行一个测试查询。我建议在这个活动上创建一张表,这张表看起来像这样:

  TIMEOBJECTEXISTED?
  10:43:44.00YES
  10:48:44.00YES
  10:58:44.00YES
  11:03:44.00NO

有了这个信息,你就可以很肯定地知道这张表在10:58:44.00与 11:03:44.00之间被删除。你可以重复步骤8,并且因为你已经在一个更小的时间间隔内操作,你可以在一分钟甚至一秒内增加STOPAT参数值,如果你觉得自己过度关注STOPAT参数的时间值,那么请返回带有你在步骤八中记录的列表信息的步骤七,使恢复过程更快进行。你只需要记住在上次的RESTORE LOG语句中使用WITH RECOVERY选项,例如:

  RESTORELOGNorthwind_recover
  FROMDISK=N'D:DBBackupNorthwindBackupLog.trn'
  WITHSTATS=10,STOPAT='2008-09-2311:01:44.00',RECOVERY
  GO

一旦你设法把数据库恢复到执行DROP TABLE命令之前,你就可以在生产数据库上所做的还原和恢复所做的作一个比较。你可以用很多种方式实现这一点。由于我们已经有一个之前创建好的数据库快照,所以我们也用它来做灾难恢复。先前关于SQL Server 2005 tablediff命令行工具的方法可以让你可以了解如何使用这个工具但是只强调你的源数据库将是你恢复的那个数据库,并且目的数据库将是你的数据库快照。这是为什么你的数据库快照被证实是很重要的,尤其是如果你处理不只是一个平常的对象。如果你不习惯用命令行工具,那么可以参考一个由来自SQLTeam.com的成员创建的GUI版本。你可能也想确定这些并且把它放在你的DBA工具栏中。

你也可以执行一个INSERT/SELECT操作,在基于恢复数据库的一个查询的生产数据库上插入纪录。因为我们的Order Details表没有IDENTITY栏,所以可以通过在一张临时表中插入纪录和使用ROW_NUMBER()函数来自己创建这一栏。

  --Thisinsertsrecordsinatemporarytableandassignsadummyidentityvalueforreference
  SELECTROW_NUMBER()OVER(ORDERBYOrderID)ASROWID,*
  INTONorthwind_recover.dbo.OrderDetailsRecover
  FROM[OrderDetails]
  --Thisinsertsrecoveredrecordsfromtherecovereddatabaseintotheproductiondatabasebasedon
  --thedummyidentityvaluewehaveassignedforreference
  INSERTINTONorthwind.dbo.[OrderDetails](OrderID,ProductId,UnitPrice,Quantity,Discount)
  SELECTOrderID,ProductId,UnitPrice,Quantity,Discount
  FROMNorthwind_recover.dbo.OrderDetailsRecover
  WHEREROWID>
  (
  SELECTCOUNT(*)
  FROMNorthwind_RestorePointSnapShot.dbo.[OrderDetails]
  )

请注意,我们使用数据库快照来识别我们所设法还原的和我们所恢复的区别。

上一页  1 2 3 4 5 6 

Tags:SQL Server 灾难

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