怎样截断SQL 2000的日志文件?

371xingxiu 2003-10-16 11:48:16
有没有好的办法截断SQL2000的日志文件。最好在不停止2000服务的情况下。
另为能不能在建立数据库的时候就设置让其日志文件不增加!永远都是那么大,这样就不必费事的去截断他的日志了~
...全文
381 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
371xingxiu 2003-10-17
  • 打赏
  • 举报
回复
1、DUMP TRANSACTION 库名 WITH NO_LOG 是什么意思,把日志文件的内容清空吗!
2、将数据库设置为“自动收缩”是什么意思!是不是这样日志文件就不自动增加了。
但这样的话数据库有没有什么危险!
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
--清除日志
方法1、
--在查询分析器,选中所要清理日志的数据库,执行如下SQL
backup log 数据库名 with no_log
DBCC SHRINKFILE ( 日志文件名或日志文件ID,要缩小的目标大小)

在当前数据库下
select fileid,groupid,name from sysfiles where groupid=0
----------------------------------------------------------
得到以下结果
fileid groupid name
2 0 test_log

以上结果,fileid为日志文件ID,name为test_log

你可以
backup log test with no_log
dbcc shrinkfile (2,2)
or
backup log test with no_log
dbcc shrinkfile ('test_log',2)
如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复 模型 选择 简单模型就可以了!
或用SQL语句
alter database 数据库名 set recovery simple

方法2、
SQL SERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
txlicenhe 2003-10-16
  • 打赏
  • 举报
回复
1: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'


2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

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

sdhdy 2003-10-16
  • 打赏
  • 举报
回复
楼主,问题还没解决吗?我的方法一试了吗?
gmlxf 2003-10-16
  • 打赏
  • 举报
回复
企业管理器:
1、分离数据库
2、删除ldf文件(data目录中)
3、附加数据库

查询分析器:
EXEC sp_detach_db @dbname = 'pubs'
2、删除ldf文件(data目录中)
EXEC sp_attach_single_file_db @dbname = 'pubs',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
371xingxiu 2003-10-16
  • 打赏
  • 举报
回复
1、DUMP TRANSACTION 库名 WITH NO_LOG 是什么意思,把日志文件的内容清空吗!
2、将数据库设置为“自动收缩”是什么意思!是不是这样日志文件就不自动增加了。
但这样的话数据库有没有什么危险!
arrow_gx 2003-10-16
  • 打赏
  • 举报
回复
先分离数据库,将原 log 文件改名,然后在附加数据库,SQL会自动生成log文件,操作成功后,将原 log 文件删掉,

解决问题
zjcxc 2003-10-16
  • 打赏
  • 举报
回复
建议:

2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG


分离数据库--删除日志的方法有一定的危险性.
lga 2003-10-16
  • 打赏
  • 举报
回复
1、将你的数据库设为“自动收缩”
2、建立一数据库维护计划自动备份日志即可
sdhdy 2003-10-16
  • 打赏
  • 举报
回复
1、你如果把SQL的服务停掉,如何分离数据库?
2、删除日志以后最好是马上附加数据库
371xingxiu 2003-10-16
  • 打赏
  • 举报
回复
sdhdy(大江东去...) 大哥:
如果用第二个办法的话,需不需要把SQL的服务停掉。如果有工作站正在访问数据库是时候能不能用这个办法来截断日志!
另外。如果删除日志以后要是不附加数据库的话,是不是这个数据库就不能使用了!

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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