sql server 2008 日志文件已经到了最大值,还会记录日志吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2008 日志文件已经到了最大值,还会记录日志吗相关的知识,希望对你有一定的参考价值。

假如一个数据库的日志文件最大设置为10G,现在这个日志文件已经增长到了10G。但是没有人处理它,这时 sql server 还会往日志文件里面写东西吗,是把他截断一部分腾出空间来写新日志,还是不再写日志。
再加一问,在备份数据库的时候能不能只备份数据文件,就想只备份log文件一样,如:backup log 。。。

你好,日志文件满了,就写不进去数据了。所以最好不要设置日志文件的大小。或者你定期自动截断备份也可以。

消息 9002,级别 17,状态 4,第 1 行
数据库 'test' 的事务日志已满。若要查明无法重用日志中的空间的原因,

右击数据库-备份,里面有选择备份数据库还是文件和文件组的。
参考技术A 日志满了以后,会自动截断不活动的日志用来保存新的日志。说白了就是循环利用。

你追问的问题不太清楚,但是我们做备份的时候,通常会先收缩一下数据库追问

感觉你和上面那位回答的完全不一样啊 ,我自己去试验一下。
追问就是 假如我想只备份日志文件 可以用backup log 但是我想只备份数据文件不备份日志文件 ,这能做吗

追答

这个我真不知道,以前我有听说过备份不会备份日志,但是没试验过,而且我们备份的时候都做了job,会事先收缩数据库,就是把日志文件清掉,所以没关注这个。

追问

上面那位说的是对的,日志空间满了之后会报错的
你们做了job你可以看下job执行的脚本啊

SQL Server 2008 收缩日志 清空删除大日志文件

 
SQL2008 的收缩日志 
由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:
(SQL2005)
BackupLog DNName with no_log
go
dump transaction DNName with no_log
go
USE DNName 
DBCC SHRINKFILE (2)
Go
--------------------------------------------------------------
(SQL2008):
在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。

方案一:完全命令模式
USE[master]
    GO
    ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
    GO
    ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式
    GO
    USE DNName 
    GO
    DBCC SHRINKFILE (NDNName_Log , 11, TRUNCATEONLY)
    GO
    USE[master]
    GO

    ALTER DATABASE DNName SET RECOVERY FULLWITH NO_WAIT

    GO

    ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式

    GO

 

以上是关于sql server 2008 日志文件已经到了最大值,还会记录日志吗的主要内容,如果未能解决你的问题,请参考以下文章