关于SQL Server 2008 R1跨域访问异常 RRS feed

  • 问题

  • 我的机器使用的是Window7嵌入式版,安装数据库SQLServer 2008 Express R1版。在两个数据库上使用事务(TransactionScope)。莫名的发生一个数据库怀疑状态(SUSPECT)。大家帮我分析一下。错误如下:

    Msg 3437, Level 21, State 3, Server PETCTHOST-PC\SQLEXPRESS, Line 1
    An error occurred while recovering database 'PETDB'. Unable to connect to Micros
    oft Distributed Transaction Coordinator (MS DTC) to check the completion status
    of transaction (0:61226). Fix MS DTC, and run recovery again.
    Msg 3414, Level 21, State 2, Server PETCTHOST-PC\SQLEXPRESS, Line 1
    An error occurred during recovery, preventing the database 'PETDB' (database ID
    8) from restarting. Diagnose the recovery errors and fix them, or restore from a
     known good backup. If errors are not corrected or expected, contact Technical S
    Msg 926, Level 14, State 1, Server PETCTHOST-PC\SQLEXPRESS, Line 1
    Database 'PETDB' cannot be opened. It has been marked SUSPECT by recovery. See t
    he SQL Server errorlog for more information.
    Msg 5069, Level 16, State 1, Server PETCTHOST-PC\SQLEXPRESS, Line 1
    ALTER DATABASE statement failed.

    2015年6月11日 7:15



  • 你的数据库本来就置疑


    Love SQL

    2015年6月11日 12:00
  • What did you do? Any error in windoes event logs?
    2015年6月11日 12:46
  • 我有两个数据库,在我的应用中要同时插入数据,为了两个数据库的数据一致,所以就在两个数据库上添加了跨域事务 (.net中使用TransactionScope来提交),结果昨天无意中就发生了问题。数据库不能访问。我用SQLCMD连接上后想USE其中一个数据库发生上面的提示。发生这个问题时怎么能正常的解决呢?解决方案和步骤是什么?

    2015年6月12日 1:10
  • NO Error Log。Only event log.if same to than.I only write data to two databases on my computer.
    2015年6月12日 1:11
  • DB suspect usually caused by disk related issue, did you find any disk error in event logs?
    2015年6月12日 1:18
  • 从错误看,你这个是数据库恢复过程中出现错误,所以无法启动了。这个可能需要你们的DBA去仔细检查一下数据库恢复过程中有什么问题。
    2015年6月12日 2:04
  • 你想想使用SQL Express版本的地方,怎么还能有DBA,我做数据库部分。所以我就是你所谓的DBA了。呵呵。所以才上网来问。
    2015年6月12日 5:53
  • Ensure you have good db backup and try following: set db to emergency mode then run 'dbcc checkdb'.
    2015年6月12日 12:10
  • Thank you.I can not use mydb.(I can not access my db),so,I do not set my db to emergency mode and run 'dbcc checkdb'.
    2015年6月15日 1:40
  • When I execute command 'use petdb',the error i do not access my db(there is petdb)

    2015年6月15日 1:41
  • Run 'alter database your_db set emergency' then try dbcc again.
    2015年6月15日 2:55
  • When me execute you command,the error happen again;

    2015年6月15日 7:27
  • Did you run 'alter database' under master db? You can post Chinese by the way, I know Chinese very well.
    2015年6月15日 17:29
  • 第一次,我运行的是use PETDB,发生上面的错误。我就上网查。就可以使用你说的方式进行修复。于是我又执行了alter database PETDB set emergency。依旧发生上面的错误。感觉是MSTDC服务中的事务出现了错误导致不能恢复。
    2015年6月16日 0:38
  • Is petdb in suspect status? Did you stop distributed process already? Did you run 'alter database' under master on correct server?
    2015年6月16日 1:36
  • 对,PETDB的状态是SUSPECT。但是Distributed Process一直在运行没有关闭。我是在本机(SQLExpress2008没有配置远程访问)运行的alter database命令。


    2015年6月16日 2:55
  • Stop distributed process then try to put suspected db in emergency mode again.
    2015年6月16日 3:31
  • Thank you very much。我已经将出错的数据库DROP了。然后使用备份恢复。下次如果再出现这样的问题我再试试。谢谢你的回复。
    2015年6月16日 5:27