Sql server 如何拆分SQL Server事务日志

Sql server 如何拆分SQL Server事务日志,sql-server,database-design,transaction-log,Sql Server,Database Design,Transaction Log,我的数据库服务器磁盘空间刚刚用完。事务日志占用了100GB的空间,而我只有30GB的可用空间。因此,一些事务需要无限长的时间来处理,导致9002错误 我想问一下,是否有一种方法可以拆分此事务日志并删除其中一个以获得一些可用空间。现在我无法进行备份,也无法通过添加另一个磁盘来增加磁盘空间 如果有任何一个解决方案比拆分事务日志更好,那就太好了。有很多关于处理大型日志的好资源,从这里链接到: 基本上,您需要在数据库上获得更多空间、备份日志或切换到简单恢复模式。每种方法都有其起伏。在实践中 数据、日志

我的数据库服务器磁盘空间刚刚用完。事务日志占用了100GB的空间,而我只有30GB的可用空间。因此,一些事务需要无限长的时间来处理,导致9002错误

我想问一下,是否有一种方法可以拆分此事务日志并删除其中一个以获得一些可用空间。现在我无法进行备份,也无法通过添加另一个磁盘来增加磁盘空间


如果有任何一个解决方案比拆分事务日志更好,那就太好了。

有很多关于处理大型日志的好资源,从这里链接到:

基本上,您需要在数据库上获得更多空间、备份日志或切换到简单恢复模式。每种方法都有其起伏。

在实践中

数据、日志和操作系统应位于不同的磁盘上。。。 用C表示操作系统,用E表示数据,用L表示日志

如果事务日志在事务备份后没有收缩,那么您可能需要检查您的设置。完整或简单(不收缩日志)

要强制收缩数据库设置为“简单”的日志,请执行以下操作:

Alter database <databasename>set Recovery simple   /* if database is set to FULL */
USE <databasename>
DBCC SHRINKFILE (<log_name>, 0, TRUNCATEONLY)
GO
Alter database <databasename> set Recovery full  /* if database is set to FULL */
Alter database set Recovery simple/*如果数据库设置为FULL*/
使用
DBCC收缩文件(,0,截断)
去
如果数据库设置为“已满”,则更改数据库设置为“已满”*/
希望这有帮助