读书人

事务日志已满 请参阅sys.databases中的

发布时间: 2012-03-30 17:32:09 作者: rapoo

事务日志已满 请参阅sys.databases中的log_reuse_wait_desc列
我把一个表大量数据insert into 到另一个数据库的表时,提示
数据库 'webdisk ' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
现在 是不能改insert语句和程序结构了,有没有办法解决这个问题

[解决办法]
--select * from sysfiles
--1. 假料IEERP 料iedata1(名), logielog1(名)

--2.行下列指令(各步都定料IEERP):
dbcc shrinkfile(IEDB3_Log,notruncate)
dbcc shrinkfile(IEDB3_Log,truncateonly)
create table t1 (char1 char(4000))
go
declare @i
int select @i = 0
while (1 = 1)
begin
while (@i < 100)
begin
insert into t1 values ( 'a ') select @i = @i +1
end
truncate table t1
backup log ERPDB with truncate_only
end
go

--此段程式圈, log大小 行分或小再stop(一般而
--言,2~10分已足)

dbcc shrinkfile(IEDB3_Log,truncateonly)

drop table t1

-- 3.查看log file size 已Shrink成功



[解决办法]
--先备份数据库

--截断事务日志
backup log 数据库名 with no_log
go

--收缩数据库
dbcc shrinkdatabase(数据库名)
go

读书人网 >SQL Server

热点推荐