dbcc sqlperf(logspace) 可以获取实例中每个数据库日志文件大小,及使用情况。如果要保存SQL日志文件大小,则需要先创建一个数据表,然后动态执行dbcc sqlperf(logspace)命令:
create table dbo.LogSize
(
dbname nvarchar(50) not null
,logsize decimal(8,2) not null
,logused decimal(5,2) not null
,status int null
)
insert into dbo.LogSize
execute('dbcc sqlperf(logspace) with no_infomsgs')
要查日志文件异常增大的原因,就要先确定是哪张表操作异常;通过Log Explorer工具,我们可以看到日志文件的状况.
Log Explorer主要用于对MSSQLServer的事务分析和数据恢复。可以浏览日志、导出数据、恢复被修改或者删除的数据(包括执行过update,delete,drop和truncate语句的表格)。一旦由于系统故障或者人为因素导致数据丢失,它能够提供在线快速的数据恢复,最大程度上保证恢复期间的其他事物不间断执行。可以支持SQLServer7.0和SQLServer2000,提取标准数据库的日志文件或者备份文件中的信息。
Log Explorer提供两个强大的工具:日志分析浏览,对象恢复。具体功能如下:
日志文件浏览
数据库变更审查
计划和授权变更审查
将日志记录导出到文件或者数据库表
实时监控数据库事物
计算并统计负荷
通过有选择性的取消或者重做事物来恢复数据
恢复被截断或者删除表中的数据
运行SQL脚本
功能介绍:
[log summary]:
可以查看日志文件的概要信息;
[Load Analysis]:
列出指定时间范围内的一些事物,用户和表载入的概要信息。
[Filter Log Record]:
日志过滤设置。支持过滤条件包括:时间、操作类型、表、用户、SPID、搜索深度、Dropped表项以及登录设置和应用程序设置
[Browse]:
日志浏览,核心模块。
[View Log]:
列表如图,可以用TransID来区分事物并用不同颜色标识。工具栏的按钮是一些基本查询操作。鼠标右键弹出菜单中有Undo Transaction和UndoOperation可以恢复黑色箭头选中的事物或者操作项。
[Real-Time Monitor]:
实时监控事物日志,通过轮询来实现。可以暂停或者停止监控,可以更改轮询周期。
相关DML语言和DDL语言可以在Row Revision History、Row Transaction History以及View DDL Commands来查询。
[Export Log Report]
包括Export To SQL和Export To File,根据向导即可完成。
其余菜单:Undo,Redo,Salvage Dropped/Truncated data,Restore 以及Run SQL Script就不详细介绍了,可以根据其向导完成。
通过Log Explorer工具,可以分析出日志中哪些操作事务频繁,对哪些表的操作比较异常,由此就可以确定问题的原因,再去解决问题.