还原数据库出现问题,使用 sp_attach_db无法正常恢复.

jim668 2003-07-01 10:27:46
使用 EXEC sp_attach_db @dbname = 'test8',
@filename1 = 'E:\database\sql\test1_Data.MDF',
@filename2 = 'E:\database\sql\test1_Log.LDF'
---------------------------
SQL Server 提示:
---------------------------
[Microsoft][ODBC SQL Server Driver][SQL Server]未能在 sysindexes 中找到数据库 ID 12 中对象 ID 3 的索引 ID -1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE。
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgy2008 2003-07-01
  • 打赏
  • 举报
回复
新建一同名数据库(文件名,文件组都和原来的一样),然后停止数据库服务,用原来文件替换新建的数

据库文件,启动数据库,该数据库被设未suspect

然后把数据库改成紧急模式:
sp_configure 'allow', 1
reconfigure with override
update sysdatabases set status = 32768 where name = '数据库名'

把LDF文件改名,再执行
DBCC REBUILD_LOG ('数据库名', 'E:\fdzz\database\fdzz1204_Log.LDF' )

恢复数据库紧急模式
update sysdatabases set status = 0 where name = '数据库名'
执行
restore database 数据库名 WITH RECOVERY
sp_configure 'allow', 0
reconfigure with override

然后用DBCC CHECKDB ('数据库名')看看有没有错误

如果上面还是不行,试试吧数据库设为紧急模式,应该可以看到数据了,在把数据导出到一个新的数据库

jim668 2003-07-01
  • 打赏
  • 举报
回复
非常感谢!还是有点问题:
成功执行:update sysdatabases set status = 32768 where name = '数据库名'

是先停止服务,然后: 把LDF文件改名,再执行.
当服务启动时我无法把LDF文件改名.

---------------------------------------------------------------
执行:
DBCC REBUILD_LOG ('KMJXC3', 'C:\Downloads\driver\db\kmjxc3_log.ldf' )
---------------------------------------------------------------
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionCheckForData (CheckforData()).
服务器: 消息 11,级别 16,状态 1,行 0
一般性网络错误。请检查网络文档。
连接中断
---------------------------------------------------------------



27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