﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-gaich-随笔分类-数据库</title><link>http://www.blogjava.net/gaich/category/1655.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 03:24:05 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 03:24:05 GMT</pubDate><ttl>60</ttl><item><title>[窍门] MS SQL Server 压缩日志及数据库文件大小</title><link>http://www.blogjava.net/gaich/archive/2005/06/30/6927.html</link><dc:creator>gaich</dc:creator><author>gaich</author><pubDate>Thu, 30 Jun 2005 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/gaich/archive/2005/06/30/6927.html</guid><wfw:comment>http://www.blogjava.net/gaich/comments/6927.html</wfw:comment><comments>http://www.blogjava.net/gaich/archive/2005/06/30/6927.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gaich/comments/commentRss/6927.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gaich/services/trackbacks/6927.html</trackback:ping><description><![CDATA[<BR>/*--特别注意 <BR><BR>请按步骤进行,未进行前面的步骤,请不要做后面的步骤 <BR>否则可能损坏你的数据库. <BR><BR><BR>一般不建议做第4,6两步 <BR>第4步不安全,有可能损坏数据库或丢失数据 <BR>第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. <BR>--*/ <BR><BR>1.清空日志 <BR>DUMP&nbsp; TRANSACTION&nbsp; 库名&nbsp; WITH NO_LOG&nbsp;&nbsp;&nbsp; <BR><BR>2.截断事务日志： <BR>BACKUP LOG 数据库名 WITH NO_LOG <BR><BR>3.收缩数据库文件(如果不压缩,数据库的文件不会减小 <BR>企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 <BR>--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 <BR>--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 <BR><BR>也可以用SQL语句来完成 <BR>--收缩数据库 <BR>DBCC SHRINKDATABASE(客户资料) <BR><BR>--收缩指定数据文件,1是文件号,可以通过这个语句查询到: select * from sysfiles <BR>DBCC SHRINKFILE(1) <BR><BR>4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) <BR>a.分离数据库: <BR>企业管理器--服务器--数据库--右键--分离数据库 <BR><BR>b.在我的电脑中删除LOG文件 <BR><BR>c.附加数据库: <BR>企业管理器--服务器--数据库--右键--附加数据库 <BR><BR>此法将生成新的LOG，大小只有500多K <BR><BR>或用代码： <BR>下面的示例分离 pubs，然后将 pubs 中的一个文件附加到当前服务器。 <BR><BR>a.分离 <BR>EXEC sp_detach_db @dbname = 'pubs' <BR><BR>b.删除日志文件 <BR><BR>c.再附加 <BR>EXEC sp_attach_single_file_db @dbname = 'pubs', <BR>&nbsp;&nbsp; @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' <BR><BR>5.为了以后能自动收缩,做如下设置: <BR>企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" <BR><BR>--SQL语句设置方式: <BR>EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE' <BR><BR>6.如果想以后不让它日志增长得太大 <BR>企业管理器--服务器--右键数据库--属性--事务日志 <BR>--将文件增长限制为xM(x是你允许的最大数据文件大小) <BR><BR>--SQL语句的设置方式: <BR>alter database 数据库名 modify file(name=逻辑文件名,maxsize=20) <BR><BR>转载自: <A href="http://bbs.qq.com/cgi-bin/bbs/show/content?groupid=102:10055&amp;st=&amp;sc=&amp;messageid=53277" target=_blank>http://bbs.qq.com/cgi-bin/bbs/show/content?groupid=102:10055&amp;st=&amp;sc=&amp;messageid=53277</A><BR><img src ="http://www.blogjava.net/gaich/aggbug/6927.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gaich/" target="_blank">gaich</a> 2005-06-30 11:13 <a href="http://www.blogjava.net/gaich/archive/2005/06/30/6927.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>