最近的用户反馈在使用SQL2000时,拷贝原来文件附加数据库出现错误提示:错误 9003:LSN (35494:16:2) 无效。该 LSN 是传递给数据库 '数据库名' 中的日志扫描操作的。那么遇到这样的情况要如何解决呢?小编给大家带来可行的解决方法!
这种情况是数据库的日志文件(ldf)数据不同步造成的,可以根据数据库(mdf)文件重建日志文件修复。
修复步骤如下:数据表名按自己的来改!
假设损坏的数据库名称是hfkj,对应的数据库名称是hfkj.mdf,日志文件是hfkj_log.ldf,数据库所在文件夹为D:\Data;
1、先把损坏的数据库对应的文件hfkj.mdf和hfkj_log.ldf备份到别的地方;
2、在SQL Server和企业管理器中创建一个与损坏数据库同名的数据库,对应的数据库文件名称也是hfkj.mdf和hfkj_log.ldf;
3、停止SQL Server服务;
4、删除第2步新建数据库产生的hfkj_log.ldf文件;
5、用损坏的数据库数据文件hfkj.mdf覆盖第2步新建数据库产生的hfkj.mdf文件
6、启动SQL Server服务;
7、进入企业管理器,刷新数据库状态,此时数据库hfkj状态为“置疑”;
8、在SQL Server服务器属性中设置SQL Server数据库服务器“允许对系统目录直接修改”
9、从SQL企业管理器的“工具”菜单启动“SQL 查询分析器”;
10、输入以下代码并运行使hfkj数据库进入紧急修复模式:
update sysdatabases set status=-32768 where dbid=DB_ID('hfkj')
这句语句执行后,刷新企业管理器,hfkj数据库的状态变成“只读\置疑\脱机\紧急模式”;
11、输入以下语句并执行重建日志文件:
dbcc rebuild_log('hfkj','D:\Data\hfkj_log.ldf')
这句语句执行后,刷新企业管理器,hfkj数据库的状态变成“只供DBO使用”;
12、输入并执行正面的语句设置数据库hfkj到正常状态:
exec sp_dboption 'hfkj','dbo use only','false'
这句语句执行后,刷新企业管理器,hfkj数据库变成正常状态。
到此,hfkj数据库修复成功。最后不要忘记关闭第8步中打开的“允许对系统目录直接进行修改”服务器开关。