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

sql2000/2005 数据处理量大的时候,程序会报
“数据库 'tempdb' 的日志已满。请备份该数据库的事务日志以释放一些日志空间”

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

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

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

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

  1. 停止 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%)。
  2. 用查询分析器连接到 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
  3. 通过在命令提示符窗口中按 Ctrl-C 停止 SQL Server,将 SQL Server 作为服务重新启动,然后验证 Tempdb.mdf 和 Templog.ldf 文件的大小。

此方法的局限是它只能对默认的 tempdb 逻辑文件 tempdevtemplog 进行操作。如果将其他文件添加到了 tempdb,您可以在将 SQL Server 作为服务重新启动后收缩它们。在启动过程中将重新创建所有 tempdb 文件;因此,它们是空的并可删除。要删除 tempdb 中的其他文件,请使用带有 REMOVE FILE 选项的 ALTER DATABASE 命令。

你可能感兴趣的:(数据库)