sql数据库日志已满的处理方式
清除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日志文件太大清理方法

SQL日志文件太大清理方法当SQL日志文件太大时,清理方法包括:备份、压缩、归档和删除等步骤。
下面是一些具体的方法和步骤:1.备份日志文件:首先,需要确保已经备份了当前的SQL日志文件。
这是因为,在清理之前,需要先保存原始的日志文件,以防止出现意外情况。
可以使用数据库管理工具或命令行工具进行备份。
2.压缩日志文件:为了减小日志文件的大小,可以使用压缩工具将其进行压缩。
压缩后的日志文件可以占用更少的磁盘空间,同时也更容易存储和传输。
在压缩之前,要确保不再需要对日志进行任何操作,以免丢失任何重要信息。
3.归档日志文件:归档是将日志文件从当前位置移到另一个位置的过程。
通过归档,可以将旧的日志文件移动到一个备份或存档目录中,以便以后查看或还原。
这样,可以释放当前的日志文件空间,并保留原始的日志记录。
具体的归档方法可以根据数据库管理系统和应用程序的要求进行选择。
4.删除日志文件:一旦已经完成了备份、压缩和归档操作,就可以考虑删除较旧的日志文件。
删除日志文件可以释放磁盘空间,提高系统性能,并且可以避免日志文件过大对系统运行造成负面影响。
但是,在删除日志文件之前,要确保已经备份和归档了这些文件,以防止丢失重要的数据。
需要注意的是,清理SQL日志文件需要谨慎操作,以免出现数据丢失或其他不可预料的问题。
因此,在进行清理操作之前,建议先备份和归档日志文件,以便以后查看或还原。
此外,要保持日志文件的合理大小,可以定期进行备份和归档操作,避免日志文件不断增长而导致系统性能下降。
在执行清理操作时,最好在非繁忙的时间段进行,以减少对系统运行的干扰。
sqlserver日志已满处理方法

sql server日志已满处理方法sql server日志已满处理方法学习2009-07-2615:42:33阅读323评论0字号:大中小SQL数据库日志文件太大,或者使用软件时提示日志已满的处理方法.sql出现这种题提示,有二种情况,一你的电脑存放数据库文件的盘符不是NTFS格式的,而是别的格式,如FAT32只支持一个文件最大4G,所以超过4G就没有办法再写文件,sql 就会提示日志文件已满.另外就是NTFS格式的,前台见一个卖服装的朋友店里数据库主文件只有100多M,而日志文件却有40G,幸亏是他的硬盘空间多,不然软件早不能用了.估计软件数据库设计的有问题.后来给他重新建了一个日志收银速度明显加快.一--在SQL查询分析器执行--按下边的步骤一步一步的做--删除日志前要先对以前的数据库进行备份(这一步必须做,已免数据出现丢失)--1、使数据库脱机use masterexec sp_Detach_db test,true--2、把对应的.ldf文件删除或改名--需手工做自己手工删除数据库文件的所在目录下的.ldf文件--3、加载数据文件exec sp_attach_single_file_db test,'D:\Program Files\Microsoft SQL Server\MSSQL\Data\test_Data.MDF'--4设置日志文件的增长方式alter database test set recovery simple二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.为了最大化的缩小日志文件(如果是sql7.0,这步只能在查询分析器中进行)a.分离数据库:企业管理器--服务器--数据库--右键--分离数据库b.在我的电脑中删除LOG文件c.附加数据库:企业管理器--服务器--数据库--右键--附加数据库此法将生成新的LOG,大小只有500多K或用代码:下面的示例分离pubs,然后将pubs中的一个文件附加到当前服务器。
SQL2024数据库日志太大收缩方法

SQL2024数据库日志太大收缩方法在数据库中,日志文件记录了数据库的所有修改操作,包括数据更新、插入和删除。
随着时间的推移,日志文件可能会变得非常庞大,这可能会导致数据库性能下降和存储空间的过度使用。
为了解决这个问题,可以采取以下步骤来收缩SQL Server 2024数据库的日志文件。
1.备份日志文件:首先,您需要确保数据库的日志文件已经进行了备份。
通过备份日志文件,可以将日志中的事务信息保存到备份中,并允许数据库截断未使用的事务日志。
2.更改恢复模式:如果数据库处于完整恢复模式或大容量恢复模式下,可以将恢复模式更改为简单恢复模式。
这样做可以使日志文件更容易自动收缩,并释放空间。
3.执行事务日志的截断:可以通过执行CHECKPOINT语句或DBCC命令来截断事务日志。
CHECKPOINT语句将强制将内存中的修改写入磁盘,并将事务日志截断到CHECKPOINT之前的位置。
DBCC命令允许您手动截断事务日志。
4.缩小日志文件:使用DBCCSHRINKFILE命令缩小数据库的日志文件。
该命令将尝试将日志文件的物理大小收缩到适当的大小,以节省存储空间。
但请注意,缩小日志文件可能会造成数据库性能下降,因此需要谨慎使用。
5.定期维护计划:建立定期维护计划,包括备份和收缩日志文件的任务。
通过定期备份和收缩日志文件,可以确保数据库的日志文件始终保持在合理的大小范围内,避免过度使用存储空间。
6.监控日志文件:持续监控数据库的日志文件,以确保它不会再次变得过大。
如果发现日志文件再次过大,可以立即采取适当的措施来收缩日志文件。
需要注意的是,在执行以上操作之前,应该先备份数据库,并确保具有足够的磁盘空间来存储备份和缩小的日志文件。
此外,建议在操作数据库之前,先在测试环境中测试这些操作,以确保不会对生产环境中的数据库造成任何不可回滚的影响。
总之,通过备份、更改恢复模式、截断事务日志、缩小日志文件和建立定期维护计划,可以有效地收缩SQL Server 2024数据库的日志文件,并确保数据库的性能和存储空间的合理使用。
数据库的事务日志已满

数据库的事务日志已满。
若要查明无法重用日志中的空间的原因,请参阅sys.databases 中的log_reuse_wait_desc 列一般不建议做第4,6两步第4步不安全,有可能损坏数据库或丢失数据第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.1、清空日志DBCC SHRINKFILE(库名_log,0)DUMP TRANSACTION 库名WITH NO_LOG2、截断事务日志:如果出现“未能在sysfiles 中找到文件库名_log'。
DBCC 执行完毕。
如果DBCC 输出了错误信息,请与系统管理员联系。
”则使用这句SQL操作BACKUP LOG 库名WITH NO_LOGDBCC SHRINKFILE(2,0)3.收缩数据库文件(如果不压缩,数据库的文件不会减小企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件a、选择日志文件--收缩文件至,这里会给出一个允许收缩到的最小M数,确定就可以了b、选择数据文件--收缩文件至,这里会给出一个允许收缩到的最小M数,,确定就可以了也可以用SQL语句来完成--收缩数据库DBCC SHRINKDA TABASE(库名)--收缩指定数据文件,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)。
数据库2008清理日志

数据库2008清理日志
清理数据库日志是一个常见的操作,特别是在数据库日志文件
过大或者需要释放磁盘空间的情况下。
在SQL Server 2008中,你
可以通过以下几种方法来清理数据库日志:
1. 备份日志,最常见的清理数据库日志的方法是通过备份日志
文件。
你可以使用SQL Server Management Studio (SSMS)或者Transact-SQL命令来进行日志备份。
通过备份日志,数据库引擎会
将已经提交的事务从日志文件中清除,从而释放空间。
2. 收缩日志文件,你可以使用DBCC SHRINKFILE命令来收缩日志文件的大小。
但是在使用这个命令之前需要注意,收缩日志文件
可能会导致日志文件的不连续性,影响性能,因此建议在非高峰期
进行操作。
3. 更改恢复模式,如果你的数据库处于完整恢复模式下,你可
以考虑将其改为简单恢复模式,这样可以减少日志文件的增长速度。
但是需要注意的是,这样做会影响到数据库的恢复能力,需要谨慎
操作。
4. 限制日志文件增长,你可以通过设置日志文件的初始大小和自动增长选项来限制日志文件的增长,避免日志文件过大。
需要注意的是,在清理数据库日志的过程中,一定要确保数据库的完整性和可恢复性,避免造成数据丢失或者损坏。
另外,在进行任何数据库操作之前,建议先在测试环境中进行测试,以避免意外情况的发生。
清理 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 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。
SQL数据库日志文件容量超大解决方法

问题:数据库达到160G,怎样处理?
原因:
1、S QLSERVER数据库,分为日志文件.ldf和主要文件.mdf,主要文件就是我们
的原始数据库,日志文件主要用于灾难恢复,记录了对数据库的所有操作的日志。
2、数据库大的原因为日志文件ykchr.log很大,主要文件才3G多,日志文件增
长策略为不限制增长,导致日志只追加不会覆盖,所以才会很大。
解决办法:
将日志文件中的日志全部清空,修改日志文件的增长策略,目前调整为到最大10G,超过10G自动从头覆盖。
也可以将日志文件大小最大限制为5G
步骤:
1、查看数据库中,确认哪个文件占用空间较大。
2、选择目标数据库,分离数据库,为了可以删除日志文件。
3、现在可以修改日志文件名。
3、重新附加数据库,找到mdf文件即可。
5、删除找不到的日志文件目录。
6、直接恢复数据库即可。
7、刷新,显示出加附加的数据库。
8、找到目标数据库,打开属性,限制日志文件最大容量5G。
SqlServer数据库提示“tempdb”的日志已满问题如何解决

SqlServer数据库提示“tempdb”的日志已满问题如何
解决
本文主要讲述了笔者在执行sql语句的过程中,遇到SqlServer数据库提示tempdb”的日志已满问题。
请备份该数据库的事务日志以释放一些日志空间”的解决过程,希望对大家有所帮助。
执行sql 语句,中间没有用到临时表
提示服务器: 消息9002,级别17,状态2,行1
数据库‘tempdb’ 的日志已满。
请备份该数据库的事务日志以释放一些日志空间。
网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的
解决过程:
查看了下数据库的属性,是自动增长,不指定文件大小上限。
在网上Google了很久,试了些方法都不行;数据库所在磁盘还有很大的可用空间,试着下重药了。
直接把tempdb的数据文件和日志文件的大小改为3000M,。
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时,该数据库才能分离。
所以分离数据库时尽量断开所有对要分离数据库操作的连接,如果还有连接数据库的程序,会出现数据库的连接状态窗口,显示正在连接此数据库的机器以及名称,点击清除按钮将从服务器强制断开现有的连接。
数据库日志文件过大的处理方法

数据库日志文件过大的处理方法
当数据库日志文件过大时,可以采取以下处理方法:
1. 增加日志文件的大小限制:可以通过修改数据库的配置参数来增加日志文件的大小限制,例如增加每种类型日志文件的最大大小限制,或者增加整个日志文件组的最大大小限制。
2. 压缩或归档日志文件:可以通过压缩或归档数据库的日志文件来减小其占用的磁盘空间。
可以使用压缩工具,例如gzip
或7-Zip等,来对日志文件进行压缩。
或者可以将已经归档的
日志文件移到其他存储介质,例如磁带库或远程备份服务器上。
3. 定期清理日志文件:可以定期清理数据库的日志文件,删除不再需要的旧日志。
可以设置一个保留期限,例如保留最近一周或一个月的日志文件,然后定期删除超过保留期限的日志文件。
4. 增加日志文件的切割频率:可以通过增加日志文件的切割频率来减小单个日志文件的大小。
可以将一个较大的日志文件切割成多个较小的日志文件,每个文件都包含一段时间范围内的日志。
5. 导出日志数据到其他存储介质:可以将数据库的日志数据导出到其他存储介质,例如分布式文件系统或集中式日志服务器上。
这样可以减小数据库的日志文件大小,同时还可以方便地对日志数据进行分析和检索。
需要注意的是,在处理数据库日志文件过大时,要确保同时满足数据库的恢复和故障恢复要求。
因此,在实施上述处理方法之前,应该详细了解数据库管理系统的日志管理机制,并根据具体情况进行操作。
SQL解决数据库日志文件已满的问题

删除数据库日志文件 附加数据库时,出现找不到日志字样,删除数据库日志文件 点击保存,成功!
Hale Waihona Puke 数据库属性选项恢复模式由完成切换成简单在收缩完成之后记得改回完整模式
SQL解 决 数 据 库 日 志 文 件 已 满 的 问 题
出现数据库操作失败,查找原因,发现数据库日志已满:
解决此问题有两种方法: 1、压缩日志文件 1.数据库->属性->选项-恢复模式->由完成切换成简单(在收缩完成之后记得改回完整模式) 2.数据库->任务->收缩-文件->文件类型->日志->将文件收缩到
解决SQL数据库日志已满的问题

解决SQL数据库日志已满的问题1、右键数据库→属性→选项→故障还原模型→设为简单→确定;2、右键数据库→所有任务→收缩数据库→确定;3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。
二、复杂方法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.分离EXEC sp_detach_db @dbname = 'pubs'b.删除日志文件c.再附加EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:\ProgramFiles\Microsoft SQL Server\MSSQL\Data\pubs.mdf'5、为了以后能自动收缩,做如下设置企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式:EXEC sp_dboption '数据库名', 'autoshrink', 'TRUE'6、如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名modify file(name=逻辑文件名,maxsize=20)特别注意:请按步骤进行,未进行前面的步骤,请不要做后面的步骤,否则可能损坏你的数据库。
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数据库提示“tempdb”的日志已满问题解决方案

SqlServer数据库提⽰“tempdb”的⽇志已满问题解决⽅案执⾏sql 语句,中间没有⽤到临时表提⽰服务器: 消息 9002,级别 17,状态 2,⾏ 1数据库 'tempdb' 的⽇志已满。
请备份该数据库的事务⽇志以释放⼀些⽇志空间。
⽹上找了下解决⽅案,⼤体是扩⼤临时库的⽇志⽂件的⼤⼩解决的解决过程:查看了下数据库的属性,是⾃动增长,不指定⽂件⼤⼩上限。
在⽹上Google了很久,试了些⽅法都不⾏;数据库所在磁盘还有很⼤的可⽤空间,试着下重药了。
直接把tempdb的数据⽂件和⽇志⽂件的⼤⼩改为3000M,问题解决。
记录⼀下清空⽇志的命令:DUMP TRANSACTION dbname WITH NO_LOG截断事务⽇志命令:BACKUP LOG dbname WITH NO_LOG收缩⽇志操作:右键点数据库-属性-所有任务-收缩数据库-⽂件-选择⽂件-确定。
虽然⽤清空⽇志命令清空了tempdb的⽇志,但是不能解决问题。
于是扩⼤tempdb的数据⽂件和⽇志⽂件的⼤⼩,ALTER DATABASE [tempdb] MODIFY FILE (NAME = N'templog', MAXSIZE = UNLIMITED)ALTER DATABASE [tempdb] MODIFY FILE (NAME = N'templog', FILEGROWTH = 10%)ALTER DATABASE [tempdb] MODIFY FILE (NAME = N'templog ', SIZE = 1000)ALTER DATABASE [tempdb] MODIFY FILE (NAME = N'tempdev ', SIZE = 1000)。
sql数据库日志已满的处理方式

DBCC SHRINKDATABASE收缩指定数据库中的数据文件大小。
语法DBCC SHRINKDATABASE(database_name [, target_percent ][ ,{NOTRUNCATE |TRUNCATEONLY }])参数database_name是要收缩的数据库名称.数据库名称必须符合标识符的规则。
有关更多信息,请参见使用标识符。
target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比.NOTRUNCATE导致在数据库文件中保留所释放的文件空间。
如果未指定,将所释放的文件空间释放给操作系统。
TRUNCATEONLY导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据.不试图重新定位未分配页的行。
使用TRUNCATEONLY 时,忽略target_percentis。
注释Microsoft® SQL Server™可收缩:特定数据库的所有数据和日志文件。
执行DBCC SHRINKDATABASE。
一次一个特定数据库中的数据或日志文件.执行DBCC SHRINKFILE.DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。
然而,DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池中.假设名为mydb 的数据库有两个数据文件和两个日志文件。
这些数据文件和日志文件大小都为10 MB。
第一个数据文件包含6 MB 数据。
对于每个文件,SQL Server 计算目标大小,即要收缩文件到的大小.当用target_percent 指定DBCC SHRINKDATABASE 时,SQL Server 计算的目标大小是收缩后文件中的target_percent 可用空间大小.例如,如果指定按target_percent 为25 收缩mydb。
解决数据库日志已满

数据库的日志已满。
请备份该数据库的事务日志以释放一些日志空间。
说明: 执行当前Web 请求期间,出现未处理的异常。
请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: 数据库'***' 的日志已满。
请备份该数据库的事务日志以释放一些日志空间。
源错误:[没有相关的源行]源文件: c:\WINDOWS\\Framework\v2.0.50727\Temporary Files\root\72899b79\f8dff11c\App_Web_uff-9q5u.28.cs行: 0可能引起的原因是:统计,排序这类操作太多了,太频繁了。
解决办法:还是要优化语句。
在tempdb库属性中,在[企业管理器]中把[事务日志]的[文件属性]中的[文件自动增长]前面打上钩,并且查看一下你的日志文件所在磁盘空间够不够了。
如果不够,备份后换个地方存[注:tempdb你数据库名称。
]复杂的方法,压缩日志及数据库文件如下:1. 清空日志DUMP TRANSACTION 数据库名WITH NO_LOG2. 截断事务日志BACKUP LOG 数据库名WITH NO_LOG3. 收缩数据库文件(如果不压缩,数据库的文件不会减小)企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--●选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了●选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了收缩数据库:DBCC SHRINKDATABASE (数据库名)收缩指定数据文件:DBCC SHRINKFILE (1)1是文件号,可以通过这个语句查询到:Select * from sysfiles4. 为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)●分离数据库企业管理器--服务器--数据库--右键--分离数据库( EXECsp_detach_db @dbname = ’pubs‘ )●在我的电脑中删除LOG文件●附加数据库企业管理器--服务器--数据库--右键--附加数据库( EXECsp_attach_single_file_db@dbname = ‘pubs’,@physname = ’c:\Program Files\MicrosoftSQLServer\MSSQL\Data\pubs.mdf‘ )此法将生成新的LOG,大小只有500多K5. 为了以后能自动收缩,做如下设置企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"--SQL语句设置方式: EXEC sp_dboption’数据库名‘, ’autoshrink‘, ’TRUE‘6. 如果想以后不让它日志增长得太大企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)--SQL语句的设置方式:alter database 数据库名modify file(name=逻辑文件名,maxsize=20)特别注意:●请按步骤进行,未进行前面的步骤,请不要做后面的步骤●否则可能损坏你的数据库.●一般不建议做第4,6两步●第4步不安全,有可能损坏数据库或丢失数据●第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.简单的方法,本人屡试不爽,建议大家使用。
SQL数据库日志文件过大解决办法

SQL数据库日志文件过大解决办法方法操作方式如下:打开查询分析器,选择数据库,在查询对话框中输入BACKUP LOG 数据库名 WITH NO_LOG --截断事务日志GODBCC SHRINKFILE(日志文件的文件名) --收缩日志文件,文件名就是在企业管理器里面找到的那个GO原理:事务日志里面记录了用户对数据库的所有操作,其中有一部是保留的,用作数据库故障恢复,其它都是可删除的,载断事务日志就是将可删除的那部份日志标记为不活动日志(但并没有删除),收缩日志文件就是把日志中不活动的日志清除。
另外,由于日志文件中的数据块是每块100M,所以如果日志文件小于100M,收缩后看文件并不会缩少(相关内容可查询sql server 帮助文档中“收缩事务日志”部份)用'管理'->'数据库维护计划'来做选择数据库->从数据库文件中删除未使用的空间当数据库的大小超过n MB时收缩数据库保留10% 的数据空间作为可用空间,这样可以调度执行,不需要手工操作。
在维护日志备份序列时,调度BACKUPLOG语句按间隔发生,以使事务日志不致增长到超过预期的大小。
*当不维护日志备份序列时,指定简单恢复模式。
详情请参考 MSSQLServer2000联机丛书:目录--> SQLServer构架-->数据库构架-->物理数据库构架-->事务日志构架-->收缩事务日志目录--> SQLServer构架-->数据1:删除LOG文件(1)分离数据库企业管理器->服务器->数据库->右键->分离数据库(2)删除LOG文件(3)附加数据库企业管理器->服务器->数据库->右键->附加数据库此法生成新的LOG,大小只有500多K再将此数据库设置自动收缩或用代码:下面的示例分离 pubs,然后将 pubs中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = 'pubs'EXEC sp_attach_single_file_db @dbname = 'pubs',@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs.mdf'2:清空日志DUMP TRANSACTION 库名 WITH NO_LOG企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了DUMP TRANSACTION 库名 WITH NO_LOG或截断日志:backuplog 数据库 withno_log3:清除日志方法1、--在查询分析器,选中所要清理日志的数据库,执行如下SQLbackuplog 数据库名 withno_logDBCC SHRINKFILE(日志文件名或日志文件ID,要缩小的目标大小)在当前数据库下select fileid,groupid,name from sysfiles where groupid=0----------------------------------------得到以下结果fileid groupid name20 test_log以上结果,fileid为日志文件ID,name为test_log你可以backup log test with no_logdbcc shrinkfile (2,2)或者backup log test with no_logdbcc shrinkfile('test_log',2)如果以后,不想要它变大,在数据库上点右键->属性->选项->故障恢复模型选择简单模型就可以了!或用SQL语句alterdatabase 数据库名setrecoverysimple方法2、SQLSERVER企业管理器-》SQL SERVER组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DBCC SHRINKDATABASE收缩指定数据库中的数据文件大小。
语法DBCC SHRINKDATABASE( database_name [ , target_percent ][ , { NOTRUNCATE | TRUNCATEONLY } ])参数database_name是要收缩的数据库名称。
数据库名称必须符合标识符的规则。
有关更多信息,请参见使用标识符。
target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
NOTRUNCATE导致在数据库文件中保留所释放的文件空间。
如果未指定,将所释放的文件空间释放给操作系统。
TRUNCATEONLY导致将数据文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次所分配的大小,从而减少文件大小,而不移动任何数据。
不试图重新定位未分配页的行。
使用TRUNCATEONLY 时,忽略target_percentis。
注释Microsoft® SQL Server™可收缩:特定数据库的所有数据和日志文件。
执行DBCC SHRINKDATABASE。
一次一个特定数据库中的数据或日志文件。
执行DBCC SHRINKFILE。
DBCC SHRINKDATABASE 以每个文件为单位对数据文件进行收缩。
然而,DBCC SHRINKDATABASE 在对日志文件进行收缩时,看起来好像所有的日志文件都存在于一个连续的日志池中。
假设名为mydb 的数据库有两个数据文件和两个日志文件。
这些数据文件和日志文件大小都为10 MB。
第一个数据文件包含6 MB 数据。
对于每个文件,SQL Server 计算目标大小,即要收缩文件到的大小。
当用target_percent 指定DBCC SHRINKDATABASE 时,SQL Server 计算的目标大小是收缩后文件中的target_percent可用空间大小。
例如,如果指定按target_percent 为25 收缩mydb。
SQL Server 计算的该文件的目标大小为8 MB(6 MB 数据加上2 MB 可用空间)。
因此,SQL Server 将任何数据从数据文件的最后2 MB 中移动到数据文件前8 MB 的可用空间中,然后对该文件进行收缩。
假设mydb 的第一个数据文件包含7 MB 的数据。
若将target_percent 指定为30,则允许将该数据文件收缩到所要的可用百分比30。
然而,若将target_percent 指定为40,就不会收缩该数据文件,因为SQL Server 不能将文件收缩到比数据当前占有的空间还小的程度。
也可以从另一个角度考虑这个问题:40% 要求的可用空间+ 70% 完整的数据文件(10 MB 中的7 MB)大于100%。
因为所要求的可用百分比加上数据文件占用的当前百分比大于100%(多出10%),所以任何大于30 的target_size 都不会收缩该数据文件。
对于日志文件,SQL Server 使用target_percent 以对整个日志的目标大小进行计算;因此,target_percent 是收缩操作后日志中的可用空间大小。
之后,整个日志的目标大小可以解释为每个日志文件的目标大小。
DBCC SHRINKDATABASE 尝试立即将每个物理日志文件收缩到其目标大小。
如果虚拟日志中的所有逻辑日志部分都没有超出日志文件的目标大小,则该文件将成功截断,DBCC SHRINKDATABASE 完成且不显示任何消息。
然而,如果虚拟日志中的逻辑日志部分超出其目标大小,则SQL Server 释放尽可能多的空间并发出一条消息。
该消息告诉您需要执行什么操作来移动文件末尾超出虚拟日志的逻辑日志部分。
执行完该操作后,可以重新发出DBCC SHRINKDATABASE 命令以释放剩余的空间。
有关收缩事务日志的更多信息,请参见收缩事务日志。
因为日志文件只能收缩到虚拟日志文件边界,所以不可能将日志文件收缩到比虚拟日志文件更小(即使现在没有使用该文件)。
例如,可以将数据库的 1 GB 日志文件收缩到只有128 MB。
有关截断的更多信息,请参见截断事务日志。
有关确定虚拟日志文件大小的更多信息,请参见虚拟日志文件。
由DBCC SHRINKDATABASE 计算的数据和日志文件的目标大小始终不小于文件的最小大小。
文件的最小大小是在文件最初创建时指定的大小,或是上一次用更改文件大小的操作(如用带有MODIFY FILE 选项的ALTER DATABASE 或DBCC SHRINKFILE)显式设置的大小。
例如,如果在执行CREATE DATABASE 时,将mydb 的所有数据和日志文件大小都指定为10 MB,则每个文件的最小大小都为10 MB。
DBCC SHRINKDATABASE 不能收缩任何小于10 MB 的文件。
如果使用带有MODIFY FILE 选项的ALTER DATABASE 将其中的一个文件显示增长到20 MB,则该文件新的最小大小为20 MB。
若要将文件大小收缩到小于其最小大小,请使用DBCC SHRINKFILE 并指定新大小。
执行DBCC SHRINKFILE 会将文件的最小大小更改为所指定的新大小。
在使用数据文件时,DBCC SHRINKDATABASE 有NOTRUNCATE 和TRUNCATEONLY 选项。
如果为日志文件指定这两个选项,则将忽略这两个选项。
DBCC SHRINKDATABASE 不带任何选项等价于DBCC SHRINKDATABASE 带有NOTRUNCATE 选项,后面还要跟着带有TRUNCATEONLY 选项的DBCC SHRINKDATABASE。
不论是否指定target_percent,NOTRUNCATE 选项都执行DBCC SHRINKDATABASE 的实际数据移动操作(包括将分配页从文件的末尾移动到文件前面的未分配页)。
然而,文件末尾的可用空间不会返回给操作系统,文件的物理大小也不会更改。
因此,如果指定NOTRUNCATE 选项,数据文件好像没有收缩。
例如,假设再次使用mydb 数据库,该mydb 有两个数据文件和两个日志文件。
第二个数据文件和第二个日志文件的大小都为10 MB。
执行DBCC SHRINKDATABASE mydb NOTRUNCATE 时,Microsoft SQL Server 将数据从数据文件的后面几页移动到前面几页中。
而文件的大小仍然为10 MB。
TRUNCATEONLY 选项将文件末尾的所有可用空间收回给操作系统。
然而,TRUNCATEONLY 在文件内不执行任何页移动操作。
指定的文件只能收缩到上一次分配的大小。
如果使用TRUNCATEONLY 选项指定target_percent,则忽略后者。
所生成的数据库不能比model 数据库更小。
要收缩的数据库不必在单用户模式下;其他的用户仍可以在数据库收缩时对其进行工作。
这也包括系统数据库。
结果集下表描述结果集内的列。
列名描述DbId SQL Server 试图收缩的文件的数据库标识号。
FileId SQL Server 试图收缩的文件的文件标识号。
CurrentSize 文件当前占用的8KB 页数。
MinimumSize 文件可以占用的最小8KB 页数。
这与文件的最小大小或最初创建时的大小相对应。
UsedPages 文件当前使用的8KB 页数。
EstimatedPages SQL Server 估计文件能够收缩到的8KB 页数。
DBCC SHRINKFILE收缩相关数据库的指定数据文件或日志文件大小。
语法DBCC SHRINKFILE( { file_name | file_id }{ [ , target_size ]| [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ]})参数file_name是已收缩文件的逻辑名称。
文件名必须符合标识符的规则。
有关更多信息,请参见使用标识符。
file_id是要收缩的文件的标识(ID) 号。
若要获得文件ID,请使用FILE_ID 函数或在当前数据库中搜索sysfiles。
target_size是用兆字节表示的所要的文件大小(用整数表示)。
如果没有指定,DBCC SHRINKFILE 将文件大小减少到默认文件大小。
如果指定target_size,DBCC SHRINKFILE 将试图将文件收缩到指定大小。
将要释放的文件部分中的已使用页将重新定位到保留的文件部分中的可用空间。
例如,如果数据文件为10MB,则带有target_size 为8 的DBCC SHRINKFILE 将导致文件最后2 MB 中所有已用页重新分配到文件前8 MB 中的任何可用槽中。
DBCC SHRINKFILE 不会将文件收缩到小于存储文件中的数据所需要的大小。
例如,如果使用10MB 数据文件中的7 MB,带有target_size 为6 的DBCC SHRINKFILE 语句只能将该文件收缩到7 MB,而不能收缩到6 MB。
EMPTYFILE将所有数据从指定文件中迁移到同一文件组中的其它文件。
Microsoft® SQL Server™不再允许将数据放在用于EMPTYFILE 选项的文件上。
该选项允许使用ALTER DATABASE 语句除去文件。
NOTRUNCATE导致将释放的文件空间保留在文件中。
当与target_size 一起指定NOTRUNCATE 时,释放的空间不会释放给操作系统。
DBCC SHRINKFILE 的唯一影响是将已使用的页从target_size 行上面重新定位到文件的前面。
当未指定NOTRUNCATE 时,所有释放的文件空间返回给操作系统。
TRUNCATEONLY导致文件中的任何未使用的空间释放给操作系统,并将文件收缩到上一次分配的大小,从而减少文件大小,而不移动任何数据。
不尝试将行重新定位到未分配页。
如果使用TRUNCATEONLY,将忽略target_size。
注释DBCC SHRINKFILE 适用于当前数据库中的文件。
将上下文切换到数据库,以发出引用该特定数据库中文件的DBCC SHRINKFILE 语句。
有关更改当前数据库的更多信息,请参见USE。
所生成的数据库不能比model 数据库更小。
使用DBCC SHRINKFILE 以将文件减小到比其最初创建时更小。
之后,文件的最小大小重置为新指定的大小。
若要删除在文件中可能出现的任何数据,请在执行ALTER DATABASE 之前执行DBCC SHRINKFILE('file_name', EMPTYFILE)。
要收缩的数据库不必在单用户模式下;收缩文件时,同时其他用户可以在数据库中工作。