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

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

 2008-10-24 10:07:16 来源:WEB开发网   
核心提示: DBCCCHECKIDENT('tableName')--DisplaysthenumberofrowsyouhavefortherestoredtableGO这将返回IDENTITY列的最大值,让我们假设这张表每天的事务数目大约是4000条记录,SQL Server 20

  DBCCCHECKIDENT('tableName')
  --Displaysthenumberofrowsyouhavefortherestoredtable
  GO

这将返回IDENTITY列的最大值。让我们假设这张表每天的事务数目大约是4000条记录,我们可以在最大值和下一个值之间创建一个间隙。如果IDENTITY列的最大值是25000,我们需要将4000加到这个值中,并且再次执行带有RESEED参数的DBCC CHECKIDENT命令(我们简单假设你在一天之内可以恢复失去的数据,那就是值为400):

  DBCCCHECKIDENT('tableName',RESEED,29000)
  --CreatesagapoffortheIDENTITYcolumntostartthenextvalueat29000
  GO

6) 使数据库联机

一旦你已经成功做到上面的步骤,那么就更改数据库选项使它联机并且允许用户连接到数据库和运行他们的应用程序。

  USEmaster
  GO
  ALTERDATABASENorthwind
  SETMULTI_USER
  GO

现在数据库已经重新联机并且删除的表已经恢复。虽然现在每个人都很开心,但是作为数据库管理员,我们的工作不能就此止步。记住我们仍然需要恢复从已知良好时间点到执行DROP TABLE命令之前的缺失数据。这是我们能够恢复尽可能多的数据的唯一途径。尽管我们可以用一些第三方工具来读取事务日志和通过重放这些事务来恢复数据,但是绝大多数人没有使用这些工具的奢侈权利。所以我们下一个最好的方法是使用带有STOPAT选项的RESTORE从句。这可能有些繁琐,有时也很让人有压力,因为一个错误会让你陷入重复地执行整个过程的状态。我们所需要做的就是找出我们做备份的时间,直到事务日志备份结束。在我们的场景中,上次的备份在早上6:00,而你的已知良好时间点在早上10:42.44。因此,你可以从早上10:42.44开始执行带有STOPAT选项的RESTORE命令,并且把STOPAT时间值改成可能一秒。如果你不是很确定上次备份发生的时间,你可以一直查询MSDB数据库。

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

Tags:SQL Server 灾难

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