日期:2014-05-20  浏览次数:20433 次

|M| 我的数据库的日志一下子就满了,怎么办啊
数据库   'cnepa '   的日志已满。请备份该数据库的事务日志以释放一些日志空间。
每两天就这样
可不可不要日志文件的啊
或者让SQL数据库每两个小时就压一次

要怎么办啊头都大了日志疯涨

------解决方案--------------------
限制日志增加..

根据书上说,数据库操作一次,日志就有可能记录N条.
------解决方案--------------------
也可以清空或者转储!
------解决方案--------------------
lz可以每天备份一次日志文件,然后压缩,这些都可以做成作业自动运行
如果其实不需要日志文件的话,可以把数据库的故障还原模型改为简单,文件增长方式改为按M而不是百分比
------解决方案--------------------
限制硬盘增长;扩大硬盘容量
------解决方案--------------------
不要日志就像 "zhengqinxu(草人七心) "说的以 把数据库的故障还原模型改为简单
------解决方案--------------------
备份吧,就可以清除日志的
------解决方案--------------------
if exists (select * from dbo.sysobjects where id = object_id(N '[dbo].[p_backupdb] ') and OBJECTPROPERTY(id, N 'IsProcedure ') = 1)
drop procedure [dbo].[p_backupdb]
GO
create proc p_backupdb
@dbname sysname= ' ', --要备份的数据库名称,不指定则备份当前数据库
@bkpath nvarchar(260)= ' ', --备份文件的存放目录,不指定则使用SQL默认的备份目录
@bkfname nvarchar(260)= ' ', --备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
@bktype nvarchar(10)= 'DB ', --备份类型: 'DB '备份数据库, 'DF ' 差异备份, 'LOG ' 日志备份
@appendfile bit=1 --追加/覆盖备份文件
as
declare @sql varchar(8000)
if isnull(@dbname, ' ')= ' ' set @dbname=db_name()
if isnull(@bkpath, ' ')= ' ' set @bkpath=dbo.f_getdbpath(null)
if isnull(@bkfname, ' ')= ' ' set @bkfname= '\DBNAME\_\DATE\_\TIME\.BAK '
set @bkfname=replace(replace(replace(@bkfname, '\DBNAME\ ',@dbname)
, '\DATE\ ',convert(varchar,getdate(),112))
, '\TIME\ ',replace(convert(varchar,getdate(),108), ': ', ' '))
set @sql= 'backup '+case @bktype when 'LOG ' then 'log ' else 'database ' end +@dbname
+ ' to disk= ' ' '+@bkpath+@bkfname
+ ' ' ' with '+case @bktype when 'DF ' then 'DIFFERENTIAL, ' else ' ' end
+case @appendfile when 1 then 'NOINIT ' else 'INIT ' end
print @sql
exec(@sql)
go


--备份当前数据库
exec p_backupdb @bkpath= 'c:\ ',@bkfname= 'db_\DATE\_db.bak '
--差异备份当前数据库
exec p_backupdb @bkpath= 'c:\ ',@bkfname= 'db_\DATE\_df.bak ',@bktype= 'DF '
--备份当前数据库日志
exec p_backupdb @bkpath= 'c:\ ',@bkfname= 'db_\DATE\_log.bak ',@bktype= 'LOG '
------解决方案--------------------
清除,隔段时间就要清除.
------解决方案--------------------
1. 数据库--> 属性-> 选项--> 故障还原 模型 改为简单 2.数据库-> 所有任何--> 收缩数据库-> 文件--> 选择日志文件-> 确定
------解决方案--------------------
备份日志,备份以后你就可以清除日志了.
------解决方案--------------------
怎么备份日志啊?我具体较一下。

------解决方案--------------------
在program files\mssql\data下是所有数据和日志的文件,每个数据库都有2个文件,一个是数据文件,一个是日志文件.看扩展名就知道了,把日志文件删了就好了
------解决方案--------------------
学习

------解决方案--------------------