zoukankan      html  css  js  c++  java
  • 关于sql日志文件

          最近又遇到一个问题:一家客户使用中的数据库,日志文件异常增大,平均每天增加大约一个G,而数据文件变化不大。这两天开始查这个问题,但是好几天时间过去了,一直没有头绪。已经做了重建索引,重装sql,重装系统,更换服务器等操作,问题依旧。在google搜索了下,只有查找sql数据库日志文件大小的命令,但是不知如何查找表日志大小。

    查询数据库的日志文件大小:dbcc sqlperf(logspace)

    Database Name  Log Size (MB)            Log Space Used (%)       Status
    -------------- ------------------------ ------------------------ -----------
    master         2.2421875                32.600174                0
    tempdb         0.4921875                39.285713                0
    model          0.4921875                41.07143                 0
    msdb           2.2421875                30.901567                0
    pubs           0.7421875                49.934212                0
    Northwind      0.9921875                34.940945                0
    

    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工具,可以分析出日志中哪些操作事务频繁,对哪些表的操作比较异常,由此就可以确定问题的原因,再去解决问题.

  • 相关阅读:
    log4j配置详解
    elasticsearch6.0版本安装head插件
    JAVA笔记-如何将百万级数据高效的导出到Excel表单
    抽象方法为什么不能被private与static修饰
    vue利用promise实现连续弹框
    vue代码片段
    h5元素高度超出屏幕但不滚动
    css3动画
    vue 引入静态图片404
    ios windows.open()不能打开
  • 原文地址:https://www.cnblogs.com/MyFavorite/p/1602395.html
Copyright © 2011-2022 走看看