当前位置:数据库 > SQLServer >>

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

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


sql2000/2005 数据处理量大的时候,程序会报

“数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间”

这时你可以收缩一下数据库日志或者清空一下(如果日志文件不很重要的话)

清空事务日志命令:
DUMP TRANSACTION dbname WITH NO_LOG

截断事务日志命令:
BACKUP LOG dbname WITH NO_LOG
收缩日志操作:
1、右键点数据库-属性-所有任务-收缩数据库-文件-选择文件

2、此方法要求您重新启动 SQL Server。

停止 SQL Server。打开命令提示符,然后键入以下命令启动 SQL Server:

sqlservr -c -f

-c 和 -f 参数使 SQL Server 以最小配置模式启动,让数据文件的 tempdb 大小为 1 MB,日志文件的 tempdb 为 0.5 MB。

注意:如果使用 SQL Server 命名实例,必须切换到适当的文件夹 (Program Files\Microsoft SQL Server\MSSQL$instance name\Binn),并使用 -s 开关 (-s%instance_name%)。
用查询分析器连接到 SQL Server,然后运行下列 Transact-SQL 命令:
ALTER DATABASE tempdb MODIFY FILE
   (NAME = 'tempdev', SIZE = target_size_in_MB)
   --Desired target size for the data file

   ALTER DATABASE tempdb MODIFY FILE
   (NAME = 'templog', SIZE = target_size_in_MB)
   --Desired target size for the log file
通过在命令提示符窗口中按 Ctrl-C 停止 SQL Server,将 SQL Server 作为服务重新启动,然后验证 Tempdb.mdf 和 Templog.ldf 文件的大小。
此方法的局限是它只能对默认的 tempdb 逻辑文件 tempdev 和 templog 进行操作。如果将其他文件添加到了 tempdb,您可以在将 SQL Server 作为服务重新启动后收缩它们。在启动过程中将重新创建所有 tempdb 文件;因此,它们是空的并可删除。要删除 tempdb 中的其他文件,请使用带有 REMOVE FILE 选项的 ALTER DATABASE 命令。

---------------------------------------------------


解决 “数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间” 的问题

数据库sqlserver磁盘任务

一个使用SQLServer2000的后台页面总报
“数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间”
事件查看里面的应用程序日志里也记录了同样的错误。
查看了下数据库的属性,是自动增长,不指定文件大小上限。
数据库所在磁盘还有很大的可用空间。看来只好下重药了。
直接把tempdb的数据文件和日志文件的大小改为500M,
问题解决。

记录下清空日志的命令:
DUMP TRANSACTION dbname WITH NO_LOG
截断事务日志命令:
BACKUP LOG dbname WITH NO_LOG
收缩日志操作:
右键点数据库-属性-所有任务-收缩数据库-文件-选择文件-确定。

---------------------------------------


sql2000数据库 'tempdb' 的日志已满

第一种情况:
管理软件做日结:
提示“日结出错,错误信息:数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。”
 
第二种情况:
执行sql 语句,中间没有用到临时表
提示服务器: 消息 9002,级别 17,状态 2,行 1
数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
 
以上两种情况都属于日志问题。
百度查询到如下解决方案,大体是扩大临时库的日志文件的大小解决的
解决过程:
a、先查看数据库的属性,发现是自动增长,不指定文件大小上限。
b、查看数据库所在磁盘空间大小,发现还有很大的可用空间。
然后试了些方法都不行,就直接把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)

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,