首页 联系方式 付款方式 关于我们 成功案例 人才招聘
会员 密码 收藏本站
服务器托管
双线机房服务器托管
 双线机房服务器托管
电信机房服务器托管
 电信漕宝路机房服务器托管
 电信真如机房服务器托管
 电信外高桥机房服务器托管
 电信武胜路机房服务器托管
网通机房服务器托管
 网通漕河泾机房服务器托管
 网通乐凯大厦服务器托管
服务器托管常见问题
 如何查看Windows 2003系统日志
 windows 2003如何防止海洋木马
 浅谈网络服务器安全维护技巧
 同一IP地址多域名对应多个站点
 Windows2003 Server 设置大全
 WIN2003下Web服务器配置
 IIS服务器排错指南及错误代码
 服务器终极安全设置与优化指南
 IIS一机多站实现方法
 防治Windows 2003的安全隐患
 Windows2003服务器安全配置
 一次真实的DDoS攻击防御实战
 四招加强Windows2003安全性
 如何测试机房的速度和带宽?
 服务器托管经验完全手册(6)
 网管和黑客都必须知道的命令
 快速掌握典型入侵日志分析
 网站管理员必须知晓的安全知识
 Windows中最重要的五项安全设置
 网管必知十四大安全策略
 十种较为常见服务器管理错误
 打造一个安全的Win2003 Server
 服务器托管经验完全手册(1)
 服务器托管经验完全手册(2)
 服务器托管经验完全手册(3)
 服务器托管经验完全手册(4)
 服务器托管经验完全手册(5)
 Windows权限设置详解

解决SQL日志文件过大问题的方法

很多独立服务器客户反馈数据库日志文件过大,严重浪费磁盘资源,数据库实际大小为600M, 日志文件实际大小为33M, 但日志文件占用空间为2.8G!!!
以下有一个脚本,就可以将日志文件缩小到自己想要的大小了。把代码COPY到查询分析器里,,然后修改其中的3个参数(红色字体部分),运行即可(测试通过,请独立服务器客户测试)
-----
SET NOCOUNT ON

DECLARE @LogicalFileName sysname,

@MaxMinutes INT,

@NewSize INT

 

USE data_db -- 要操作的数据库名

SELECT? @LogicalFileName = 'data_db_log', -- 日志文件名

@MaxMinutes = 10, -- Limit on time allowed to wrap log.

@NewSize = 100 -- 你想设定的日志文件的大小(M)

-- Setup / initialize

DECLARE @OriginalSize int

SELECT @OriginalSize = size

FROM sysfiles

WHERE name = @LogicalFileName

SELECT 'Original Size of ' + db_name() + ' LOG is ' +

CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +

CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'

FROM sysfiles

WHERE name = @LogicalFileName

CREATE TABLE DummyTrans

(DummyColumn char (8000) not null)

 

DECLARE @Counter INT,

@StartTime DATETIME,

@TruncLog VARCHAR(255)

SELECT @StartTime = GETDATE(),

@TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'

DBCC SHRINKFILE (@LogicalFileName, @NewSize)

EXEC (@TruncLog)

-- Wrap the log if necessary.

WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired

AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)

AND (@OriginalSize * 8 /1024) > @NewSize

BEGIN -- Outer loop.

SELECT @Counter = 0

WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))

BEGIN -- update

INSERT DummyTrans valueS ('Fill Log')

DELETE DummyTrans

SELECT @Counter = @Counter + 1

END

EXEC (@TruncLog)

END

SELECT 'Final Size of ' + db_name() + ' LOG is ' +

CONVERT(VARCHAR(30),size) + ' 8K pages or ' +

CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'

FROM sysfiles

WHERE name = @LogicalFileName

DROP TABLE DummyTrans

SET NOCOUNT OFF

以上代码用T-SQL语言实现。







相关链接:网页设计 邮件地址 邮件营销 邮件群发 企业名录 美国虚拟主机 网站优化 电信宽带



上海南火 — 飞翔数据中心 © 1999-2006 版权所有 营业执照  官方博客
上海市徐汇区虹漕南路718弄1号10E室 电 话:021-51099455 传真:021-51062789