📄 subject_46687.htm
字号:
<p>
序号:46687 发表者:随心所欲 发表日期:2003-07-12 20:43:14
<br>主题:数据库大小的控制
<br>内容:SQL Server的日志文件的增长太快了,我有一数据库,里面的数据一个月清除一次,但是数据库日志文件现在却有1.5G左右了,请教各位有什么好的方法可以让它变小一点?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:roy 回复日期:2003-07-15 08:43:36
<br>内容:有人这样说:先备份数据库日志,再收缩数据库。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:开心玩够 回复日期:2003-07-15 10:01:58
<br>内容:把代码COPY到查询分析器里,,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可(我已经用过多次了) <BR>----- <BR>SET NOCOUNT ON <BR>DECLARE @LogicalFileName sysname, <BR>@MaxMinutes INT, <BR>@NewSize INT <BR> <BR> <BR>USE Marias -- 要操作的数据库名 <BR>SELECT @LogicalFileName = ‘Marias_log‘, -- 日志文件名 <BR>@MaxMinutes = 10, -- Limit on time allowed to wrap log. <BR>@NewSize = 100 -- 你想设定的日志文件的大小(M) <BR> <BR>-- Setup / initialize <BR>DECLARE @OriginalSize int <BR>SELECT @OriginalSize = size <BR>FROM sysfiles <BR>WHERE name = @LogicalFileName <BR>SELECT ‘Original Size of ‘ + db_name() + ‘ LOG is ‘ + <BR>CONVERT(VARCHAR(30),@OriginalSize) + ‘ 8K pages or ‘ + <BR>CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + ‘MB‘ <BR>FROM sysfiles <BR>WHERE name = @LogicalFileName <BR>CREATE TABLE DummyTrans <BR>(DummyColumn char (8000) not null) <BR> <BR> <BR>DECLARE @Counter INT, <BR>@StartTime DATETIME, <BR>@TruncLog VARCHAR(255) <BR>SELECT @StartTime = GETDATE(), <BR>@TruncLog = ‘BACKUP LOG ‘ + db_name() + ‘ WITH TRUNCATE_ONLY‘ <BR> <BR>DBCC SHRINKFILE (@LogicalFileName, @NewSize) <BR>EXEC (@TruncLog) <BR>-- Wrap the log if necessary. <BR>WHILE @MaxMinutes " DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired <BR>AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) <BR>AND (@OriginalSize * 8 /1024) " @NewSize <BR>BEGIN -- Outer loop. <BR>SELECT @Counter = 0 <BR>WHILE ((@Counter lt; @OriginalSize / 16) AND (@Counter lt; 50000)) <BR>BEGIN -- update <BR>INSERT DummyTrans VALUES (‘Fill Log‘) <BR>DELETE DummyTrans <BR>SELECT @Counter = @Counter + 1 <BR>END <BR>EXEC (@TruncLog) <BR>END <BR>SELECT ‘Final Size of ‘ + db_name() + ‘ LOG is ‘ + <BR>CONVERT(VARCHAR(30),size) + ‘ 8K pages or ‘ + <BR>CONVERT(VARCHAR(30),(size*8/1024)) + ‘MB‘ <BR>FROM sysfiles <BR>WHERE name = @LogicalFileName <BR>DROP TABLE DummyTrans <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:金枪鱼 回复日期:2003-07-15 11:06:44
<br>内容:TO:2楼<BR>怎么COPY进入,修改名称等后运行通不过!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:金枪鱼 回复日期:2003-07-17 14:33:59
<br>内容:Up
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:qiusb 回复日期:2003-07-17 16:40:15
<br>内容:感谢各位的支持,我也试用了各种方法,还可以。谢谢!!!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -