如何收缩和删除SQL日志文件

-----------------收缩数据库的方法---------------------

DECLARE @dbname AS sysname
SET @DBNname = N'数据库名称l'

--1.清空日志
exec('DUMP TRANSACTION ['+@DBNname +'] WITH NO_LOG')

--2.截断事务日志:
exec('BACKUP (如果不压缩,数据库的文件不会减小LOG ['+@DBNname +'] WITH NO_LOG')

--3.收缩数据库文件
exec('DBCC SHRINKDATABASE(['+@DBNname +'])')

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

--4.设置自动收缩
exec('EXEC sp_dboption mailto:'''+@dbname+''',''autoshrink'',''TRUE''')

-----------------删除数据库日志文件方法---------------------

1、分离数据库:
    企业管理器--服务器--数据库--右键--分离数据库
2、在我的电脑中删除LOG文件
3、附加数据库:
    企业管理器--服务器--数据库--右键--附加数据库
    此法将生成新的LOG,大小只有500多K

或用代码:
1、分离
    EXEC sp_detach_db @DBNname = '数据库名'
2、删除日志文件
3、再附加
    EXEC sp_attach_single_file_db @DBNname = '数据库名'
    @physname = 'D:\Program Files\Microsoft SQL Server\MSSQL\Data\数据库名.mdf'

-----------------删设置数据库日志文件大小方法---------------------

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

--SQL语句的设置方式:
Alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)

 

 

posted on 2009-11-16 16:36  一江秋水  阅读(620)  评论(2编辑  收藏  举报