关于怎样缩小、删除数据库日志文件的几点策略!

两天一直在思考、在网上查询各种资料,怎样才能做到缩小、删除数据库日志文件的最优解决方

案.还好,没有白白浪费时间、精力,总结出几点常见的情况以及相对应的解决方案。好东西当然

不能独享了,分给大家!
前言:
有一次涉及到数据库日志的相关操作,但,那时没有上心,也就作罢.18号的时候,一台服务器出

现问题。牵引到数据库日志这块,再看看自己做的一些“低级”设置,着实让我倒吸了一口凉气!

还好发现的早,否则,等到出事那天,偶只有卷着铺盖回家了....
查询网上各种信息,对了,声明下,我一直有用BaiDu,Google的习惯,因此所得信息也就来源于

此,但发现,并不是所有的方法都对的上路.以及在这些方法当中,存在的不足之处,Ok,唠叨了半

天,下面进入正文:
18号查看日志文件时,发现已经增大到几个G的空间,于是马上查找相应的对策,记得有个朋友说

过,停掉SQL Server服务器,删除目录文件下的.Log文件.。于是乎,偶就那么做了,结果呢?在刷

新完数据库后,提示"置疑".一般情况下,如果数据库出现"置疑".则可能是由于以下原因造成.
 1.数据库文件丢失或数据文件损坏.
 2.磁盘损坏或磁盘没有存储的空间.解决方案参

考:http://topic.csdn.net/t/20030612/18/1908800.html
 3.一个大型事务, 尤其像批量数据更新、插入或删除。
 4.一个未提交的事务。
 5.检查点处理程序截除时所需的带宽过大。
 6.截除时超过阈值
上述各种条件互相作用的结果。用于发布的标记事务没有被日志读取程序读走
那么,怎么解决呢?
我遇到的,是第一种情况,原因是我把.log文件删除,系统找不到,当然置疑了^_^...
当我把文件还原后,仍旧置疑,ok,重新启动了服务,哈哈...成功了..!
谢天谢地,要不然,可就惨了,我可是直接在服务器上操作的阿..当初还担心被我删除的.log文件找

不回来,可怎么办?还好,它在.
转回来.谈谈数据库日志文件删除的几种情况.
 1.利用分离数据库的方法.(前提是,你的库,没有做任何服务.)操作步骤如下:
  1.1.首先你要知道你的数据库存放的路径
   例如:
   D:\DataBaseFile\pos_Data1.MDF
   D:\DataBaseFile\pos_Log1.LDF
  具体的存放位置,请到数据库属性中查找.
  1.2.数据库名-->右击-->所有任务-->分离数据库-->确定
   这时你的数据库就不见了,不要着急.

  1.3.到上面说的存放路径,删除对应的.LDF文件

  1.4.现在还原数据库,
   在"企业管理器中"在数据库上右击-->所有任务-->附加数据库-->找到

对应路径中的文件,确定.

这样数据库的日志就删除了.数据文件没有什么变化。之后,系统会自动生成.log文件,你看看,是不

是比以前小了?^_^
再次提示:
当把数据库设置为"同步复制"或其他服务的时候,库是拒绝做任何操作的.
 2.数据库出现"置疑",重启数据库后该数据库又找不到了,数据文件附加的时候报错误823!
 解决方案:
  2.1.新建一个同名的数据库
  2.2.再停掉sql server
  2.3.用suspect数据库的文件覆盖掉这个新建的同名数据库
  2.4.再重启sql server
  2.5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的

语句(注意修改其中的数据库名)

USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的同名数据库名'
Go
sp_dboption '置疑的同名数据库名', 'single user', 'true'
Go
DBCC CHECKDB('置疑的同名数据库名')
Go
update sysdatabases set status =28 where name='置疑的同名数据库名'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '置疑的同名数据库名', 'single user', 'true'
Go
  2.6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,

解决办法是,利用数据库的脚本创建一个新的数据库,并将数据导进去就行了.
提供以下个人认为有价值研究的连接:
 http://www.sql-club.com/net2004/archive/2005/09/13/214.aspx(相信这个解决方法可

以解决掉任何此类错误)
 http://www.super-down.net/article/7/174/2006/20060322554.html
 http://www.it-exam.net/blog/article.asp?id=23(文中提到"建立同名数据库".值得商

榷.我遇到的情况就不允许建立.提示说,已经有数据库存在.我不清楚是否有在服务启动的情况下,
成功建立同名数据的.如果有,请留言告诉您是怎么解决这个问题的?)
如果SQL数据库置疑恢复后,使用过程中又忽然出现置疑.怎么解决?
这个问题,请参考以下文章:
http://www.52sdn.com/artid/261/261959.html
以上是自己关于这类问题的解决方案.具体的问题,需要具体分析,这就看大家的本事了^_^.... 

posted @ 2008-06-23 23:06  jason wei  阅读(542)  评论(0编辑  收藏  举报