天天看点

sqlserver 2005备份不能够删除日志?

http://www.itpub.net/viewthread.php?tid=924872 DBCC SHRINKDATABASE

    ( database_name [ , target_percent ]

        [ , { NOTRUNCATE | TRUNCATEONLY } ]

    )

参数

database_name

是要收缩的数据库名称。数据库名称必须符合标识符的规则。有关更多信息,请参见使用标识符。

target_percent

是数据库收缩后的数据库文件中所要的剩余可用空间百分比。

NOTRUNCATE

导致在数据库文件中保留所释放的文件空间。如果未指定,将所释放的文件空间释放给操作系统。

TRUNCATEONLY

导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。不试图重新定位未分配页的行。使用 TRUNCATEONLY 时,忽略 target_percentis。

    首先你说下..你凭什么说logfile没有被请空掉.....不能从文件大小上看....删除了日志文件并没有释放掉空间,而是在你收缩数据库之后才会变小的..你再试下看

日志截断之后, 删除日志有几种方式,缺省是不释放空间给操作系统的

除非你指定释放给操作系统才会看到日志文件有变小;

----给一段参考吧,尽管很简单, 但是就是有人搞不对,所以有必要放在这里------

USE Pubs

GO

BACKUP LOG Pubs WITH NO_LOG

GO

DBCC SHRINKFILE (2, 20)

GO

---这会将Pubs数据库物理日志文件的大小将减小到20M,如果逻辑日志大于20M,或者虚拟日志处于活动状态的文件大于20M,将收缩到活动日志或者逻辑日志的大小。

贴出我写的

---完全备份数据库事务日志

---截断事务日志

---收缩数据库

/*

backup log WebMisDZCG  TO disk = 'd:/Microsoft SQL Server/MSSQL/BACKUP/dzcg_20071229'

backup log WebMisDZCG  WITH NO_LOG

DBCC SHRINKDATABASE (WebMisDZCG,1)

--使用前注意确定 备份设备的路径,否则会直接收缩数据库,导致日志丢失