SQL Serversql server 错误9003:LSN无效(日志扫描号无效),对数据库的修复.

–sql server 错误9003:LSN无效(日志扫描号无效)
–今日,从朋友这儿接到一个有标题标数据库文件与日志文件,在选取sql2000与sql2005拓展数据库附加时,
–sql server报错,错误音讯: “传递给数据库 ‘POS’
中的日志扫描操作的日记扫描号 (2806:120:1) 无效。
–此错误可能提醒数据损坏,或者日志文件(.ldf)与数据文件(.mdf)不般配。
–即使此错误是在复制时期出现的,请重新创设发表。否则,即使该难题造成启动时期出错,请从备份还原。
–不可能打开新数据库 ‘POS’。CREATE DATABASE 中止。 (Microsoft SQL
Server,错误: 9003)”

一看是9003荒谬,就想开可能是由于日记文件的由来,再看数据库文件或者破坏,于是想到dbcc
checkdb指令.

–方法如下:
–1.我们运用默许方式建立一个供恢复生机行使的数据库(如pos)。可以在SQL  
Server   Enterprise   Manager里面建立。  
–2.停掉数据库服务器。  
–3.将刚刚生成的数据库的日志文件pos_log.ldf删除,用要回涨的数据库mdf文件覆盖刚才生成的数据库数据文件pos_data.mdf。
 
–4.开行数据库服务器。此时会看到数据库pos的气象为“置疑”。那时候不可以对此数据库进行其余操作。
 
–5.装置数据库允许直接操作系统表。此操作可以在SQL   Server  
Enterprise  
Manager里面选用数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也足以拔取如下语句来兑现。
 
use   master  
go  
exec sp_configure   ‘allow updates’,1  
go    
reconfigure   with   override  
go  
–6.安装pos为热切修复格局  
update sysdatabases set status=-32768 where dbid=DB_ID(‘pos’)  
–此时得以在SQL   Server   Enterprise  
Manager里面看到该数据库处于“只读\置疑\脱机\一气呵成情势”可以见见数据库里面的表,然则一味有系列表
 

–7.底下执行真正的回涨操作,重建数据库日志文件  

go

dbcc rebuild_log(‘pos’,’D:\Program Files\Microsoft SQL
Server\MSSQL\Data\pos_log.ldf’)  

go
–执行进度中,倘使赶上下列提醒音信:  
–服务器:   消息   5030,级别   16,状态   1,行   1  
–无法排它地锁定数据库以执行该操作。  
–DBCC   执行已毕。假诺   DBCC   输出了错误新闻,请与系统管理员联系。
 
–表达您的任何程序正在使用该数据库,如若刚才您在F步骤中行使SQL  
Server   Enterprise   Manager打开了pos库的系统表,那么退出SQL   Server  
Enterprise   Manager就足以了。  
–正确履行到位的唤醒应该接近于:  
–警告:   数据库   ‘pos’   的日记已重建。已错过工作的一致性。应运作  
DBCC   CHECKDB  
以注解物理一致性。将必须重置数据库选项,并且可能要求删除多余的日记文件。
 
–DBCC   执行完结。假若   DBCC   输出了错误新闻,请与系统管理员联系。
 
–此时开拓在SQL   Server   Enterprise  
Manager里面会看到数据库的情景为“只供DBO使用”。此时得以访问数据库里面的用户表了。
 

–8.验证数据库一致性(可粗略)  

go
dbcc checkdb(‘pos’)  
–一般实施结果如下:  
–CHECKDB   发现了   0   个分配错误和   0   个一致性错误(在数据库  
‘pos’   中)。  
–DBCC   执行达成。如若   DBCC   输出了错误音讯,请与系统管理员联系。
 

–9.安装数据库为正规情状  

go

exec sp_dboption ‘pos’,’dbo use only’,’false’  

go
–假若没有出错,那么恭喜,现在就足以健康的选择复苏后的数据库啦。  
–10.末尾一步,大家要将步骤E中设置的“允许对系统目录直接修改”一项復苏。因为平日一向操作系统表是一件比较危急的政工。当然,大家可以在SQL  
Server   Enterprise   Manager里面复苏,也足以采用如下语句落成  
exec sp_configure   ‘allow updates’,0  
go    
reconfigure   with   override  
go

相关文章