PDA

查看完整版本 : 彻底删除数据库日志的方法


Tony
2004-03-29, 09:39 PM
彻底删除数据库日志的方法
现在私服运行了一段时间,特别是人比较多的服,相信大家的数据库日志log文件已经相当大了吧。其实这些log文件对于我们普通用户来说是没什么用,上面只是详细的记录了所有对该数据库的每一步操作,实际的数据已经保存到数据库文件中了,所以是不可能有什么回档之类的问题的。以前我们也问过微软的人,据说是如果你的数据库文件坏掉了,有这个他们有办法帮助你恢复数据库,但是由于方法并不公开,所以对于我们来说,这只是占空间的东西。因为原先没觉得这个是问题,所以也没站出来介绍一下,现在看越来越多的朋友问这个问题,就提供一下方法。下面是主题了:

1、进入企业管理器,选中数据库,比如muonline
2、所有任务->分离数据库
3、到数据库文件的存放目录,将MuOnline_log.LDF文件删除,你怕S的话可以拷出去
4、企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个*,不要紧继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5、记得数据库重新附加后用户要重新设置一下。

以后如果新的日志文件变大了,再继续这个步骤就行了。


==------------------------------------------


减少SQL日志的方法
--假设test2为数据库名称
在查询分析器中执行:
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)

将上面的语句多次执行,直到日志文件缩小。
exec sp_dboption 'MuOnline','autoshrink','on'
建立作业,每半个小时一次日志备份,每天一次完全数据库备份。
在Log收缩到正常大小后,将autoshrink选项设置为off。

查询分析器里运行:
backup log MuOnlie with NO_LOG
backup log MuOnlie with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnlie)

关于SQL的日志清理命令!大家看看有没有用吧!
BACKUP LOG MuOnline WITH NO_LOG
DBCC SHRINKDATABASE(MuOnline,10)

这是清理MuOnline日志的 千万点到MuOnline再选查询分析器 不然整理了其他数据库会出错的






看看这个
关于各种日志暴大的解决办法(3种)
关于各种日志暴大的解决办法
要限制sql日志的大小很容易,只要选到那两个数据库(muonline和ranking)然后右键属性,在数据文件和事务日志里面就可以改
关键是那个joinserver的日志,有时候很正常,一天下来顶多几十m,有时候1分钟就能赏到4个G,其实要他不生成那么大的日志很简单,只要到joinserver的目录里面把log那个目录删除或改名就可以了(我就是这么干的),一点都不影响使用,开joinserver的时候它只会说write log error,对正常使用没有影响,这样joinserver目录就一直是700多k了,哈哈
对于GS和其他的日志,因为都很小,所以就没改,个人认为其实也可以这么干的

真正解决数据库日志大的方法
首先在数据库属性里把按百分比增长从10%改为1%,这样就大大限制了增长速度
其次在每次重启服务器的时候,在查询器里执行下面的,这样的方法是我认为最安全也是最简单的,建议置顶
感觉好用的朋友顶了
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)
解决数据库日志大的方法
、进入企业管理器,选中数据库,比如muonline
2、所有任务->分离数据库
3、到数据库文件的存放目录,将MuOnline_log.LDF文件删除,你怕S的话可以拷出去
4、企业管理器->附加数据库,选muonline,这个时候你会看见日志文件这项是一个*,不要紧继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5、记得数据库重新附加后用户要重新设置一下


[推荐]数据库自动备份、缩小以及防止回档
不要在属性里限制数据库大小,这样文件容量满的时候会出现回档

建立作业,每天自动备份数据库,自动删除2天前的备份

建立作业,每天运行一次以下代码,缩小日志文件
backup log MuOnline with NO_LOG
backup log MuOnline with TRUNCATE_ONLY
DBCC SHRINKDATABASE(MuOnline)

我就是这么做的,什么问题都没有,MU服务端全部用到的空间顶多2个G




日志可以这样减肥!!
右击MuOnline,所有任务,分离数据库
然后到D:\Muserver\db 把那个.log文件删掉
你会发现MuOnline数据库消失了
右击一下,所有任务,点 附加数据库
路径指向D:\Muserver\db 选中里面的.mdf
你会发现日志有个大**
不管它,直接点确定。
系统提示找不到日志,要不要新建一个
新建一个就Ok了。
这样减肥效果不错吧。


[原创]删除MEMB_INFO或VI_CURR_INFO重复数据的方法
很多朋友在论坛里提出关于删除MEMB_INFO和VI_CURR_INFO表中重复数据的问题,有不少热心的朋友也给出了解决的方法,为解决对数据库操作不是很熟练的朋友的问题,特在此给出一个简单的方法,有时间在给大家写个存储过程 -_-#
方法如下:
将下列语句复制到查询分析器中,点“执行查询”或者按“F5”,直到下面窗口中没有显示的数据为止。(select语句为显示现在你的表中存在的重复数据,delete语句为1个1个的删除表中存在的重复数据)
如果你要删除重复数据的表为VI_CURR_INFO,请将下面语句中MUMB_INFO换成VI_CURR_INFO即可。
注意:如果表中的重复数据的MEMB_GUID的值相同请不要使用!!!
命令如下:
use muonline
select memb_guid,memb___id from memb_info where memb___Id in (select memb___id from memb_info group by memb___id having count(memb___id)>1)
delete from memb_info where memb_guid in (select top 1 memb_guid from memb_info where memb___id in (select memb___id from memb_info group by memb___id having count(memb___id)>1))
go