PLS SEE: http://www.mscommunity.com/Profile/ElitePostLibrary.aspx?type=post&id=424对该贴的补充: 1.如果不需要恢复到指定的时间点,你可以将数据库的恢复模式配置为简单,这样 UPDATE,DELETE,SELECT就不会记录日志,日志就不会增加的很大: ALTER DATABASE DB_NAME SET RECOVERY SIMPLE 2.如果你的恢复模式是全部,你一定要配置日志字段收缩: USE DATABASE_NAME GO SP_DBOPTION 'autoshrink',TRUE 3.通过每日备份将日志收缩: BACKUP DATABASE DATABASE_NAME TO BACKUP_DEVICES BACKUP LOG DATABASE_NAME TO LOG_DEVICES4.每天在备份数据库完成之后,重新启动MS SQLSERVER SERVICE. 5.手动收缩日志: / *run below script,you will shrink you database log files immediately, in my experience,you need to run the script for 3 or 4 minutes before stopping it manually */ use databasename dbcc shrinkfile(2,notruncate) dbcc shrinkfile(2,truncateonly) create table t1(char1 char(4000)) go declare @i int select @i=0 while(1=1) begin while(@i<100) begin INSERT INTO T1 VALUES ('A') SELECT @I=@I+1 END TRUNCATE table T1 BACKUP LOG youdatabasename with truncate_only end go
http://www.mscommunity.com/Profile/ElitePostLibrary.aspx?type=post&id=424对该贴的补充:
1.如果不需要恢复到指定的时间点,你可以将数据库的恢复模式配置为简单,这样
UPDATE,DELETE,SELECT就不会记录日志,日志就不会增加的很大:
ALTER DATABASE DB_NAME SET RECOVERY SIMPLE
2.如果你的恢复模式是全部,你一定要配置日志字段收缩:
USE DATABASE_NAME
GO
SP_DBOPTION 'autoshrink',TRUE
3.通过每日备份将日志收缩:
BACKUP DATABASE DATABASE_NAME TO BACKUP_DEVICES
BACKUP LOG DATABASE_NAME TO LOG_DEVICES4.每天在备份数据库完成之后,重新启动MS SQLSERVER SERVICE.
5.手动收缩日志:
/ *run below script,you will shrink you database log files
immediately, in my experience,you need to run the script for 3 or
4 minutes before stopping it manually */
use databasename
dbcc shrinkfile(2,notruncate)
dbcc shrinkfile(2,truncateonly)
create table t1(char1 char(4000))
go
declare @i int
select @i=0
while(1=1)
begin
while(@i<100)
begin
INSERT INTO T1 VALUES ('A')
SELECT @I=@I+1
END
TRUNCATE table T1
BACKUP LOG youdatabasename with truncate_only
end
go
BACKUP LOG 数据库名 WITH NO_LOG2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG 再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 删除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'
4: 如果想以后不让它增长
企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)5.设置为自动收缩
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"