数据库日志满了怎么办?如何删掉日志?

lxf31 2005-12-12 09:15:41
从数据库中删除数据或日志文件

展开服务器组,然后展开服务器。


展开"数据库"文件夹,右击要从中删除数据或日志文件的数据库,然后单击"属性"命令。


若要删除数据文件,单击"常规"选项卡。若要删除日志文件,单击"事务日志"选项卡。


在"文件名"列中,单击要删除的文件名旁边的箭头,再按 DELETE 键。文件名旁出现十字光标,表明将删除此文件。


说明 只能删除空文件。从数据库中删除文件之前,应先删除文件中的所有对象,并收缩该数据库。

====================================================

以上是帮助信息里查找到的方法,我现在是:“若要删除日志文件,单击"事务日志"选项卡。”然后点删除,提示:“错误5250,不能从数据库中删除数据库文件或日志文件”


谢谢各位!



...全文
1551 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangbo88 2005-12-12
  • 打赏
  • 举报
回复
这是因为你将数据库设为‘完全模式’,非活动的日志也记录下来且没有被删除的原因。

已有数据的日志文件是不能删除的,其实在删除很简单的,以下方法:
将你的数据库设为‘简单模式’,然后优化数据库,在数据库属性中设‘数据库自动收缩’。
以后非活动的日志就会被删除了,只保留活动的日志。
lxw99 2005-12-12
  • 打赏
  • 举报
回复
关注

SQL Server 啊 努力 奋斗-----------------------------------------------------

lxf31 2005-12-12
  • 打赏
  • 举报
回复
回复人: zkc727(寻梦...) ( ) 信誉:100 2005-12-12 09:33:00 得分: 0


先将数据库分离,在删除


==========================

此种方法不可行,我已经试验过了。
子陌红尘 2005-12-12
  • 打赏
  • 举报
回复
--正确的处理日志的方法

--压缩日志及数据库文件大小

/*--特别注意

请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.


一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
--*/

--下面的所有库名都指你要处理的数据库的库名

1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)

4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库

b.在我的电脑中删除LOG文件

c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库

此法将生成新的LOG,大小只有500多K

或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

a.分离
EXEC sp_detach_db @dbname = '库名'

b.删除日志文件

c.再附加
EXEC sp_attach_single_file_db @dbname = '库名',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'

5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"

--SQL语句设置方式:
EXEC sp_dboption '库名', 'autoshrink', 'TRUE'

6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)

--SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)
ycyin 2005-12-12
  • 打赏
  • 举报
回复
在Enterprise Manager中右键点击数据库图标,选择All Tasks -> Backup Database,在弹出的窗口中选择Transaction log。备份完成以后选择All Tasks -> Shrink Database。有时候一次不行就重复以上操作。直到日志文件达到设定的最小值。

要删除日志文件,首先在数据库的属性中将需要删除的日志文件的Automatically grow file选项取消,然后用上面的办法备份日志,shrink数据库,直到日志文件的大小变成零,就可以删除了。
poplarjvjv1981 2005-12-12
  • 打赏
  • 举报
回复
up
常飞梦 2005-12-12
  • 打赏
  • 举报
回复
日志不用删,压缩一下就可以了:
backup log db_name with no_log --截断事务日志

dbcc thrinkfile ('db_log') --收缩事务日志
zkc727 2005-12-12
  • 打赏
  • 举报
回复
先将数据库分离,在删除
zhouhaihe 2005-12-12
  • 打赏
  • 举报
回复
USE master
BACKUP LOG 数据库名 WITH NO_LOG
DBCC SHRINKDATABASE (数据库名,1,TRUNCATEONLY) //收缩日志文件

一般这样处理后,日志文件不到2M
lxf31 2005-12-12
  • 打赏
  • 举报
回复
服务器硬盘空间已经完全不够大了,在设定属性的时候日志文件增长没有加限定,现在头疼的问题出现了。


焦急等待中!

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