我有一个使用 SQL 2008 运行模拟 SQL 2005 数据库的 Web 服务器,并且我有一个用于测试环境的本地 SQL 2005 数据库。
这导致我使用脚本来备份/恢复数据以进行测试,因为 2008 服务器备份不会恢复到 2005 服务器。
当我在生产 Web SQL Server (2008) 上运行此 SQL 查询以减小表的大小时
DELETE FROM TickersDay
WHERE (DATEDIFF(day, TickersDay.[date], GETDATE()) >= 8)
GO
我收到这条消息:
Msg 9002, Level 17, State 4, Line 3
The transaction log for database 'VTNET' is full. To find out why space in the log
cannot be reused, see the log_reuse_wait_desc column in sys.databases
我有时也会在发布脚本时出现它。
当我运行此 SQL 命令时,我得到以下结果:
SELECT [name], recovery_model_desc, log_reuse_wait_desc
FROM sys.databases
结果:
[name] recovery_model_desc log_reuse_wait_desc
VTNET SIMPLE ACTIVE_TRANSACTION
以下是我的问题和问题:
- 我明白了..我有一个需要回滚命令的事务语句
< if @@Trancount > 0 Rollback > .. 但我有 100 个存储过程,所以在我这样做之前....
与此同时......我怎样才能消除这个问题?我试过 SHRINKING 并尝试备份 Db ......
如您所见,它处于简单模式...我不知道如何备份 LOG ONLY 文件...(还没有找到如何做到这一点)...