怎样删除SQLSERVER2000的系统日志(50分)

  • 主题发起人 一剑封喉
  • 开始时间

一剑封喉

Unregistered / Unconfirmed
GUEST, unregistred user!
记得在SQL SERVER 6。5中清除某一数据库的日志是很简单的 有一个truncate的选项
怎么到了SQL SERVER2000上就没有了呢?怎么也找不到,不会是先备份一下,然后删除重
建数据库,然后恢复吧,那也太累了吧!请各位大侠帮忙
 
你先分离数据库,然后删除日志的文件,再附加数据库,这样日志文件就是新的了
 
难道就没有更好的方法了吗?这还得分离,能不能告诉我分离数据库是什么意思?
 
分离数据库就是把数据库中SQL SERVER中伪删除,就是在SQL SERVER中看不到了,
但数据库文件和日志文件依然还存在
 
除了这种方法之外,难道就没有其他正大光明的清除SQLSERVER日志的方法吗?
我分离数据库以后,删除日志文件,然后附加,日志文件变小,但是在做一个查询时候,系统
又提示日志满了,请清除,真不明白,这个破东西,请各位大侠指点
 
有两种方法
1. 用sp_detach_dh 'databasename' 分离数据库 然后删除 .ldf 文件 然后
用sp_attach_DB 'DATABASENAME','PATH+FILENAME'
2. 用
dbcc shrinkdatabase('databasename')
backup log databasename with no_log
这种方法 有时候不行.(在sql server 7.0 下) 在2000 具体怎没有测试.
据帮助说 肯定可以.
 
chshanghai兄,你的前一种方法好象和SQLSERVER2000提供的方法是一样的呀,我觉得这种方法
不行,尽管清空了系统的日志的文件,但是在系统的某些地方还是没有标记清空,
所以,有时候还是会报系统日志满的错误
 
我的第一种方法 肯定是可以的
你执行sp_detach_db 后 [red]要删除 *.ldf 文件[/red]. 然后执行sp_attach_db
 
chshanghai兄,.ldb是什么文件呀,我去哪里找呀,日志文件不是.log吗
 

要删除 [h3]*.ldf[/h3] 文件 不是*.ldb sqlserver 的日志文件后缀是 *.ldf 不是*.log
 
这哥们真是菜的有点可爱。我觉得chshanghai的方法是可行的。
 
1.DUMP TRUN 数据库 WITH TRUNCATE_ONLY
2.backup log 数据库 with truncate_only
3.DBCC SHRINKDATABASE (数据库, TRUNCATEONLY)
试试我收集的这些语句,绝对有一种可以的.
 
chshanghai兄,不好意思,弄错了,不过我还是不太明白,你说这种用语句清除日志的做法
和直接在SQLSERVER中分离数据库,然后删除.ldb文件,然后再附加此数据库有什么区别,
能说说吗?谢谢!
 
Truncating the transaction log:

BACKUP LOG { database_name | @database_name_var }
{
[ WITH
{ NO_LOG | TRUNCATE_ONLY } ]
}
 
>>直接在SQLSERVER中分离数据库,然后删除.ldb文件,然后再附加此数据库.........
不明白你的意思 你是怎么做的.
用sp_detach_db , sql 会提交所有的trans 并且估chekcpoint 所以删除日志后是安全的.
但其它方法可能会导致删除日志后不能恢复.
 
1、在查询分析器中执行
DUMP TRANSACTION 数据库 With no_log
2、然后选中数据库--所有任务--收缩数据库--确定即可。
 
:zippypig 兄,你的方法能不能举例说明

chshanghai兄,我说的方法就是第一个qianwt兄说的呀,在SQLSERVER上有分离数据库
和附加数据库的的选项
这个方法好象和你说的方法是一样的

 
:glbboy兄,你这个收缩数据库的最后还是会使日志文件占用空间,具体的占用空间
的比例是怎样确定的呢?能够再告知一二
 
我最近也遇此问题
数据库日志文件有1.5G
glbboy是OK的
我试了一下收缩后仅2M多(我设限100M)
哈哈
今天阳光真明媚
 
哪用那么麻烦,SQL2000的Database选项上,用一个小技巧做两次更换,不用删除什么文件,
10秒钟搞定.(多次试验成功)
 
顶部