昨晚数据库突然出问题了.今天发现提示一直在恢复..我等了二个小时也没有恢复好..后来我就停用进程把db.mdf与db_log.ldf下到本地上附加..结果提示:
---------------------------
Microsoft SQL-DMO (ODBC SQLState: HY000)
---------------------------
错误 602: 未能在 sysindexes 中找到数据库 ID 10 中对象 ID 1 的索引 ID 1 对应的行。请对 sysindexes 运行 DBCC CHECKTABLE。
---------------------------
OK   
---------------------------
我已经把提示正在恢复这数据库删除了.只留下了db.mdf与db_log.ldf~ 但要这db.mdf的数据,可怎么也附不上去.数据库为SQL 2005,现在服务器上的事件查看器里每隔一分钟就提示一次,这是那里的问题呢?计划程序 1 的进程 64:0:0 (0xbd0)工作线程 0x04DB20E8 似乎无法完成。线程创建时间: 12842608441046。线程使用 CPU 的近似时间: 内核 62 毫秒,用户 11500 毫秒。进程使用率 14%%。系统空闲率 72%%。间隔: 19819562 毫秒。请教这怎么恢复才可以呢..谢谢~~

解决方案 »

  1.   

    SQL 日志里有N多类似下面的消息:日期 2007-12-20 21:15:43
    日志 SQL Server (当前 - 2007-12-20 21:15:00)源 spid51消息
    SubprocessMgr::EnqueueSubprocess: Limit on 'Max worker threads' reached.
      

  2.   

    能不能把db.mdf/ldf拿到别的机器上恢复?
      

  3.   

    现在我在服务器上伸开数据库也伸不出来..提示以下信息...标题: Microsoft SQL Server Management Studio
    ------------------------------无法为此请求检索数据。 (Microsoft.SqlServer.SmoEnum)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476------------------------------
    其他信息:已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.3042&EvtSrc=MSSQLServer&EvtID=1222&LinkId=20476------------------------------
    按钮:确定
    ------------------------------
      

  4.   

    By default, the max worker threads setting is 255, which permits up to 255 worker threads to be created. Use the default setting of 255 in most cases. This does not mean that you can only establish 255 user connections. A system can have thousands of user connections (which are essentially multiplexed down to 255 worker threads) and in general, users do not generally perceive any delays. In such a case, only 255 queries can run concurrently, but this is multiplexed down to the number of available CPUs, so the concurrent nature is only perceived, regardless of the number of configured worker threads. If you configure a number of worker threads to a value that is greater than the default, it is almost always counterproductive and slows performance because of scheduling and resource overhead. Only increase this setting under very unusual circumstances and when rigorous methodical testing demonstrates that it is useful to do so. 
      

  5.   

    http://support.microsoft.com/kb/308518/zh-cn
      

  6.   

    现在似乎有两个问题 1 mdf不能恢复 2 2005的Management Studio不能正常使用
      

  7.   

    有没有进行过"分离数据库"的操作
    ----没有..数据库后面一直提示(正在恢复),可我等了二个小时一点反应也没有,无法进行其它操作,mdf文件有200M,ldf有400M,后来我就结束进程把这二个文件下载到本地附加试.也不行..
      

  8.   

    昨晚数据库突然出问题了.今天发现提示一直在恢复..我等了二个小时也没有恢复好..后来我就停用进程把db.mdf与db_log.ldf下到本地上附加..结果提示: 
    -------------------------------------------------
    LZ怎么停用进程的?杀死??
    这很容易造成MDF和LDF文件的内部数据不完整。关注一下其他高手怎么修复。我很偶尔会遇到显示“正在恢复...”,因为是我的恢复日志的脚本在运行,但是因为什么原因挂起了,
    所以我也不能随便停了它,而是执行:
    restore database YourDB with recovery这样就能结束挂起的恢复过程。不过我不清楚你的数据出问题时有什么脚本在运行,所以不敢保证上面的方法能用。
      

  9.   

    可以尝试新建一个同名数据库,文件路径和原来的一样,然后把原来的mdf和ldf覆盖新建的数据库,如果可以启动就可以通过修改系统表搞定了
      

  10.   

    昨晚数据库突然出问题了.今天发现提示一直在恢复..我等了二个小时也没有恢复好..后来我就停用进程把db.mdf与db_log.ldf下到本地上附加..结果提示:   
    ------------------------------------------------- 
    LZ怎么停用进程的?杀死?? 
    这很容易造成MDF和LDF文件的内部数据不完整。关注一下其他高手怎么修复。 
    ------------------------------------------------------------------
    这样损坏的数据库很多先保护现场,然后拿到其他机器上恢复,如果有以前的备份,跟以前的备份比较,看什么地方出现了错误。