[Error Fix] The transaction log for database 'DATABASENAME' is full

来源:互联网 发布:注册域名几天可以交易 编辑:程序博客网 时间:2024/04/30 13:52

error info:


Microsoft OLE DB Provider for ODBC Drivers ���~ '80040e14'


[Microsoft][ODBC SQL Server Driver][SQL Server]The transaction log for database 'haiyangproducts' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases


/e/product/product_detail.asp, �C16


fix steps:

USE databasename;
GO
ALTER DATABASE databasename SET RECOVERY SIMPLE;--如果是FULL类型,修改为SIMPLE类型 
GO
DBCC SHRINKFILE (databasename_Log, 10); --10MB--收缩日志文件大小(单位是M)
GO
ALTER DATABASE databasename SET RECOVERY FULL;--恢复成FULL类型


收缩数据库 DBCC SHRINKFILE:


  数据库中的每个文件都可以通过删除未使用的页的方法来减小。尽管数据库引擎会有效地重新使用空间,但某个文件多次出现无需原来大小的情况后,收缩文件就变得很有必要了。数据和事务日志文件都可以减小(收缩)。可以成组或单独地手动收缩数据库文件,也可以设置数据库,使其按照指定的间隔自动收缩。


  文件始终从末尾开始收缩。例如,如果有个 5 GB 的文件,并且在dbcc shrinkfile 语句中将 target_size 指定为 4 GB,则数据库引擎将从文件的最后一个 1 GB 开始释放尽可能多的空间。如果文件中被释放的部分包含使用过的页,则数据库引擎先将这些页重新放置到文件的保留部分。只能将数据库收缩到没有剩余的可用空间为止。例如,如果某个 5 GB 的数据库有 4 GB 的数据,并且在dbcc shrinkfile语句中将 target_size 指定为 3 GB,则只能释放 1 GB。