清除sql2000日志文件
清除sql日志

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
日志文件满而造成SQL数据库无法写入文件时,可用两种方法:
一种方法:清空日志。
1.打开查询分析器,输入命令
DUMP TRANSACTION 数据库名 WITH NO_LOG
2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。
以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
SQL SERVER清除日志的四种方法

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'
AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)
AND (@OriginalSize * 8 /1024) > @NewSize
BEGIN -- Outer loop.
SELECT @Counter = 0
SET NOCOUNT ON
DECLARE @LogicalFileName sysname,
@MaxMinutes INT,
@NewSize INT
USE tablename -- 要操作的数据库名
SELECT @LogicalFileName = 'tablename_log', -- 日志文件名
DBCC SHRINKFILE (@LogicalFileName, @NewSize)
EXEC (@TruncLog)
-- Wrap the log if necessary.
WHILE @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
如何清除SQL日志

如何清除SQL日志删除MS SQL Server 2000日志1.打开MS SQL Server 2000企业管理器2.打开数据库,选中需要删除日期的数据库,点击“察看”,选择“任务板”:3.鼠标右键点中需要删除日期的数据库,选择右键菜单“所有任务”-“备份数据库”:4.选择“事务日志”:5.点击“添加”,选择“文件名”:6.选择备份目录,输入文件名,点击“确定”:7.点击“确定”:8.选择“重写现有媒体”,点击“确定”:9.开始备份:10.备份完成:事务日志删除了一部分,如果还不够小,则再重复一次。
11.重新鼠标右键点中需要删除日志的数据库,选择右键菜单“所有任务”-“收缩数据库”:12.点击“文件”:13.选择日志“数据库文件”,在“收缩操作”中选择“从文件结尾截断可用空间”,点击“确定”:14.日志收缩完毕:关于SQL Server事务日志的问题汇总1、用BACKUP LOG database WITH NO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全。
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,删除主数据库事务日志文件步骤如下:(1)、分离数据库:企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库(2)、然后删除日志文件(3)、然后再附加数据库:企业管理器--数据库--右击数据库--所有任务--附加数据库。
这时候只附加mdf就可以了。
如何彻底清除SQL Server 2000

如何彻底清除SQL Server 2000如大多数应用程序一样,在“控制面板”里“添加/删除程序”可以将SQLSERVER删掉,但卸载程序并不彻底。
微软有意留下完整的目录,同时用户定义的数据库和日志文件仍然留在其中。
如果反悔,可以重新安装并重新连接到数据库上去。
若希望彻底清除机器内SQL Server,则必须清除以下内容:(系统目录如c:\program files)\Microsoft SOL Server\80\Tools(sqlserver安装目录)\MSSQL同时删除以下SQL注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServerHKEY_LOCAL_MACIHNE\System\CurrentControlSet\Services\MSDTC命令行运行:net stop mssqlserver可以停掉sql服务。
哪里可以下载sql安装挂起清除工具估计你是安装时出现的问题。
解决方法...关于SQL安装被挂起的修复大家可能都遇到过当SQL被删除后需要重新安装时,进入安装界面就会出现SQL错误提示:从前的安装程序操作使安装程序操作挂起,需要重新启动计算机然而这些都是白费劲,不管你重新启动多少次也都无济于事,下面我就讲讲怎样能够解除安装或升级时文件被挂起的操作。
点击开始运行输入:regedit 打开注册表找到如下目录HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager删除PendingFileRenameOperations再来安装SQL呵呵一切正常如初了!希望这些能有一点点帮助,从此再也不用盲目的重新安装系统了。
====================================================================== ========================解决SQL Server安装挂起在安装sql server时出现“以前的某个程序安装已在安装计算机上创建挂起的文件操作。
多方法清理SQL server日志

