SQL Server 2005灾难恢复步骤
2010-03-06 15:42:21 来源:WEB开发网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]
)
请注意,我们使用数据库快照来识别我们所设法还原的和我们所恢复的区别。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接