SQL SERVER 2000数据库日志文件过大如何解决
清理SQL Server数据库日志的两种方法
清理SQL Server数据库日志的两种方法sql server数据库使用时间长了,日志文件会很大,占用过多系统资源,数据库可能会报 log full 的错误,甚至磁盘空间占满让数据库处于不可用状态,这个时候我们需要清理数据库,以前有人开发了数据库日志清理工具,好像还要收费,其实很简单就可以完成这个操作,请跟我来:清理sql server数据库日志可用两种方法:方法一:清空日志。
1、打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2、再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至: ,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。
方法二:有一定的风险性,因为SQL SERVER的日志文件不是即时写入数据库主文件的,如处理不当,会造成数据的损失。
1、删除LOG分离数据库企业管理器->服务器->数据库->右键->分离数据库2、删除LOG文件附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K。
注意:建议使用第一种方法。
如果以后,不想要它变大。
SQL2000下使用:在数据库上点右键->属性->选项->故障恢复-模型-选择-简单模型。
或用SQL语句:alter database 数据库名 set recovery simple另外,数据库属性有两个选项,与事务日志的增长有关:Truncate log on checkpoint(此选项用于SQL7.0,SQL 2000中即故障恢复模型选择为简单模型)当执行CHECKPOINT 命令时如果事务日志文件超过其大小的70% 则将其内容清除在开发数据库时时常将此选项设置为True定期对数据库进行检查当数据库文件或日志文件的未用空间超过其大小的25%时,系统将会自动缩减文件使其未用空间等于25% 当文件大小没有超过其建立时的初始大小时不会缩减文件缩减后的文件也必须大于或等于其初始大小对事务日志文件的缩减只有在对其作备份时或将 Truncate log on checkpoint 选项设为True 时才能进行。
SQL日志文件太大清理方法
SQL日志文件太大清理方法当SQL日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。
下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。
这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。
可以使用数据库管理工具或命令行工具进行备份。
2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。
压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。
在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。
3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。
通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。
这样,可以释放当前的日志文件空间,并保留原始的日志记录。
具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。
4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。
删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。
但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。
需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。
因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。
此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。
在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。
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 Server的数据库在使用一段时间后,会产生日志文件过大的系统提示,导致数据库无法访问。
造成这一原因,一般来说是因为在创建数据库时候,未曾对事务日志的大小进行限制。
解决方法:
1.打开SQL Server的企业管理器;
2.选择数据库服务器—指定数据库—鼠标右键—选择所有任务--选择分离数据库—点击确定。
提示:这一步操作成功完成后,会在指定的目录下产生一个扩展名为MDF的文件。
3.找到该数据库日志文件的存放路径,将其从硬盘上物理删除!小技巧:选择数据库,鼠标右键查看属性,可以知道事务日志的存放路径
4.选择数据库服务器—数据库—鼠标右键—附加数据库—配置相应参数—确定
5.操作结束。
总结:
1.使用这种方法进行数据库日志压缩比较简单、方便,它的主要原理是首先将数据库的数据文件与事务日志文件分离,然后捭手工删除日志文件,最后再重新生成一个最小尺寸的日志文件,大约有500K。
SQLServer LDF文件太大解决
SQL2000 LDF文件太大解决一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.--*/--下面的所有库名都指你要处理的数据库的库名1.清空日志DUMP TRANSACTION 库名WITH NO_LOG2.截断事务日志:BACKUP LOG 库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs 中的一个文件附加到当前服务器。
a.分离EXEC sp_detach_db @dbname = '库名'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = '库名',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf '5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:EXEC sp_dboption '库名', 'autoshrink ', 'TRUE '6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 库名modify file(name=逻辑文件名,maxsize=20)SQL2005 LDF文件太大解决请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.--*/1.清空日志:DUMPTRANSACTION库名WITH NO_LOG2.截断事务日志:BACKUP LOG库名WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小:服务器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩操作里选择在释放未使用的空间前重新组织页,这里会给出一个允许收缩到的最小M数,确定就可以了--选择数据文件--在收缩操作里选择在释放未使用的空间前重新组织页,这里会给出一个允许收缩到的最小M数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(库名)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)4.为了最大化的缩小日志文件:a.分离数据库:服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K5.为了以后能自动收缩,做如下设置:服务器--右键数据库--属性--选项--选择"自动收缩"6.如果想以后不让它日志增长得太大:服务器--右键数据库--属性--文件--数据库文件--日志--增量为10%,不限制增长--将文件增长限制为xM(x是你允许的最大数据文件大小)。
SQL数据库日志文件ldf过大的解决办法
如果你没有存储空间的瓶颈,让数据库库日志文件任意增长是最好的,因为在发生数据库错误时,日志文件可以帮助您查找和分析错误的原因。
如果存储空间确实有限或者已达到瓶颈,确实要限制日志文件的增长,请谨慎使用这些限制手段(强烈建议在正式服务器上使用下列方法前进行备份)。
方法一:快速清除事务日志,执行以下查询命令:-- 第一步:清空日志DUMP TRANSACTION数据库名WITHNO_LOG-- 第二步:截断事务日志BACKUP LOG数据库名WITHNO_LOG-- 第三步:收缩数据库DBCC SHRINKDATABASE(数据库名)如果以后不想让它再变大了,执行下面查询命令:alter database数据库名set recovery simple方法二:第1步:数据库企业管理器->服务器->数据库->右键->分离数据库第2步:删除LOG文件第3布:数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K 再将此数据库设置自动收缩数据库“自动收缩”设置:从数据库自身的健康和性能考虑,并不建议多用。
这是因为:(1)SQL Server只有在空间用尽的情况下才会做自动增长。
如果没有找出自增长的原因,从而从根本上避免空间用尽,虽然能够暂时用DBCC SHRINKFILE功能收缩文件大小,但是下次数据库还是有可能长大。
收缩数据库只是一个治标不治本的方法。
(2)数据文件收缩会给文件带来更多的碎片。
(3)不管是数据库收缩,还是增长,对SQL Server来讲都是件浪费资源的事情。
在负载比较重的系统里,对性能的影响尤其大。
它们是应尽量避免而不是鼓励的操作。
因此,对于一个比较繁忙的数据库,推荐的设置是开启数据库自动增长选项,以防数据库空间用尽导致应用程序失败,但是要严格避免自动增长的发生。
同时,尽量不要使用自动收缩功能。
清理 sql server 数据库日志的几种方法
清理 SQL Server 数据库日志的几种方法随着企业数据量的不断增加,数据库的日志文件也会随之增长。
数据库日志文件的不断增长会消耗大量磁盘空间,甚至会影响数据库的性能。
定期清理数据库日志是数据库管理的一个重要环节。
本文将介绍清理 SQL Server 数据库日志的几种方法,帮助数据库管理员解决数据库日志文件过大的问题。
一、备份事务日志1. 利用 SQL Server Management Studio (SSMS) 进行备份通过使用 SSMS,可以进行数据库事务日志的定期备份。
在 SSMS 中选择要备份的数据库,右键点击“任务”->“备份”,在备份类型中选择“仅事务日志”,即可完成事务日志的备份。
2. 利用 T-SQL 命令进行备份在 SQL Server 中,可以通过使用 T-SQL 命令进行事务日志的备份。
例如:```BACKUP LOG [数据库名] TO DISK = '备份文件路径' WITH NOFORMAT, NOINIT, NAME = '备份名称', SKIP, NOUNLOAD, STATS = 10```通过上述两种备份方式,可以定期备份数据库的事务日志,避免日志文件过大。
二、修改日志文件的增长方式1. 修改日志文件增长的百分比在数据库管理中,可以通过修改数据库的日志文件的增长百分比来控制日志文件的增长。
通过减小增长百分比,可以减缓日志文件的增长速度,从而减少磁盘空间的消耗。
2. 修改日志文件的增长大小除了修改增长百分比外,还可以通过修改日志文件的增长大小来控制日志文件的大小。
将增长大小设置为一个合适的值,可以避免日志文件过大,减少磁盘空间的占用。
三、截断事务日志1. 利用 SQL Server Management Studio (SSMS) 进行截断通过使用 SSMS,可以对数据库的事务日志进行截断。
在 SSMS 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。
SQLServer快速清除日志文件的方法
SQLServer快速清除日志文件的方法SQLServer2000快速清除日志文件的方法SQLServer2000数据库日志太大!如何清理SQLServer2000的日志呢?如何压缩SQLServer2000的日志呢?如何让SQLServer2000的日志变小呢?1、点几下鼠标,用SQLServer2000管理工具中的企业管理器即可实现,待会儿详解;2、用SQL语句,在SQLServer2000管理工具中的查询分析器可以实现,此法高级人士喜欢用;3、用第三方工具实现,原理嘛,我觉得应该是用SQL语句来实现的,这方法好,简单易用,网上不乏精品工具,待会儿介绍一款。
一、现在我们详细描述一下如何用企业管理器清理SQL2000的日志:1、打开企业管理器,右击要处理的.数据库--》属性--》选项--》故障还原,选“简单”--》确定。
如图:2、右击要处理的数据库--》所有任务--》收缩数据库--》什么也不动,默认第一个是0%,其它两个未选中,点确定--》如果您以前数据库日志文件大于1M那么现在再看看,是不是只有1M了呢。
3、操作完后--》按第一步,把“故障还原”,选“完全”,传说中SQLServer2000有自动还原功能,说是如果非法关机等因素造成数据丢失可以自动回滚,另外可以用程序来实现操作回滚,所以最好是让故障还原是“完全”。
4、这样便实现了“SQLServer2000数据库日志太大!如何管理,清除,变小,压缩它”中的清除,变小,压缩了,至于怎么管理,自己看着办吧,我一般只会用到这些,再有深入研究的话我会写上来的。
我喜欢用SqlServer日志清除专家v3.5来实现这个功能。
界面如下:数据库那里一般会将整个服务器的数据库名都列举出来,需要选择为自己账户能管理到的那个,我这里DB_iszip账户能管理的是iszip,选择好之后,点“清除日志”按钮,然后SQLServer2000的日志就被清理好了,此时你去服务器看你数据库日志占用空间就只有1M了。
SQLServer日志过大处理(分离附加)
SQLServer日志过大处理
注意:需要在应用停服状态下进行操作,并做好数据库备份1.查看数据库属性,找到数据库文件路径
常见路径为SQLServer默认DATA目录
可以在对应路径看到这个数据库的MDF和LDF文件
2.右键选择需要处理的数据,选择分离,分离之后数据库会从管理界面消失,分离时需要
勾选如下选项
3.剪切过大的LDF文件至其他目录,或者直接删除
4.数据库位置右键,选择附加mdf文件,删除找不到的日志文件,附加之后,日志会重新
生成
附加完成之后,数据库会出现在管理界面
5.至此完成过大日志处理,新增日志较小。
可以启动服务继续使用。
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.定期查询性能和优化定期查询数据库性能和优化可以帮助提高数据库的整体性能,并防止日志文件过大。
SQL 数据库文件超级大而且增长速度过快的解决办法
SQL 数据库文件超级大,而且增长速度过快!(2008-09-05 13:50:29)目前一客户的数据库文件(.MDF)占用空间超过有48G,切增长速度很快。
已经对日志文件进行了压缩。
在查询分析器中用 exec sp_spaceused语句进行查询,输出结果如下:(头疼的问题)database_name database_size unallocated_spaceNSMIS 48770.00M 1370.97 MBreserved data index_size unused48504160 KB 7017272 KB 270776 KB 41216112 KB--------------------------------------------------------------------------------------1、用BACKUP LOG database WITH NO_LOG清除日志把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,是否能删除主数据库事务日志文件步骤如下:(1)、分离数据库企业管理器--数据库--右击你要删除日志的数据库--所有任务--分离数据库(2)、然后删除日志文件(3)、然后再附加数据库企业管理器--数据库--右击数据库--所有任务--附加数据库这时候只附加。
mdf就可以了。
3、压缩SQL数据库及日志的详细方法SQL Server 2000基础教程——压缩数据库数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务日志文件的磁盘空间,以免浪费磁盘空间。
数据库日志文件过大的处理方法
数据库日志文件过大的处理方法
当数据库日志文件过大时,可以采取以下处理方法:
1. 增加日志文件的大小限制:可以通过修改数据库的配置参数来增加日志文件的大小限制,例如增加每种类型日志文件的最大大小限制,或者增加整个日志文件组的最大大小限制。
2. 压缩或归档日志文件:可以通过压缩或归档数据库的日志文件来减小其占用的磁盘空间。
可以使用压缩工具,例如gzip
或7-Zip等,来对日志文件进行压缩。
或者可以将已经归档的
日志文件移到其他存储介质,例如磁带库或远程备份服务器上。
3. 定期清理日志文件:可以定期清理数据库的日志文件,删除不再需要的旧日志。
可以设置一个保留期限,例如保留最近一周或一个月的日志文件,然后定期删除超过保留期限的日志文件。
4. 增加日志文件的切割频率:可以通过增加日志文件的切割频率来减小单个日志文件的大小。
可以将一个较大的日志文件切割成多个较小的日志文件,每个文件都包含一段时间范围内的日志。
5. 导出日志数据到其他存储介质:可以将数据库的日志数据导出到其他存储介质,例如分布式文件系统或集中式日志服务器上。
这样可以减小数据库的日志文件大小,同时还可以方便地对日志数据进行分析和检索。
需要注意的是,在处理数据库日志文件过大时,要确保同时满足数据库的恢复和故障恢复要求。
因此,在实施上述处理方法之前,应该详细了解数据库管理系统的日志管理机制,并根据具体情况进行操作。
关于数据库事务日志文件过大的解决方案(sql2000)
现象描述:
系统中心瑞星数据库包括数据文件以及对应的事务日志文件,如下图所示:
事务日志文件是SQLsever生成的,主要记录数据文件的操作日志,该文件不断增长不是瑞星程序导致的。
解决方案:
第一步:通过企业管理器分离数据库,如下图所示:
选择清除,中断所有对数据库的操作:
第二步:进入数据库文件所在的目录,删除过大的事务日志文件RavNetDB_log.LDF。
第三步:通过企业管理器,对数据库进行附加,如图所示:
浏览瑞星的数据库文件RavNetDB.mdf,进行附加,如图所示:
由于log日志文件被删除,因此附加数据库时会找不到该文件,选择“是”将创建新的事务日志文件,如图所示:
选择“是”,完成数据库的附件。
新的事务日志文件生成,大小为504K,减少了磁盘空间的占用,如图所示
最后需要重启Rav net alert服务和RNreport服务,打开日志管理工具,可以查询日志。
解决完LOG文件过大的问题后,还可以通过企业管理器对事务日志文件进行设置,避免该文件不断增大产生问题。
操作方法:
第一步:在数据库上鼠标右键选择属性,如图所示:
第二步:切换到事务日志,可对文件大小进行限制或禁止文件自动增长,如图所示:。
SQL数据库日记文件满造成数据库不能保存数据的处理方法
SQL Server2000数据库收缩、分离与附加当日记文件储存满以后,会出现SQL数据库数据无法保存现象。
这就造成了我们在运行KJ2008软件的时候出现,数据库连接正常,但报表打印出现“SQL 2009-4-11数据无效”。
此时,首先应该对kj2006数据库进行手动收缩。
收缩不成功才考虑分离和附加。
一、收缩数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库(kj2006)3、点击鼠标右键“所有任务》收缩数据库”,出现如下窗口4、点击“文件”,出现如下窗口选择:kj2006_log(日记文件),然后单独对日记文件进行收缩。
点:确定。
即完成对日记文件的收缩。
然后查看日记文件是否缩小。
SQL Server 2000允许分离数据库的数据和事务日志文件,然后将其重新附加到同一台或另一台服务器上。
分离数据库将从SQL Server 删除数据库,但是保证在组成该数据库的数据和事务日志文件中的数据库完好无损。
然后这些数据和事务日志文件可以用来将数据库附加到任何SQL Server 实例上,这使数据库的使用状态与它分离时的状态完全相同。
数据库分离和附加其实很简单,您即使是初次接触数据库,做起来也很容易。
一、分离数据库1、点击“程序》Microsoft SQL Server》企业管理》”,打开企业管理器2、展开服务器组,然后展开服务器,选中要分离的数据库3、点击鼠标右键“所有任务》分离数据库”,出现如下窗口4、点击确定,该选定的数据库就被分离(分离后的数据库和事务日志文件路径就是它们原先所在的路径)。
应注意,只有“使用本数据库的连接”数为0时,该数据库才能分离。
所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
sqlserver日志文件太大解决方法
sqlserver⽇志⽂件太⼤解决⽅法当SQL数据库⽇志⽂件已满,或者⽇志很⼤,就需要压缩⽇志及数据库⽂件:1.清空⽇志 DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务⽇志: BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库⽂件(如果不压缩,数据库的⽂件不会减⼩ 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩⽂件 --选择⽇志⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 --选择数据⽂件--在收缩⽅式⾥选择收缩⾄XXM,这⾥会给出⼀个允许收缩到的最⼩M数,直接输⼊这个数,确定就可以了 也可以⽤SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据⽂件,1是⽂件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1)4.为了最⼤化的缩⼩⽇志⽂件(如果是sql 7.0,这步只能在查询分析器中进⾏) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG⽂件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将⽣成新的LOG,⼤⼩只有500多K 或⽤代码: 下⾯的⽰例分离 pubs,然后将 pubs 中的⼀个⽂件附加到当前服务器。
a.分离 E X E C sp_detach_db @dbname = "pubs" b.删除⽇志⽂件 c.再附加 E X E C sp_attach_single_file_db @dbname = "pubs", @physname = "c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf"5.为了以后能⾃动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"⾃动收缩" --SQL语句设置⽅式: E X E C sp_dboption "数据库名", "autoshrink", "TRUE"6.如果想以后不让它⽇志增长得太⼤ 企业管理器--服务器--右键数据库--属性--事务⽇志 --将⽂件增长限制为xM(x是你允许的最⼤数据⽂件⼤⼩) --SQL语句的设置⽅式: alter database 数据库名 modify file(name=逻辑⽂件名,maxsize=20)特别注意: 请按步骤进⾏,未进⾏前⾯的步骤,请不要做后⾯的步骤 否则可能损坏你的数据库. ⼀般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果⽇志达到上限,则以后的数据库处理会失败,在清理⽇志后才能恢复.SQL Server 如何设置数据库的默认初始⼤⼩和⾃动增长⼤⼩sqlserver2008⽇志已满解决⽅法,SQL Server 如何设置数据库的默认初始⼤⼩和⾃动增长⼤⼩1、数据库右键属性-选项-恢复模式-下拉选择简单-最后点击确定2、右键数据库-任务-收缩-⽂件类型-下拉选择⽇志-收缩操作-在释放未使⽤…(默认收缩到1MB)-最后点击确定3、最后别忘了回到第⼀步骤把恢复模式改为完整!我们在SQL Server中新建数据库的时候,可以选择数据库⽂件及⽇志⽂件的初始⼤⼩、⾃动增长⼤⼩和最⼤⼤⼩,如下图所⽰:可以通过设置更改数据库初始⼤⼩、⾃动增长⼤⼩和最⼤⼤⼩:但是其实在SQL Server中新建数据库时,数据库的初始⼤⼩、⾃动增长⼤⼩和最⼤⼤⼩的默认值,是可以在model这个系统数据库上预设的。
SQL Server 2000数据库的事务日志文件过大,如何将其缩小?
关于这两个命令的具体使用方法,可以参考SQL Server 2000联机丛书中的相应主题。另外,也可在SQL Server企业管理器中执行数据库收缩,同样是调用的以上两个命令,效果类似。
在使用以上命令收缩日志文件的时候需要注意,已写入数据库但未被截断的事务日志记录是不会被收缩的,因为虽然这部分日志记录的信息已经写入数据库文件,但在使用事务日志备份进行数据库还原的时候,还将用到其中的信息。
为避免事务日志文件增长过快以致用尽所有磁盘空间的现象发生,一种办法是将数据库设为使用简单恢复模型,这样可以使SQL Server周期性的自动截断事务日志的非活动部分,并回收其占用的空间供以后写入事务日志记录使用。但这将使数据库无法利用事务日志备份还原到即时点,降低了数据库的可靠性,因此一般不应用于生产型数据库。
如果当前数据库的事务日志文件过大,必须对其进行收缩的话,建议参照以下步骤:
1、建议首先备份数据库(但不是必需的):
BACKUP DATABASE database_name TO backup_device
2、备份事务日志:
BACKUP LOG database_name TO backup_device
对于使用简单恢复模型的数据库,事务日志会在每次处理检查点(CheckPoint)时自动被截断。
对于使用完全恢复模型或大容量日志记录恢复模型的数据库,事务日志只有在执行日志备份(BACKUP LOG)时才会被截断,这时事务日志中记录的信息被写入事务日志备份文件,而它们所占用的这部分空间被标记为可用(即被截断)。
4、如果日志文件仍然较大的话,可以尝试重复执行一次BACKUP LOG WITH NO_LOG和DBCC SHRINKFILE命令。
SQL2000数据库收缩方法
SQL2000数据库收缩方法SQL Server 2000是一个关系型数据库管理系统(RDBMS),旨在高效地存储和管理大量数据。
收缩数据库是一种优化数据库性能和节省存储空间的方法。
在本文中,我们将介绍SQL Server 2000中的数据库收缩方法。
1.数据库备份:在进行任何数据库操作之前,务必进行数据库备份。
这是一种预防措施,以防止数据丢失。
2. 清理日志文件:SQL Server 2000使用事务日志来记录所有数据库操作。
如果事务日志文件太大,可能会导致数据库性能下降。
可以使用以下命令来清理事务日志文件:```SQLBACKUPLOG[数据库名称]WITHTRUNCATE_ONLYDBCCSHRINKFILE(2,TRUNCATEONLY)```其中,数据库名称是要清理事务日志文件的数据库的名称。
2是事务日志文件的ID。
3.收缩数据库文件:数据库文件可能会随着时间的推移变得非常庞大,这可能会导致性能下降和存储空间浪费。
可以使用以下命令来收缩数据库文件:```SQLDBCCSHRINKDATABASE([数据库名称])```其中,数据库名称是要收缩的数据库的名称。
4. 收缩文件组:SQL Server 2000允许将数据库文件分组到逻辑单元中,称为文件组。
可以使用以下命令来收缩文件组:```SQLDBCCSHRINKFILE([文件组名称],[目标大小])```其中,文件组名称是要收缩的文件组的名称,目标大小是要将文件组压缩到的大小。
5.禁用自动增量增长:数据库中的表可能具有自动增量增长的列,这意味着每次插入时,该列的值都会增加。
这可能会导致数据库文件变大。
可以使用以下命令来禁用自动增量增长:```SQLALTERTABLE[表名称]ALTERCOLUMN[列名称]IDENTITY(当前最大值,增量值)```其中,表名称是要禁用自动增量增长的表的名称,列名称是要禁用自动增量增长的列的名称,当前最大值是当前自动增量增长列的最大值,增量值是自动增量增长列的增量值。
SQLServer日志文件过大处理方法
1.备份日志文件:选择数据库->任务->备份->1.备份类型选'事务日志';
2.备份集过期时间,可
选择默认.
2.右键在清除日志的数据库,如“VNETDW”,点击[新建查询(Q)]
3.输入以下SQL语句,其中“VNETDW”是数据库名称: DUMP TRANSACTION VNETDW WITH
NO_LOG (清除事务日志)
4.执行该SQL,成功后继续以下操作: 右键该数据库节点,点击[任务(T)] -> [收缩(S)]
-> [文件(F)]
5.在弹出的“收缩文件”对话框中,将“文件类型(T)”选为“日志”,将“收缩操作”
选中“在释放未使用的空间前重新组织页(O)”
6.在“将文件收缩到(K)”文本框中输入后面提示的最小大小的数值,点击[确定]即可(可
以选择默认).
!!可能原先文件的大小没有发生变化,但是文件里面是空的(即:操作数据库的时候日志会继续往文件中添加,而同时确保文件大小不变)。
SQL数据库日志已满,或者日志很大问题解决
SQL数据库日志已满,或者日志很大,怎么办?先提供一种复杂的方法压缩日志及数据库文件如下:1.清空日志DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:BACKUP LOG 数据库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDATABASE(客户资料)--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfilesDBCC SHRINKFILE(1)4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离E X E C sp_detach_db @dbname = 'pubs'b.删除日志文件c.再附加E X E C sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5.为了以后能自动收缩,做如下设置:企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE'6.如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤否则可能损坏你的数据库.一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.另外提供一种更简单的方法,本人屡试不爽,建议大家使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如论坛数据库Forum)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存
2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定
3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据。