SQL数据库修复方法_第1页
SQL数据库修复方法_第2页
SQL数据库修复方法_第3页
SQL数据库修复方法_第4页
SQL数据库修复方法_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、无日志恢复SQL Server数据库方法一1.新建一个同名的数据库2.再停掉sql server(注意不要分离数据库)3.用原数据库的数据文件覆盖掉这个新建的数据库4.再重启sql server5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用数据库的脚本创建一个新的数据 库,并将数据导进去就行了.1. USE MASTER   2.    3. GO   4.    5.  

2、;SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE   6.    7. GO   8.    9. UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'   10.    11. Go  

3、 12.    13. sp_dboption '置疑的数据库名', 'single user', 'true'   14.    15.  Go   16.    17. DBCC CHECKDB('置疑的数据库名')   18.    19. Go   20.    21. update&#

4、160;sysdatabases set status =28 where name='置疑的数据库名'   22.    23. Go   24.    25. sp_configure 'allow updates', 0 reconfigure with override   26.    27. Go   2

5、8.    29. sp_dboption '置疑的数据库名', 'single user', 'false'   30.    31. Go   无日志恢复SQL Server数据库方法二没有效果的恢复步骤附加数据库_Rambo讲过被删除日志文件中不存在活动日志时,可以这么做来恢复:1,分离被置疑的数据库,可 以使用sp_detach_db2,附加数据库,可以使用sp_attach_single_file_db但是,很遗憾,执

6、行之后,SQL Server质疑数据文件和日志文件不符,所以无法附加数据库数据文件。DTS数据导出不行,无法读取XXX数据库,DTS Wizard报告说“初始化上下文发生错误”。紧急模式怡红公子讲过没有日志用于恢复时,可以这么做:1,把数据库设置为emergency mode2, 重新建立一个log文件3,把SQL Server 重新启动一下4,把应用数据库设置成单用户模式5,做DBCC CHECKDB6,如果没有什么大问题就可以把数据库状态改回去了,记得别忘了把系统表的修改选 项关掉我实践了一下,把应用数据库的数据文件移走,重新建立一个同名的数据库XXX,然后停掉SQL服务,把原来的数据文件

7、再覆 盖回来。之后,按照怡红公子的步骤走。但是,也很遗憾,除了第2步之外,其他步骤执行非常成功。可惜,重启SQL Server之后,这个应用数据库仍然是置疑!不过,让我欣慰的是,这么做之后,倒是能够Select数据了,让我大出一口气。 只不过,组件使用数据库时,报告说:“发生错误:-2147467259,未能在数据库 'XXX' 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式。”最终成功恢复的全部步骤设置数据库为紧急模 式停掉SQL Server服务;把应用数据库的数据文件XXX_Data.mdf移走;重新建立一个同名的数据库XXX;停掉SQL服务;把

8、原来的数据文件再覆盖回来;运行以下语句,把该数据库设置为紧急模式;运行1.  Use Master   2.    3. Go   4.    5.  sp_configure 'allow updates', 1   6.    7. reconfigure with override   8.    9. Go   执

9、行结果: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&#

10、39;”执行结果:命令已成功完成。ü 做DBCC CHECKDB;运行“DBCC CHECKDB('XXX')”执行结果:'XXX' 的 DBCC 结果。'sysobjects' 的 DBCC 结果。对象 'sysobjects' 有 273 行,这些行位于 5 页中。'sysindexes' 的 DBCC 结果。对象 'sysindexes' 有 202 行,这些行位于 7 页中。'syscolumns' 的 DBCC 结果。ü 运行以下语句把系统表的修改选项关

11、掉;运行“sp_resetstatus "XXX"gosp_configure 'allow updates', 0reconfigure with overrideGo”执行结果:在 sysdatabases 中更新数据库 'XXX' 的条目之前,模式 = 0,状态 = 28(状态 suspect_bit = 0),没有更新 sysdatabases 中的任何行,因为已正确地重置了模式和状态。没有错误,未进行任何更改。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。已将配置选项 'allow updates&

12、#39; 从 1 改为 0。请运行 RECONFIGURE 语句以安装。重新建立另外一个数据库XXX.Lost;DTS导出向导运行DTS导出向导;复制源选择EmergencyMode的数据库XXX,导入到XXX.Lost;选择“在SQL Server数据库之间复制对象和数据”,试了多次,好像不行,只是复制过来了所有表结构,但是没有数据,也没有视图和存储过程,而且DTS向导最后报告 复制失败;所以最后选择“从源数据库复制表和视图”,但是后来发现,这样总是只能复制一部分表记录;于 是选择“用一条查询指定要传输的数据”,缺哪个表记录,就导哪个;视图和存储过程是执行SQL语句添加的。维护Sql Ser

13、ver中表的索引在使用和创建数据库索引中经常会碰到一些问题,在这里可以采用一些另类的方法解决-第一步:查看是否需要维护,查看扫描密度/Scan Density是否为100%declare table_id intset table_id=object_id('表名')dbcc showcontig(table_id)-第二步:重构表索引dbcc dbreindex('表名',pk_索引名,100)-重做第一步,如发现扫描密度/Scan Density还是小于100%则重构表的所有索引-并不一定能达100%。dbcc dbreindex('表名','',100)利用第三方软件恢复数据库推荐软件:国内 软件软件名称 SQL数据库修复软件3.52主页 下载地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论