多方法清理SQL Server日志1.手动清理1. 将恢复模式改成“简单”右键要清理的数据库名-属性,切换到选项,将恢复模式修改为简单,如下图1,然后点确定。
2、收缩日志还是右键要清理的数据库名—任务—收缩—文件,按如图2进行设置,设置完后点确定即可3.清理完手动恢复完整模式二、自动清理(使用SQL代理定时执行清理任务)1、新建作业如下图3,我们右键作业—新建作业即可开始新建一个作业了USE [master]GOALTER DATABASE 数据库名称SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY SIMPLE --简单模式GOUSE 数据库名称GODBCC SHRINKFILE (N'DEMO_log' , 1, TRUNCATEONLY)--将数据库日志文件收缩到1MGO------DEMO_LOG是日志文件名称,可以新建查询用select * from sys.database_files查看USE [master]GOALTER DATABASE 数据库名称SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE 数据库名称SET RECOVERY FULL --还原为完全模式GO三、新建维护计划定时清理1.维护计划向导2.选择维护任务3.选择需要收缩的数据库之后,下一步至完成4.视图--工具箱--把执行I-SQL语句拉到右窗品--把收缩数据库箭头关联至“执行T-sql语句”5.双击“执行T-SQL语句”任务,打开对话框键入语句5.记得编辑“新建作业计划”。
SQLSERVER清除日志的四种方法

SQLSERVER清除日志的四种方法SQL Server是一种关系型数据库管理系统,它将数据存储在表格中,并使用结构化查询语言(SQL)来管理和操作这些数据。
在SQL Server中,日志文件用于记录数据库的各种操作,包括插入、更新和删除数据的操作。
随着时间的推移,日志文件可能会变得庞大,导致数据库性能下降。
为了解决这个问题,SQL Server提供了多种方法来清除日志。
1.使用备份和恢复备份和恢复是清除日志的最常用方法之一、通过定期备份数据库并将日志截断,可以清除日志文件并释放空间。
备份可以选择完整备份、差异备份或增量备份。
完整备份将整个数据库备份到一个文件中,差异备份将备份自上次完整备份以来发生更改的部分,增量备份则只备份自上次备份以来发生更改的部分。
备份完成后,可以通过将数据库设置为简单恢复模式或完全恢复模式来截断日志,以释放日志空间。
2.使用事务日志管理SQL Server提供了事务日志管理功能,可以帮助清除日志。
通过调整事务日志的大小和日志增长的百分比,可以限制日志文件的增长。
可以使用以下命令来管理事务日志大小和增长:- ALTER DATABASE <database_name> SET RECOVERY SIMPLE:将数据库设置为简单恢复模式,该模式只保留最近的日志信息,并定期截断日志。
- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, SIZE = <new_size>):调整日志文件的大小。
- ALTER DATABASE <database_name> MODIFY FILE (NAME =<log_file_name>, FILEGROWTH = <new_growth>):调整日志文件的增长百分比。
3.使用事务日志备份和清除除了备份和恢复,SQL Server还提供了事务日志备份和清除功能。
SQL2000日志清理方法

SQL2000日志清理方法SQL Server 2000是一个非常古老的数据库管理系统,虽然已经过时,但仍然有一些组织使用它。
在SQL Server 2000中,日志文件经常会变得非常大,占用大量磁盘空间。
为了有效管理和清理日志文件,以下是一些可以使用的方法。
1.设计合适的恢复模式SQL Server 2000有三种恢复模式:完全恢复模式、大容量日志恢复模式和简单恢复模式。
对于需要恢复到特定时间点的组织,可以选择完全或大容量日志恢复模式,但需要定期备份日志文件和清理旧的备份。
对于一些不需要恢复到特定时间点的组织,可以选择简单恢复模式,它会自动清除日志文件。
2.定期备份日志文件在完全恢复模式或大容量日志恢复模式下,定期备份日志文件非常重要。
这样可以释放事务日志,使其不再继续增长。
可以使用`BACKUPLOG`命令来备份日志文件,并设置相应的计划任务以确保定期备份。
3.缩减日志文件当执行一次日志备份后,`BACKUPLOG`命令可以触发事务日志的缩减。
可以使用`DBCCSHRINKFILE`命令来缩减日志文件的大小,从而释放磁盘空间。
但需要注意,缩减日志文件可能导致性能下降,因此需要在低峰期执行。
4.数据库挂起和启动将数据库挂起并重新启动可以清除事务日志并释放磁盘空间。
可以使用 `ALTER DATABASE [DatabaseName] SET ONLINE/OFFLINE` 命令来完成这个操作。
挂起数据库会中断对数据库的访问,因此需要在低峰期执行。
5.自动备份和清理使用SQL Server代理任务和T-SQL命令,可以创建计划任务来自动备份和清理日志文件。
可以定期执行 `BACKUP LOG` 和 `DBCC SHRINKFILE` 命令,以确保日志文件的大小保持在合理的范围内。
6.监控日志文件大小和使用率7.定期查询性能和优化定期查询数据库性能和优化可以帮助提高数据库的整体性能,并防止日志文件过大。
SQLSERVER清理日志文件的方法

