SQL数据库日志文件过大解决办法

SQL数据库日志文件过大解决办法

方法操作方式如下:

打开查询分析器,选择数据库,在查询对话框中输入

BACKUP LOG 数据库名 WITH NO_LOG --截断事务日志

GO

DBCC SHRINKFILE(日志文件的文件名) --收缩日志文件,文件名就是在企业管理器里面找到的那个

GO

原理:

事务日志里面记录了用户对数据库的所有操作,其中有一部是保留的,用作数据库故障恢复,其它都是可删除的,载断事务日志就是将可删除的那部份日志标记为不活动日志(但并没有删除),收缩日志文件就是把日志中不活动的日志清除。 另外,由于日志文件中的数据块是每块100M,所以如果日志文件小于100M,收缩后看文件并不会缩少(相关内容可查询sql server 帮助文档中“收缩事务日志”部份)

用'管理'->'数据库维护计划'来做

选择数据库->从数据库文件中删除未使用的空间

当数据库的大小超过n MB时收缩数据库 保留10% 的数据空间作为可用空间,这样可以调度执行,不需要手工操作。 在维护日志备份序列时,调度BACKUPLOG语句按间隔发生,以使事务日志不致增长到超过预期的大小。

*当不维护日志备份序列时,指定简单恢复模式。 详情请参考 MSSQLServer2000联机丛书: 目录--> SQLServer构架-->数据库构架-->物理数据库构架-->事务日志构架-->收缩事务日志 目录--> SQLServer构架-->数据

1:删除LOG文件

(1)分离数据库 企业管理器->服务器->数据库->右键->分离数据库

(2)删除LOG文件

(3)附加数据库 企业管理器->服务器->数据库->右键->附加数据库

此法生成新的LOG,大小只有500多K

再将此数据库设置自动收缩

或用代码:

下面的示例分离 pubs,然后将 pubs中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'

EXEC sp_attach_single_file_db @dbname = 'pubs',

@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs.mdf'

2:清空日志

DUMP TRANSACTION 库名 WITH NO_LOG

企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

你可能喜欢

  • 数据备份
  • SQL数据库
  • SQL2005
  • SQL2008
  • 数据库日志
  • SQL2000
  • 数据库日常维护

SQL数据库日志文件过大解决办法相关文档

最新文档

返回顶部