- 论坛徽章:
- 0
|
方法1:
先在Query Analyzer中执行如下的语句:
use yourDBName
go
exec sp_dboption yourDBName,\'trunc. log on chkpt.\',true
--这条语句的作用就是让这个DB的写操作(如insert,update,delete)不写日志,如果你不用日志来做数据库的恢复的话,那么这个选项可以永远将其置为true状态。
然后执行
create table test
(
a int
)
go
insert into test values(1);
接着执行:
backup log yourDBName with truncate_log
go
然后再执行:
select * from sysfiles
去查看日志文件在DB中的逻辑名称和真正使用了的容量,假定逻辑名称为L,容量为M
最后执行:
dbcc shrinkfile (L,M+10) --留出10MB的空闲空间,其余的容量全部收缩掉
go
reconfigure with override
方法2:
第一步:
先备份整个数据库以备不测
第二步:
备份结束后,在Query Analyzer中执行如下的语句:
exec sp_detach_db yourDBName,true --卸除这个DB在MSSQL中的注册信息
第三步:
到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
第四步:
在Query Analyzer中执行如下的语句:
exec sp_attach_single_file_db yourDBName,\'d:\\mssql7\\data\\yourDBName_data.mdf\'
--以单文件的方式注册该DB,如果成功则MSSQL将自动为这个DB生成一个500K的日志文件。 |
|