SQLSERVER清理⽇志⽂件的⽅法
很多时候SQLSERVER的⽇志⽂件是不看的,但时间久了,够把磁盘撑爆,这时候就需要清理⽇志⽂件。
使⽤以下⽅法,在实际环境中经过测试,400G的⽇志⽂件1秒就被清理。
操作步骤
1. 将恢复模式改成“简单”
右键数据库 - 属性,切换到选项,将恢复模式修改为简单。
2. 收缩⽇志
右键数据库 - 任务 - 收缩 - ⽂件
确定后会发现,⽇志⽂件被迅速清理。
3. 命令操作
USE[master]
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY SIMPLE --简单模式
GO
USE要清理的数据库名称
GO
DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY) --设置压缩后的⽇志⼤⼩为2M,可以⾃⾏指定GO
USE[master]
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE要清理的数据库名称SET RECOVERY FULL--还原为完全模式
GO
本⽂作者:iHey
本⽂链接:https:///iHey/p/11710759.html
版权声明:本作品采⽤知识共享署名-⾮商业性使⽤-禁⽌演绎 2.5 中国⼤陆进⾏许可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sql 2000 事务日志的介绍及收缩1、事务日志简介作为大型的关系型数据库,最重要的事情之一就是数据库完整性,也就是说数据必须是正确的,不能因为一些不可知的突发事件(如突然掉电)损坏数据。
为了避免这种情况,SQL数据库采用了两步写入磁盘的办法,第一步先写我做了什么,比如开了一个进货单,这一步完成后,再执行第二步,把这个进货单的内容写入数据库,这两步都成功了,才算完成,有一步有问题,这个单据都不会记到数据库中。
这样,您的事务操作(对数据库的修改操作,查询不记事务)的每一步都要记录进日志文件,如果您不注意经常截断事务日志的话,随着时间的增长,事务日志会很快的增长,最后要比您的数据量大的多。
可以经常看到,数据库文件只有几十兆,而日志文件却几千兆的情况。
2、截断事务日志事务日志分成两部分,一部分是不活动的,也就是说这部分的操作都已经成功的写入数据库了,而另一部分是活动的,也就是说,这部分日志,只是确认执行了上述第一步,还没有确信已经写入数据库的部分。
我们需要截断的就是不活动的部分。
这部分可以如下方法截断:Backup Log ‘数据库名’with truncate_only警告:在运行上述截断日志之后,强烈建议进行数据库完全备份。
3、缩小文件大小使用上述第2步就把不活动的日志删除了,但是文件并没有变小,只是把原先旧日志占用的空间释放了,又可以向里面记入新的日志了。
要想把物理文件也变小(比如已经几千兆了),请使用如下命令:DBCC Shrinkdatabase (数据库名)运行上述命令后就可以把日志文件缩小了(一般都缩为1M左右)4、把数据文件或日志文件的增长不受限制如果您做不到经常维护数据库,不能经常的截断日志,日志文件就会逐渐变大,一旦大到您设置的大小限制,日志就再也不能写入了,您对数据库的所有改变操作也就无法进行了,这时候您就需要用上面的方法把日志文件截断。
不过,您可以把文件的大小设置大一些或不受限制,请在企业管理器中设置数据库属性即可。
也可以运行下述命令:alter database 数据库名modify file (name = 逻辑文件名,Maxsize =Unlimited)此处的逻辑文件名就是您在企业管理器中看到的文件名。
说明:微软公司的SQL 2000有个小错误,有时候会报告逻辑文件名不存在的问题,这时候您就应该看看真正的逻辑文件名是什么,如果您的数据库是从一个备份文件中还原的,那么可以使用下面的命令看看逻辑文件名到底是什么,此处假设您已经把备份文件复制到C盘的根目录,备份文件名为Database.bak:restore filelistonly from disk = ‘c:\Database.bak’运行上述命令后,可以看出所有的逻辑文件名(LogicalName列的内容),取出这里的逻辑文件名,比如“真文件名”,运行如下命令alter database 数据库名modify file (name = 真文件名, Maxsize = Unlimited)这个命令就会成功,再到企业管理器中去看,就发现文件大小已经无限制了。
5、数据库日常维护为了让数据库更好的工作,不至于影响业务,日常需要对数据库进行维护,一般分为以下几个方面:a. 日常的备份。
建议每天进行备份,如果数据库太大,每天全库备份不现实,可以采用一周完全备份一次,每天差异备份一次或两次b. 维护索引。
索引能够大幅的提高查询性能,但是随着数据碎片的增加,性能会越来越差,所以要经常的维护索引,可以根据具体情况,每周或每月维护一次索引。
c. 截断日志。
根据业务量的大小,可以不定期的截断日志。
(方法参照下面)方法一:在SQL 2000中,每个数据库事实上存在两个物理文件,分别为.mdf和.ldf 的扩展名。
前者是数据文件,后者就是保存事务日志的文件。
事务日志是SQL 2000中用于记录数据库操作记录的功能,不过如果长时间不进行维护,这个文件就会越来越庞大,必须清除一下。
上次我的服务器上一个网站,因为数据库比较庞大(2G多),加上长时间没有维护,导致后来事务日志文件达到数十GB,把保存数据库文件的分区都给撑爆了。
当时我没有过清除事务日志的经验,上网找了一些资料,很多都把这事说得很复杂,要在查询分析器里运行若干个命令什么的。
其实后来我找到了一个最简单的方法,只要在查询分析器里运行一条命令,再在企业管理器里进行一点小操作就行了。
步骤如下:一、运行查询分析器,运行下面这条命令(把命令中的“数据库名”替换成要清除日志的数据库名称):DUMP TRANSACTION 数据库名WITH NO_LOG二、打开企业管理器,找到这个数据库,右键点击,选择“所有任务”->“收缩数据库”:如图:三、在“收缩数据库”的对话框中,点击下面的“文件”按钮:三、在接下来的对话框中,在顶部的“数据库文件”后面选择以“_log”结尾的文件,这个是数据库的日志文件。
然后直接点击下面的确定按钮。
四、出现收缩成功的提示之后,再次在企业管理器中在这个数据库上点击右键查看属性,选择“事务日志”标签页,可以看到事务日志已经被成功清空了。
方法二:1、首先备份数据库然后备份文件,备份日志文件,可改名在查询分析器里执行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 ONDECLARE @LogicalFileName sysname,@MaxMinutes INT,@NewSize INTUSE Marias -- 要操作的数据库名SELECT @LogicalFileName = 'Marias_log', -- 日志文件名@MaxMinutes = 10, -- Limit on time allowed to wrap log.@NewSize = 100 -- 你想设定的日志文件的大小(M)-- Setup / initializeDECLARE @OriginalSize intSELECT @OriginalSize = sizeFROM sysfilesWHERE name = @LogicalFileNameSELECT 'Original Size of ' + db_name() + ' LOG is ' +CONVERT(V ARCHAR(30),@OriginalSize) + ' 8K pages or ' +CONVERT(V ARCHAR(30),(@OriginalSize*8/1024)) + 'MB' FROM sysfilesWHERE name = @LogicalFileNameCREATE TABLE DummyTrans(DummyColumn char (8000) not null)DECLARE @Counter INT,@StartTime DATETIME,@TruncLog V ARCHAR(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 expiredAND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName)AND (@OriginalSize * 8 /1024) > @NewSizeBEGIN -- Outer loop.SELECT @Counter = 0WHILE ((@Counter < @OriginalSize / 16) AND (@Counter < 50000)) BEGIN -- updateINSERT DummyTrans valueS ('Fill Log')DELETE DummyTransSELECT @Counter = @Counter + 1ENDEXEC (@TruncLog)ENDSELECT 'Final Size of ' + db_name() + ' LOG is ' +CONVERT(V ARCHAR(30),size) + ' 8K pages or ' +CONVERT(V ARCHAR(30),(size*8/1024)) + 'MB'FROM sysfilesWHERE name = @LogicalFileNameDROP TABLE DummyTransSET NOCOUNT OFF理解日志截断选项不同的备份日志截断选项经常被DBA新手所忽视。
DBA新手通常并不知道选项存在或了解它们的作用。
怎样使用或什么时候时候它们,以下的几小节详细解释每个选项的作用以及在什么时候使用它。
TRUNCATE_ONLYTRUNCATE_ONLY选项截掉事务日志的非活动部分,而不备份(拷贝)日志到备份设备上。