SQL数据库损坏,附加数据库出现9003错误

  • A+
所属分类:linux相关

昨天由于操作手,失误,造成生产环境数据库损坏,附加数据库时,出现9003错误,索性记录下这次错误修复的详细过程。

错误: 9003,严重度: 20,状态: 1
LSN(5:324:1)无效。该 LSN 是传递给数据库'model' 中的日志扫描操作。

这种情况是数据库的日志文件(ldf)数据不同步造成的,可以根据数据库(mdf)文件重建日志文件修复。

以下是详细步骤,请按本机的实际名称进行修改。

损坏的数据库名称是zzld_sckz,对应的数据库名称是zzld_sckz.mdf,日志文件是zzld_sckz.ldf,数据库所在文件夹为C:\Program Files (x86)\Microsoft SQL Server\MSSQL\Data\;

以上为SQL安装的默认路径

SQL数据库损坏,附加数据库出现9003错误

1、先把损坏的数据库对应的文件zzld_sckz.mdf和zzld_sckz.ldf备份到别的地方;

2、在SQL Server和企业管理器中创建一个与损坏数据库同名的数据库,对应的数据库文件名称也是zzld_sckz.mdf和zzld_sckz.ldf;

3、停止SQL Server服务;

4、删除第2步新建数据库产生的zzld_sckzldf文件;

5、用损坏的数据库数据文件hfkj.mdf覆盖第2步新建数据库产生的zzld_sckz.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('zzld_sckz')

这句语句执行后,刷新企业管理器,zzld_sckz数据库的状态变成“只读\置疑\脱机\紧急模式”;

11、输入以下语句并执行重建日志文件:

dbcc rebuild_log('zzld_sckz','C:\Program Files (x86)\Microsoft SQL Server\MSSQL\Data\zzld_sckz_log.ldf')

此为数据库的默认路径,请根据实际情况修改路径,这句语句执行后,刷新企业管理器,zzld_sckz数据库的状态变成“只供DBO使用”;

12、输入并执行正面的语句设置数据库zzld_sckz到正常状态:

exec sp_dboption 'zzld_sckz','dbo use only','false'

这句语句执行后,刷新企业管理器,zzld_sckz数据库变成正常状态。

到此,zzld_sckz数据库修复成功。最后不要忘记关闭第8步中打开的“允许对系统目录直接进行修改”服务器开关。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: