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

Moh*_*ihy 5 database sql-server

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

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
Run Code Online (Sandbox Code Playgroud)

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

我尝试打开属性窗口时出错

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

 ALTER DATABASE MyDB
 MODIFY FILE
 (NAME=MyDB_Log,MAXSIZE=2TB,FILEGROWTH=20MB);
Run Code Online (Sandbox Code Playgroud)

这个语句执行成功,但没有帮助我恢复我的数据库然后我尝试设置离线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
Run Code Online (Sandbox Code Playgroud)

该声明在第一行也失败了.

现在我不知道该怎么办.

Sta*_*ace 1

请按照以下步骤操作。

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

在此输入图像描述

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

在此输入图像描述

已使用的空间与分配的显示空间。将恢复模式设置为“简单”后,事务日志中的大部分空间被释放。

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

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