SQL数据库置疑问题的处理方法
2013-06-09 15:09
211 查看
A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager 里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。D.启动数据库服务器。此时会看到数据库test的状态为"置疑"。这时候不能对此数据库进行任何*作。E.设置数据库允许直接*作系统表。此*作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择"属性",在"服务器设置"页面中将"允许对系统目录直接修改"一项选中。也可以使用如下语句来实现。
use master go sp_configure 'allow updates',1 go reconfigure with override goF.设置test为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Server Enterprise Manager里面看到该数据库处于"只读\置疑\脱机\紧急模式"可以看到数据库里面的表,但是仅仅有系统表G.下面执行真正的恢复*作,重建数据库日志文件
dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')执行过程中,如果遇到下列提示信息:服务器: 消息 5030,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该*作。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager 打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。正确执行完成的提示应该类似于:警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为"只供DBO使用"。此时可以访问数据库里面的用户表了。H.验证数据库一致性(可省略)
dbcc checkdb('test')一般执行结果如下:CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test' 中)。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。I.设置数据库为正常状态
sp_dboption 'test','dbo use only','false'如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。J.最后一步,我们要将步骤E中设置的"允许对系统目录直接修改"一项恢复。因为平时直接*作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager里面恢复,也可以使用如下语句完成
sp_configure 'allow updates',0 go reconfigure with override go--数据库(如test) 分离后再附加
EXEC sp_detach_db 'test' EXEC sp_attach_db 'test','c:\Program Files\Microsoft SQL Server\MSSQL\Data\test.mdf','c:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf'
相关文章推荐
- js学习总结之DOM2兼容处理this问题的解决方法
- 关于对字符串、数组处理的常见问题与方法,如获取带有空格字符串长度,数组长度等。getline(),sprintf()使用。
- SpringMVC日期类型转换问题三大处理方法归纳
- 升级 PHP7.1 后 openssl 解密 mcrypt AES 数据不兼容问题的处理方法
- 一些手机图片压缩处理后会出现旋转问题(三星)的解决方法
- MFC中CImage类显示的半透明PNG存在的问题以及处理方法
- SpringMVC日期类型转换问题三大处理方法归纳
- android 针对于GridView中的getView方法的bug,使用本地缓存来处理图片显示的问题
- 记一次处理 list 的 remove 方法遇到的问题
- spring 事务处理中,同一个类中:A方法(无事务)调B方法(有事务),事务不生效问题
- swfupload使用中遇到问题处理方法
- 安卓AndroidStudio如何在同一个手机中安装两个相同的项目+++++自己处理的一些问题解决方法
- android软键盘弹出,会把原来的界面挤上去的问题 处理方法
- EXP-00091: Exporting questionable statistics 问题处理方法
- hadoop 安装出现的几种异常的处理方法,hadoop无法启动,no namenode to stop问题的解决方法,no datanode
- DOM相关属性,方法,兼容性问题处理小析
- Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中的路径问题,通配符映射
- 模式识别初体验——模式识别中要处理的问题以及使用的方法
- 电脑内存常见问题处理方法
- Oracle出现字符集问题处理方法