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 命令。