修复疑似TFS数据库

时间:2014-08-26 11:41:56

标签: sql sql-server tsql tfs

我正在使用此T-SQL来修复我的TFS可疑数据库

EXEC sp_resetstatus [TFS_Projects];
ALTER DATABASE [TFS_Projects] SET EMERGENCY
DBCC checkdb([TFS_Projects])
ALTER DATABASE [TFS_Projects] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB ([TFS_Projects], REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE [TFS_Projects] SET MULTI_USER

但是当我使用这个T-SQL时,我会收到错误

  

由于文件不可访问或内存或磁盘空间不足,无法打开数据库“TFS_Projects”。

我该如何修复我的SQL数据库?

我正在使用SQL Server 2012

更新1:

此错误将在行中发生:

  

DBCC checkdb([TFS_Projects])

更新2:

我的硬盘驱动器上有20GB空闲,我的mdf和ldf就可以了

更新3:

当我右键单击db时,我无法解决Autogrow的问题

mdf和ldf不是只读

我在windows administartor中进入,并通过sa

在sql server中运行

3 个答案:

答案 0 :(得分:1)

1)如果可能,通过从硬盘驱动器中删除不必要的文件或添加更大尺寸的新硬盘来增加更多硬盘空间。

2)检查数据库是否设置为Autogrow on。

3)检查尝试访问数据库的帐户是否具有足够的权限来执行操作。

4)确保.mdf和.ldf文件在操作系统文件系统级别上未标记为只读。

在此处找到:http://blog.sqlauthority.com/2007/08/02/sql-server-fix-error-945-database-cannot-be-opened-due-to-inaccessible-files-or-insufficient-memory-or-disk-space-see-the-sql-server-error-log-for-details/

答案 1 :(得分:1)

我更新我的答案,因为旧答案是危险的,会损坏TFS数据库! 这个答案来自microsoft:http://msdn.microsoft.com/en-us/library/jj620932.aspx

  

备份数据库

     
    

启动TFSBackup.exe。     TFSBackup.exe工具位于您安装Team Foundation Server的Tools文件夹中。默认位置是C:\ Program Files \ Microsoft Team Foundation Server 12.0 \ Tools。     在“源SQL Server实例”中,输入承载要备份的TFS数据库的SQL Server实例的名称,然后选择“连接”。     在“选择要备份的数据库”中,选择要备份的数据库。     需要帮忙? MSDN上的TFS 2010数据库列表; MSDN上的TFS 2012数据库列表。     在“备份数据库到”中,输入为Everyone配置了读/写访问权限的网络共享的名称,或者接受在步骤2中连接到的SQL Server的文件系统中的默认位置。     注意注意     如果要覆盖存储在此网络位置的备份,可以选择“覆盖此位置的现有数据库备份”。     选择立即备份。     备份工具报告正在备份的每个数据库的进度。     选择关闭。     恢复您的数据

  
     

恢复TFS数据

     
    

启动TFSRestore.exe。     TFSRestore.exe工具位于您安装Team Foundation Server的Tools文件夹中。默认位置是C:\ Program Files \ Microsoft Team Foundation Server 12.0 \ Tools。     在“目标SQL Server实例”中,输入将用作数据层的SQL Server实例,然后选择“连接”。     选择Add Share并输入网络共享的UNC路径,该路径配置了对存储TFS数据备份的Everyone的读/写访问权限。例如,\ servername \ sharename。     如果备份文件位于运行TFSRestore.exe的服务器的文件系统上,则可以使用下拉框选择本地驱动器。     注意注意     您在此过程开始时标识的SQL Server实例的服务帐户必须具有对此共享的读取权限。     在左侧导航窗格中,选择您在上一步中标识的网络共享或本地磁盘。     TFS还原工具显示存储在文件共享上的数据库备份。     选中要还原到在此过程开始时标识的SQL Server的数据库的复选框。     重要提示重要     对于SharePoint,您只能还原WSS_Content数据库。不要还原WSS_AdminContent或WSS_Config数据库。您需要这些数据库的新SharePoint Foundation版本,而不是先前版本的SharePoint或任何其他服务器上运行的SharePoint安装。     选择“覆盖现有数据库”,然后选择“还原”。     数据库还原工具可还原数据并显示进度报告。     选择关闭。

  

答案 2 :(得分:0)

由于服务器意外重启或文件系统损坏,您的数据库可能已损坏。您可以使用CheckDB来检查问题&删除可疑状态。但是,最好的办法是从工作备份中恢复它。

发生这种情况的一些原因是

  1. 数据库已损坏 数据库文件被某些进程“打开”或保存(操作系统,其他程序......)
  2. 没有足够的SQL Server磁盘空间
  3. SQL Server的内存不足(RAM)
  4. 电源故障导致的意外SQL Server关闭
  5. How to repair a suspect database