SQL 2000 無log文件恢復
来源:互联网 发布:分类群发软件 编辑:程序博客网 时间:2024/04/29 07:04
由于种种原因,我们如果当时仅仅备份了mdf档,那么恢复起来就是一件很麻烦的事情了。
如果您的mdf档是当前资料库产生的,那么很侥幸,也许你使用sp_attach_db或者sp_attach_single_file_db可以恢复资料库,但是会出现类似下面的提示资讯
设备启动错误。物理档案名 'C:/Program Files/Microsoft SQL Server/MSSQL/data/test_Log.LDF' 可能有误。
已创建名为 'C:/Program Files/Microsoft SQL Server/MSSQL/Data/test_log.LDF' 的新日志档。
但是,如果您的资料库档是从其他电脑上复制过来的,那么很不幸,也许上述办法就行不通了。你也许会得到类似下面的错误资讯
伺服器: 消息 1813,级别 16,状态 2,行 1
未能打开新资料库 'test'。CREATE DATABASE 将终止。
设备启动错误。物理档案名 'd:/test_log.LDF' 可能有误。
怎么办呢?别着急,下面我们举例说明恢复办法。
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
go
F.设置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
- SQL 2000 無log文件恢復
- sql 没有log文件
- sql 2008 压缩log文件
- MS SQL SERVER Log文件减肥
- SQL Server 压缩日志文件.Log
- SQL Server 压缩日志(log)文件
- SQL Server 压缩日志(log)文件?
- sql 附加数据库,删除log文件
- SQL SERVER 2012清除trancation log 文件
- sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法
- sql server 2000,Log.LDF文件丢失,附加数据库失败的解决办法
- sql-log
- 使用ApexSQL Log来查看sql server的日志文件
- SQL Server 2008如何压缩日志(log)文件?
- SQL Server压缩Log文件的方法总结
- SQL Server 2008如何压缩日志(log)文件?
- 如何清理数据库log文件+sql server 2008
- SQL Server 压缩日志(log)文件之二?
- javascript写类方式之十
- GreenSQL简介(转自Web应用安全观察站http://blog.WebServerGuard.net/)
- GreenSQL中文安装指南
- 在VC下执行DOS命令并得到输出(转)
- c#类成员(字段、属性、方法、事件)
- SQL 2000 無log文件恢復
- Android开发环境搭建,配置
- 关于:以前的某个程序安装已在安装计算机上创建挂起的文件操作 解决办法
- 好句
- 远程桌面连接指定会话session
- 引用程序集没有强名称解决办法
- asterisk diaplan编程
- C/C++文件的操作(fread() fwrite())
- 选择