数据库'MyDB'的脱机设置失败

时间:2013-07-11 10:50:53

标签: sql-server database

我的程序因此异常而失败:

System.Data.SqlClient.SqlException: 
The transaction log for database 'MyDB' is full. 
To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases

我注意到我的表没有在SQL Management Studio中加载,我无法打开数据库属性窗口

The Error when I try open Property window

然后我尝试通过以下语句将我的日志文件更改为autogrowth:

 ALTER DATABASE MyDB
 MODIFY FILE
 (NAME=MyDB_Log,MAXSIZE=2TB,FILEGROWTH=20MB);

此语句已成功执行,但无法帮助我恢复数据库 然后我尝试设置脱机MyDB操作失败了一些异常 然后我在单用户模式下设置数据库,但异常仍然存在 然后我尝试这个陈述:

ALTER DATABASE MyDB SET EMERGENCY;
GO
ALTER DATABASE MyDB set single_user
GO
DBCC CHECKDB (MyDB, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE MyDB set multi_user
GO

这句话在第一行也失败了。

现在我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

按照以下步骤操作。

  • 打开SQL Management Studio并连接到数据库服务器
  • 右键单击数据库
  • 单击“属性”
  • 点击选项链接
  • 将恢复模型设置为简单,如下所示

enter image description here

  • 点击确定
  • 完成后,再次右键单击数据库
  • 点击任务>收缩>文件
  • 在“收缩数据库”窗口中,选择“日志”作为文件类型。文件名显示在文件名下拉为databasename_log,如下所示:

enter image description here

使用的空间与分配的空间显示。将恢复模型设置为Simple后,将释放事务日志中的大部分空间。

  • 确保已选中“释放未使用空间”单选按钮。
  • 在此窗口中单击“确定”以缩小事务日志。

您可能还想阅读这篇简短的帖子 http://sqlity.net/en/556/t-sql-tuesday-25-%E2%80%93-sql-server-tips-tricks/