CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请给出一些有关数据库遭受破坏后恢复的材料或方案

楼主lowyao9999(lowyao)2003-06-01 02:13:15 在 MS-SQL Server / 基础类 提问

请给出一些有关数据库遭受破坏后恢复的材料或方案 问题点数:20、回复次数:5Top

1 楼Jedimaster(CRH = 耻辱号)回复于 2003-06-01 09:42:32 得分 0

从最近的备份恢复呀Top

2 楼liujianjun_(流星尔)回复于 2003-06-01 10:11:52 得分 0

备份好的,直接从备份恢复就成。Top

3 楼happydreamer(www.sz.js.cn,www.gyxk.com)回复于 2003-06-01 14:32:30 得分 0

数据库日志文件丢失时的恢复步骤  
   
   
  设置数据库为紧急模式  
  ü                   停掉SQL   Server服务;  
   
  ü                   把应用数据库的数据文件XXX_Data.mdf移走;  
   
  ü                   重新建立一个同名的数据库XXX;  
   
  ü                   停掉SQL服务;  
   
  ü                   把原来的数据文件再覆盖回来;  
   
  ü                   运行以下语句,把该数据库设置为紧急模式;  
   
          运行“Use   Master  
   
  Go  
   
  sp_configure   'allow   updates',   1  
   
  reconfigure   with   override  
   
  Go”  
   
  执行结果:  
   
  DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。  
   
  已将配置选项   'allow   updates'   从   0   改为   1。请运行   RECONFIGURE   语句以安装。  
   
     
   
  接着运行“update   sysdatabases   set   status   =   32768   where   name   =   'XXX'”  
   
  执行结果:  
   
  (所影响的行数为   1   行)  
   
     
   
  ü                   重启SQL   Server服务;  
   
  ü                   运行以下语句,把应用数据库设置为Single   User模式;  
   
              运行“sp_dboption   'XXX',   'single   user',   'true'”  
   
  执行结果:  
   
              命令已成功完成。  
   
     
   
  ü                   做DBCC   CHECKDB;  
   
              运行“DBCC   CHECKDB('XXX')”  
   
  执行结果:  
   
  'XXX'   的   DBCC   结果。  
   
  'sysobjects'   的   DBCC   结果。  
   
  对象   'sysobjects'   有   273   行,这些行位于   5   页中。  
   
  'sysindexes'   的   DBCC   结果。  
   
  对象   'sysindexes'   有   202   行,这些行位于   7   页中。  
   
  'syscolumns'   的   DBCC   结果。  
   
  ………  
   
     
   
  ü                   运行以下语句把系统表的修改选项关掉;  
   
              运行“sp_resetstatus   "XXX"  
   
  go  
   
  sp_configure   'allow   updates',   0  
   
  reconfigure   with   override  
   
  Go”  
   
  执行结果:  
   
  在   sysdatabases   中更新数据库   'XXX'   的条目之前,模式   =   0,状态   =   28(状态   suspect_bit   =   0),  
   
  没有更新   sysdatabases   中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。  
   
  DBCC   执行完毕。如果   DBCC   输出了错误信息,请与系统管理员联系。  
   
  已将配置选项   'allow   updates'   从   1   改为   0。请运行   RECONFIGURE   语句以安装  
  Top

4 楼happydreamer(www.sz.js.cn,www.gyxk.com)回复于 2003-06-01 14:32:50 得分 20

数据库文件损坏(日志文件完好)  
   
  如何在数据库文件损坏(日志文件完好)情况下,进行恢复  
   
  数据库文件损坏的时候如何恢复  
  1   建一个测试数据库test(数据库类型为完全)  
  2   建一个表,插入点记录  
      create   table   a(c1   varchar(2))  
      go  
      insert   into   a   values('aa')  
      go  
      insert   into   a   values('bb')  
      go  
  3   作完全备份,到文件test_1.bak  
  4   在作一点修改  
      insert   into   a   values('cc')  
      go  
      create   table   b(c1   int)  
      go  
      insert   into   b   values(1)  
      go  
      insert   into   b   values(2)  
      go  
  5   shutdown   数据库服务器  
  6   用ultraedit编辑数据库文件test_data.mdf,随便修改点字节内容  
  7   启动数据库,并且运行企业管理器,点开数据库,看到test变成灰色,而且显示置疑。  
  8   运行isql   -SLocalhost   -Usa   -P  
  1>   backup   log   test   TO   DISK='D:\Program   Files\Microsoft   SQL   Server\MSSQL\BACKUP\t  
  est_2.bak'   WITH   NO_TRUNCATE  
  2>go  
  已处理   2   页,这些页属于数据库   'test'   的文件   'TEST_Log'(位于文件   1   上)。  
  BACKUP   LOG   操作成功地处理了   2   页,花费了   0.111   秒(0.087   MB/秒)。  
   
  9   进行恢复最老的完全备份  
  1>   RESTORE   DATABASE   test   FROM   DISK='D:\Program   Files\Microsoft   SQL   Server\MSSQL\  
  BACKUP\test_1.bak'   WITH   NORECOVERY  
  2>   go  
  已处理   96   页,这些页属于数据库   'test'   的文件   'TEST_Data'(位于文件   1   上)。  
  已处理   1   页,这些页属于数据库   'test'   的文件   'TEST_Log'(位于文件   1   上)。  
  RESTORE   DATABASE   操作成功地处理了   97   页,花费了   0.107   秒(7.368   MB/秒)。  
   
  10   恢复最近的日志  
  1>   RESTORE   LOG   test   FROM   DISK='D:\Program   Files\Microsoft   SQL   Server\MSSQL\BACKU  
  P\test_2.bak'   WITH   RECOVERY  
  2>   go  
  已处理   2   页,这些页属于数据库   'test'   的文件   'TEST_Log'(位于文件   1   上)。  
  RESTORE   LOG   操作成功地处理了   2   页,花费了   0.056   秒(0.173   MB/秒)。  
   
  数据已经完全恢复了,可以使用了。  
  select   *   from   a  
  go  
   
  select   *   from   b  
  go  
  c1        
  ----    
  aa  
  bb  
  cc  
   
   
   
   
  有老的备份的话  
   
  1   backup   log   db   TO   DISK='e:\db2.bak'   WITH   NO_TRUNCATE  
   
  2   恢复最老的完全备份  
  RESTORE   DATABASE   db   FROM   DISK='e:\db1.bak'   WITH   NORECOVERY  
   
  3     恢复最近的日志  
  RESTORE   LOG   db   FROM   DISK='e:\db2.bak'   WITH   RECOVERY  
  Top

5 楼Thanks4Help(*^_^*)回复于 2003-06-01 20:25:32 得分 0

gzTop

相关问题

  • 数据库遭受病毒攻击,求救
  • 如何程序测试数据库是否已被破坏??
  • 求助:数据库的master被破坏了怎么办?急!!
  • 数据库被破坏,如何提取数据(急)
  • 数据库解决方案,材料帐核算系统
  • 如何用程序判断数据库是否已经被破坏?急!!!
  • 如何将表中数据去掉空格???不能破坏原软数据库
  • 如何防止因数据库被破坏,而程序不能运行?高分相送!!!
  • VB$数据库
  • 数据库???

关键词

  • 数据库
  • 文件
  • 语句
  • 执行
  • 模式
  • 选项
  • mssql
  • 修改
  • 数据
  • 运行

得分解答快速导航

  • 帖主:lowyao9999
  • happydreamer

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo