<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post//</link>
<title><![CDATA[SQL SERVER日志清除的两种方法]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Windows相关]]></category>
<pubDate>Thu, 31 Jul 2008 17:10:53 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//</guid> 
<description>
<![CDATA[ 
	在使用过程中大家经常碰到数据库日志非常大的情况，在这里介绍了两种处理方法…… <br/>　　方法一<br/><br/>　　一般情况下，SQL数据库的收缩并不能很大程度上减小数据库大小，其主要作用是收缩日志大小，应当定期进行此操作以免数据库日志过大<br/><br/>　　、设置数据库模式为简单模式:打开SQL企业管理器，在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”，然后按确定保存<br/><br/>　　2、在当前数据库上点右键，看所有任务中的收缩数据库，一般里面的默认设置不用调整，直接点确定<br/><br/>　　3、收缩数据库完成后，建议将您的数据库属性重新设置为标准模式，操作方法同第一点，因为日志在一些异常情况下往往是恢复数据库的重要依据<br/><br/>　　方法二<br/><br/>　　SET NOCOUNT ON<br/><br/>　　DECLARE @LogicalFileName sysname,<br/><br/>　　@MaxMinutes INT,<br/><br/>　　@NewSize INT<br/><br/>　　USE tablename -- 要操作的数据库名<br/><br/>　　Sel&#0;ct @LogicalFileName = 'tablename_log', -- 日志文件名<br/><br/>　　@MaxMinutes = 0, -- Limit on time allowed to wrap log.<br/><br/>　　@NewSize =&nbsp;&nbsp;-- 你想设定的日志文件的大小(M)<br/><br/>　　-- Setup / initialize<br/><br/>　　DECLARE @OriginalSize int<br/><br/>　　Sel&#0;ct @OriginalSize = size<br/><br/>　　FROM sysfiles<br/><br/>　　Wh&#0;re name = @LogicalFileName<br/><br/>　　Sel&#0;ct 'Original Size of ' + db_name() + ' LOG is ' +<br/><br/>　　CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages o ' +<br/><br/>　　CONVERT(VARCHAR(30),(@OriginalSize*8/024)) + 'MB'<br/><br/>　　FROM sysfiles<br/><br/>　　Wh&#0;re name = @LogicalFileName<br/><br/>　　Cr&#0;ate TABLE DummyTrans<br/><br/>　　(DummyColumn char (8000) not null)<br/><br/>　　DECLARE @Counter INT,<br/><br/>　　@StartTime DATETIME,<br/><br/>　　@TruncLog VARCHAR(255)<br/><br/>　　Sel&#0;ct @StartTime = GETDATE(),<br/><br/>　　@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'<br/><br/>　　DBCC SHRINKFILE (@LogicalFileName, @NewSize)<br/><br/>　　EXEC (@TruncLog)<br/><br/>　　-- Wrap the log if necessary.<br/><br/>　　WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired<br/><br/>　　AND @OriginalSize = (Sel&#0;ct size FROM sysfiles Wh&#0;re name = @LogicalFileName)<br/><br/>　　AND (@OriginalSize * 8 /024) > @NewSize<br/><br/>　　BEGIN -- Outer loop.<br/><br/>　　Sel&#0;ct @Counter = 0<br/><br/>　　WHILE ((@Counter < @OriginalSize / 6) AND (@Counter < 50000))<br/><br/>　　BEGIN -- up&#00;ate<br/><br/>　　Ins&#0;rt DummyTrans VALUES ('Fill Log')<br/><br/>　　Del&#0;te DummyTrans<br/><br/>　　Sel&#0;ct @Counter = @Counter + <br/><br/>　　END<br/><br/>　　EXEC (@TruncLog)<br/><br/>　　END<br/><br/>　　Sel&#0;ct 'Final Size of ' + db_name() + ' LOG is ' +<br/><br/>　　CONVERT(VARCHAR(30),size) + ' 8K pages o ' +<br/><br/>　　CONVERT(VARCHAR(30),(size*8/024)) + 'MB'<br/><br/>　　FROM sysfiles<br/><br/>　　Wh&#0;re name = @LogicalFileName<br/><br/>　　Dro TABLE DummyTrans<br/><br/>　　SET NOCOUNT OFF<br/>Tags - <a href="http://www.zhanghaijun.com/tags/sql/" rel="tag">sql</a> , <a href="http://www.zhanghaijun.com/tags/server/" rel="tag">server</a> , <a href="http://www.zhanghaijun.com/tags/%25E6%2597%25A5%25E5%25BF%2597%25E6%25B8%2585%25E9%2599%25A4/" rel="tag">日志清除</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post//#blogcomment</link>
<title><![CDATA[[评论] SQL SERVER日志清除的两种方法]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>