文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程MSSQL缩小SQL Server数据库的日志文件
精品推荐
特别推荐
·SQL Server企业管理器和查询分析器简介
·常用SQL语句词典
·结束SQL注入隐患3招
·掌握SQL Server数据库的实用技巧
·SQL的简单查询
·快速解决SQL Server“安全疑难”相关问题
·SQL Server 2005:你应知道的13件事
·实例解析:减少SQL日志大小的三个好方法
·使用SQL2000将现有代码作为Web服务提供
·sql server 2000数据库置疑的解决方法
热点TOP10
·巴塞尔新资本协议概述
·SQL server 2005安装问题汇总
·SQL Server企业管理器和查询分析器简介
·将sql server中的自动增长序列,初始化为某一值!
·SQL进行排序、分组、统计的10个新技巧
·把SQL SERVER里表里的数据导出成为insert into 脚本
·Sql数据库MDF数据文件数据库恢复
·SQL Server关于SQL Agent使用技巧
·触发器对SQL Server数据库进行备份
·掌握SQL Server数据库的实用技巧

缩小SQL Server数据库的日志文件

日期:2007年12月14日 作者: 查看:[大字体 中字体 小字体]


问题:数据库实际大小为600MB, 日志文件实际大小为33MB, 但日志文件占用空间为2.8GB!试了多种方式,SHIRNK DATABASE, TRUNCATE LOG FILE, 都没办法将文件缩小。无论如何,这应该算SQL Server的一个BUG吧。

解决方法: 后来找到下面的代码,就可以将日志文件缩小到自己想要的大小了。把代码COPY到查询分析器里,,然后修改其中的3个参数(数据库名,日志文件名,和目标日志文件的大小),运行即可。

-----
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
        @MaxMinutes INT,
        @NewSize INT


USE     Marias           
 -- 要操作的数据库名
SELECT  @LogicalFileName = 'Marias_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)

[1] [2] 下一页 




上一篇:SQL Server用索引视图查看性能状况

下一篇:在不同版本的SQL Server中存储数据

相关文章:
·dll文件下载
·QQ空间日志可用透明FLASH
·如何让QQ空间日志摸板等透明?
·局域网文件共享详解
·利用word将PDF转换DOC文件的方法
·java做的比较完善的FTP连接上传下载文件
·MPEG、RM、WMV电影文件格式转换指南
·常用数据库比较
·从视频文件中提取声音的方法
·QQ空间日志功能说明
相关软件:
·SQL Server 2000 基础系列课程视频
·最强文件加密锁2007
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·西门子plc软件及教程 文件类型 其它介绍
·文件夹加密器V9.6
·Windows 2003 Server 简体中文企业版(免激活)ISO
·SQL/MYSQL/数据库教程专栏
·逐步精通数据库 sql server 视频教程
·东南大学SQL数据库基础视频教学全42讲 CSF 详见查看
·文件夹隐藏大师V3.2

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot