SqlServer数据库提示“tempdb”的日志已满问题如何解决

SqlServer数据库提示“tempdb”的日志已满问题如何
解决
本文主要讲述了笔者在执行sql语句的过程中,遇到SqlServer数据库提示tempdb”的日志已满问题。

请备份该数据库的事务日志以释放一些日志空间”的解决过程,希望对大家有所帮助。

 执行sql 语句,中间没有用到临时表
 提示服务器: 消息9002,级别17,状态2,行1
 数据库‘tempdb’ 的日志已满。

请备份该数据库的事务日志以释放一些日志空间。

 网上找了下解决方案,大体是扩大临时库的日志文件的大小解决的
 解决过程:
 查看了下数据库的属性,是自动增长,不指定文件大小上限。

 在网上Google了很久,试了些方法都不行;数据库所在磁盘还有很大的可用空间,试着下重药了。

 直接把tempdb的数据文件和日志文件的大小改为3000M,。

合集下载

sqlserver日志已满处理方法

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中的一个文件附加到当前服务器。

SQL Server 日志文件过大预防及解决方法

SQL Server 日志文件过大预防及解决方法

2010年01月23日星期六14:41事务日志文件(Transaction Log File)是用来记录数据库更新情况的文件,扩展名为LDF。

在SQL Server 2000 中,如果设置了自动增长功能,事务日志文件将会自动扩展。

一般情况下,在能够容纳两次事务日志截断之间发生的最大数量的事务时,事务日志的大小是稳定的,事务日志截断由检查点或者事务日志备份触发。

然而,在某些情况下,事务日志可能会变得非常大,以致用尽空间或变满。

通常,在事务日志文件占尽可用磁盘空间且不能再扩展时,您将收到如下错误消息:引用内容Error:9002, Severity:17, State:2The log file for database ’%.*ls’ is full.除了出现此错误消息之外,SQL Server 还可能因为缺少事务日志扩展空间而将数据库标记为SUSPECT。

有关如何从此情形中恢复的其他信息,请参见SQL Server 联机帮助中的“磁盘空间不足”主题。

另外,事务日志扩展可能导致下列情形:·非常大的事务日志文件。

·事务可能会失败并可能开始回滚。

·事务可能会用很长时间才能完成。

·可能发生性能问题。

·可能发生阻塞现象。

原因事务日志扩展可能由于以下原因或情形而发生:·未提交的事务·非常大的事务·操作:DBCC DBREINDEX 和Create INDEX·在从事务日志备份还原时·客户端应用程序不处理所有结果·查询在事务日志完成扩展之前超时,您收到假的“Log Full”错误消息·未复制的事务解决方法方法一:清空日志1) 打开查询分析器,输入命令BACKUP LOG 数据库名WITH NO_LOG(或者DUMP TRANSACTION 数据库名WITH NO_LOG )2) 再打开企业管理器→右键你要压缩的数据库→所有任务→收缩数据库→收缩文件→选择日志文件→在收缩操作里选择收缩文件至M,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。

清理 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 中选择要截断的数据库,右键点击“任务”->“收缩”->“文件”,选择要收缩的文件类型为“日志”,即可完成事务日志的截断。

SQL Server中已满事务日志原因的检测

SQL Server中已满事务日志原因的检测

SQL Server中已满事务日志原因的检测对于SQL Server数据库管理员来讲,已满事务日志是一个琐碎的,但又很常见的问题。

它能引发事务的提前终止,甚至通过阻止所有事务的引入,从而引起系统的崩溃。

对于数据库管理员来说,关键是理解将要发生的情况,以便他们可以追踪引起问题的原因。

事务日志填充方式以下是一些可能引起事务日志填满的原因:填满的,细节的,或者没有在已满恢复模式下进行的日志备份,都会引起日志逐渐地填充。

进程中有活动的备份(备份被作为事务一样来处理),它会填充部分日志,而事务将填充剩余部分。

长时间运行的活动事务,例如从来都不会产生提交的SPID,以及暂停或高速运行数据库镜像都会引发延迟。

前者会引起事务不发送,如果在发送事务到镜像服务器之后的较长时间内,才进行高速运行,则后者才会发生。

对于事务复制,如果复制延迟或失败,事务日志将不会被清除,因为除非事务与日志都提交并发送至分布式数据库,否则事务都不能被清除。

如果进程中有一个数据库快照,当它创建时,所有的事务都堆积在它后边。

简单的响应方法需要解决已满事务日志的问题时,你可以从以下几个选择入手:1、你可以执行备份来消减日志。

事务日志备份是最快的,但也可能是最慢的,这取决于系统性能以及日志的大小。

通常不推荐填满的或细节的备份,这取决于在大小合适的系统中完成这些备份所需的时间。

2、你可以向数据库中添加额外的事务日志文件并执行以上备份方法中的一种。

当你在进行必要的备份时,额外的事务日志文件的添加可以为你赢得额外的时间。

当然,它也可在稍后被删除。

3、你可以将数据库的模式切换到简单恢复模式,它将自动清除日志。

但要记住,你将会丢失自最近一次已满的/细节的事务日志备份之前的事务历史。

4、正在填充日志的活动事务可以连同一些系统进程被终止,以至不会被重新执行并填充日志。

当问题源被追踪到,它将提供一些缓解,但它不应该被考虑为一种解决方案。

5、在查找系统缓慢的原因时,数据库镜像/复制可以关闭。

SQLServer数据库日志已满的几种清理方案

SQLServer数据库日志已满的几种清理方案

SQLServer数据库⽇志已满的⼏种清理⽅案
1、执⾏SQL命令
1 USE [master]
2 GO
3 ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE WITH NO_WAIT
4 GO
5 ALTER DATABASE [数据库名称] SET RECOVERY SIMPLE --简单模式
6 GO
7 USE [数据库名称] ----指定需要清除⽇志的数据库名称
8 GO
9 DBCC SHRINKFILE (N'数据库⽇志名称' , 11, TRUNCATEONLY) ----指定需要清除⽇志的数据库名⽇志名称
10 GO
11 ALTER DATABASE [数据库名称] SET RECOVERY FULL WITH NO_WAIT
12 GO
13 ALTER DATABASE [数据库名称] SET RECOVERY FULL --还原为完全模式
2、数据库终端操作
打开数据库客户端,选择具体数据库
点击数据库,右键选择【属性】
在弹出窗⼝左侧点击【选项】,将【恢复模式】改为【简单】,点击确定保存
点击数据库,右键选择【任务】-【收缩】-【⽂件】
在弹出窗⼝中,【⽂件类型】选择【⽇志】,点击确定即可
点击数据库,右键选择【属性】
在弹出窗⼝左侧点击【选项】,将【恢复模式】恢复为【完成】,点击确定保存
3、删除⽇志⽂件
直接删除⽇志⽂件。

此种⽅式可能会遇到“当前⽇志正在被SQL Server使⽤⽆法删除”的问题,此时,需要停⽌SQL Server服务,才能进⾏删除。

DB2报“数据库日志已满”问题解决

DB2报“数据库日志已满”问题解决

DB2报“数据库日志已满”问题解决用控制中心直接改会比较容易一点,在数据库名称上点右键-->配置-->日志-->日志文件大小、主日志文件数、辅助日志文件数改大一点。

也可用命令行db2cmddb2 update db cfg for mymakro using LOGFILSIZ 512 --日志文件大小db2 update db cfg for mymakro using LOGPRIMARY 20 --主日志db2 update db cfg for mymakro using LOGSECOND5 10 --辅助日志要将与此数据库的所有连接断开后才会生效。

执行批处理时,DB2 报数据库的事务日志已满的错误,解决办法辅助日志文件的数目(LOGSECOND) = 25已更改的至日志文件的路径(NEWLOGPATH) =日志文件路径= D:\DB2\NODE0000\SQL00003\SQLOGDIR\溢出日志路径(OVERFLOWLOGPATH) =镜像日志路径(MIRRORLOGPATH) =首个活动日志文件= S0000005.LOG磁盘上已满的块日志(BLK_LOG_DSK_FUL) = NO事务使用的最大活动日志空间的百分比(MAX_LOG) = 01 个活动UOW 的活动日志文件的数目(NUM_LOG_SPAN) = 0组落实计数(MINCOMMIT) = 1软检查点前回收的日志文件的百分比(SOFTMAX) = 100启用的恢复的日志保留(LOGRETAIN) = RECOVERY启用的日志记录的用户出口(USEREXIT) = OFFHADR 数据库角色= STANDARDHADR 本地主机名(HADR_LOCAL_HOST) =HADR 本地服务名称(HADR_LOCAL_SVC) =HADR 远程主机名(HADR_REMOTE_HOST) =HADR 远程服务名称(HADR_REMOTE_SVC) =远程服务器的HADR 实例名(HADR_REMOTE_INST) =HADR 超时值(HADR_TIMEOUT) = 120HADR 日志写同步方式(HADR_SYNCMODE) = NEARSYNC第一个日志归档方法(LOGARCHMETH1) = LOGRETAIN logarchmeth1 的选项(LOGARCHOPT1) =第二个日志归档方法(LOGARCHMETH2) = OFFlogarchmeth2 的选项(LOGARCHOPT2) =故障转移日志归档路径(FAILARCHPATH) =错误时重试日志归档次数(NUMARCHRETRY) = 5日志归档重试延迟(秒)(ARCHRETRYDELAY) = 20供应商选项(VENDOROPT) =启用的自动重新启动(AUTORESTART) = ON索引重新创建时间和重做索引构建(INDEXREC) = SYSTEM (RESTART) 在索引构建期间记录页(LOGINDEXBUILD) = OFFloadrec 会话的缺省数目(DFT_LOADREC_SES) = 1要保留的数据库备份的数目(NUM_DB_BACKUPS) = 12恢复历史保留时间(天数)(REC_HIS_RETENTN) = 366TSM 管理类(TSM_MGMTCLASS) =TSM 节点名(TSM_NODENAME) =TSM 所有者(TSM_OWNER) =TSM 密码(TSM_PASSWORD) =自动维护(AUTO_MAINT) = OFF自动数据库备份(AUTO_DB_BACKUP) = OFF自动表维护(AUTO_TBL_MAINT) = OFF自动runstats (AUTO_RUNSTATS) = OFF自动统计信息概要分析(AUTO_STATS_PROF) = OFF自动概要文件更新(AUTO_PROF_UPD) = OFF自动重组(AUTO_REORG) = OFFdb2 => quitDB20000I QUIT 命令成功完成。

数据库tempdb的事物日志已满,原因为“ACTIVE_TRANSACTION”

数据库tempdb的事物⽇志已满,原因为“ACTIVE_TRANSACTION”
系统运⾏过程中,突然报错数据库tempdb的事物⽇志已满,原因为“ACTIVE_TRANSACTION”。

导致所有业务崩溃。

接到报警后,进⼊数据库服务器。

检查硬盘空间正常,于是登录数据库,⼀登录就报错。

且除系统数据库之外都⽆法显⽰。

⾸先尝试了收缩数据,但前台操作⼀直不成功
然后找了⼀个增加数据库⽇志⽂件的命令,在测试库测试添加成功
先查询数据库⽇志的存放位置,再讲tempdb的位置代⼊到FILENAME的位置中。

第⼀次执⾏未成功,第⼆次执⾏成功。

执⾏成功后系统即恢复正常。

1select*from sys.sysdatabases where name='tempdb'
2alter database tempdb add file (NAME=N'temp1_log',FILENAME=N'D:\MSSQL12.MSSQLSERVER\MSSQL\DATA\temp1_log.ndf',SIZE=8192KB,FILEGROWTH=65536KB) TO FILEGROUP [PRIMARY]总结:数据库⽇志因设置了⼤⼩限制,导致⽇志达到限制最⼤值时就会死掉。

数据库⽇志⼤⼩限制这个功能就是个坑千万别设置。

T3系统管理常见问题

1.问题描述:用户想将MSDE更换用SQL-Server2000,请问如何将用户数据平滑转过来?娄底用友软件解答:数据库的转换是平滑的,只要安装SQL-Server2000后,将您的数据库通过备份后再引入即可。

2.问题描述:安装用友通后,运行系统管理后,进入账套时系统提示当前是演示/教学版。

不知是什么原因?娄底用友软件解答:未检测到加密盒,请检查硬件配置。

3.问题描述:通2005,在技嘉440BX主板和联想QDI810主板上,不管是WIN98还是WIN2000都检测不到加密盒。

换上通卡,对联想QDI810主板(联想开天商用机系列)还是检测不到。

娄底用友软件解答:关于加密盒的解决方法,对于加密盒检测不到的用户,常用方法有:1.在COMS中把并口打开,设置CMOS的并口地址(parrall port)为:278或378方式(parrall port mode)为:NORMAL或STANDARD.或其他的兼容方式。

2.把MSMGV.DLL删除或改名,再重新安装用友软件。

或把正常测到加密盒的机器上的 MSMGV.DLL 拷贝到此机器上。

3.换其他机型的机器试一下,如果其他机器都测不到,说明加密盒坏了,请寄回公司更换。

4.问题描述:用友通2005安装以后,运行系统管理报"不能登陆到服务器:YEFALIE,不能登录到服务器,如何处理?娄底用友软件解答:建议重新安装MSED2000。

5.问题描述:通2005一安装,重新启动,操作系统为winxp home edition提示: servernt.exe启动错误,点不发送后,需手工启动uf2000服务。

娄底用友软件解答:通2005不支持XP,而且未在HOME版本上使用的先例,(注:财务通标准版和基础版支持WinXP)。

6.问题描述:使用的是通2005,最近电脑坏了,需要重新安装:1.我想把2001年的账备份,不知如何操作?2.重新安装财务通后,不知如何将备份导入?3.每月的账目结束后,不知如何备份当月(日)的数据?能否告知具体的操作步骤?娄底用友软件解答:1、在系统管理下进行账套输出,选择备份的目的盘,即可备份数据。

日志空间满(经典诠释)

日志空间满(经典诠释)转载自CUer的几个帖子!***********************************************有两种情况,可能出现这个问题。

一是应用系统给SQL Server发送了一个用户自定义事务,一直未提交,这个最早活跃事务阻碍系统截断日志。

二是客户端向SQL Server发送了一个修改数量大的事务,清日志时,该事务还正在执行之中,此事务所涉及的日志只能等到事务结束后,才能被截掉。

对于第一种情况,只要督促用户退出应用或者提交事务,系统管理员便可清掉日志。

因为给SQL Server发送Dump transaction with no-log或者with truncate-only,它截掉事务日志的非活跃部分。

所谓非活跃部分是指服务器检查点之间的所有已提交或回退的事务。

而从最早的未提交的事务到最近的日志记录之间的事务日志记录被称为活跃的。

从此可以看明,打开的事务能致使日志上涨,因为在最早活跃事务之后的日志不能被截除。

对于第二种情况,道理也同上。

只是在处理它时,需慎重从事。

如果这个大事务已运行较长时间,应尽量想法扩大数据库日志空间,保证该事务正常结束。

若该事务被强行回滚,SQL Server需要做大量的处理工作,往往是正向执行时间的几倍,系统恢复时间长,可能会影响正常使用的时间。

***********************************************如果出现提交了一个大的事务把整个日志库填满了,这时无论你怎么截断日志都是徒劳时,可以有三种办法解决:1.重启数据库(最笨的但最有效的),但肯定会有REDO和UNDO恢复时间长。

2.给数据库日志加空间,但必须有足够的空间。

3.找出执行大事物SESSION的ID,KILL它,但也会回滚,而且不定可以KILL得掉。

***********************************************对于第1个方法,可否直接修改sysdatabases里的status设为-32768,然后再进入数据库dump tran dbname with truncate_only,然后再重启把status设为0。

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档