SQL 中附加数据库的时候出现错误 9003 的解决

   Updated: 2013-11-13 22:31       SQL 中附加数据库的时候出现错误 9003 的解决无评论

SQL 2000,附加数据库的时候出现错误提示:「错误 9003:LSN(39:431:1) 无效, 该 LSN 是传递给数据库'XXX'中的日志扫描操作的」,如图:

9003

出现这个错误一般是因为此数据库有损坏,导致不能做数据库的附件操作。

解决步骤:

  1. 停止 SQL Server 服务器,将旧数据库文件和相应的日志文件拷贝到其他地方以备份
  2. 启动 SQL Server 服务器,新建一个全新的和旧数据库同名的数据库
  3. 停止 SQL Server 服务器,将旧数据库的 mdf 和 ldf 文件覆盖新的 mdf 和 ldf 文件
  4. 再启动 SQL Server 服务器,这个时候数据库应该处于置疑状态
  5. 查询分析器中执行以下语句:
    use master
    go
    
    sp_configure 'allow updates', 1
    reconfigure with override
    go
    
    update sysdatabases set status= 32768 where name = '数据库名'
  6. 再执行如下语句:
    dbcc rebuild_log('数据库名', '新的 ldf 文件的绝对路径'). -- 你会看到一个消息 - Warning: The log for database '数据库名' has been rebuilt.(注意,这里的 '新的 ldf 文件的绝对路径'是一个不存在的文件,待会它会自己建立)
    
    use master
    go
    
    sp_configure 'allow updates', 0
    go
  7. 既然数据库有损坏,我们就还需要检查错误和修复错误,具体方法见此文:检测和修复 SQL 数据库错误

参考资料:

  1. http://bbs.csdn.net/topics/260083404
  2. http://www.wangchao.net.cn/bbsdetail_1785769.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注