视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
一件关于数据库日志log的无聊事情
2020-11-09 15:31:13 责编:小采
文档

为何说是无聊的记录呢? 因为事先把问题想复杂了,事后发现的时候觉得更是无聊的行为。还是写下来,毕竟很少弄这么无聊的事情。 事情起因是需要给服务器做性能基数(baseline),用sqldiag提取了大量的log信息,当然这里的数据库日志并不是指ldf文件。当我打

为何说是无聊的记录呢?

因为事先把问题想复杂了,事后发现的时候觉得更是无聊的行为。还是写下来,毕竟很少弄这么无聊的事情。

事情起因是需要给服务器做性能基数(baseline),用sqldiag 提取了大量的log信息,当然这里的数据库日志并不是指ldf文件。当我打开SQL 2005或2008的对象资源管理器-->管理-->SQL Server 日志察看发现日志大约有百万行,当然原因我就不说了。

日志log数据太大怎么办?

先查看日志log如何被调用的,在TSQL中执行

显示结果为

有了存档号,接着查看某一个日志文件异常大的log内容(图中的异常日志已经被清除了,所以这里记录的时候暂且认为存档#为4的日志是异常大文件)

接下来看看存档4的log内容,在TSQL中执行

通常结果会返回如下图的内容

话说到这儿,才开始我那愚蠢且无聊的做法。(直到现在我仍然认为这个做法相当怪异)

因为这个日志log内容非常大,大约为数百万行,导致用sqldiag提取的__sp_sqldiag_Shutdown.OUT文件大小有近2G。于是有清除这个日志的想法,因为已经备档(备档的方式是将内容存为文本),所以可以清除日志。

于是我就想找到这个log内容是存放在数据库MASTER的哪个表中,以便于干掉它。找来找去,只让我看到xpstar.dll 和xpstar90.dll这些信息。既然是调用动态链接库,我也要看看这个dll的内容,于是从网上下载Reflector 和Depends 进行反编译,接着反编译出错。

到这里,其实GOD已经提醒我该走出去呼吸一下新鲜空气再回来思考,结果我没有那样做。这段过程大约花费近3个小时时间,用《 Becoming a Technical Leader 》里的话说,我已经进入了神游状态,当然我自己丝毫没有发觉。

隔日清晨,来到办公室,当我下意识的打开系统中下面路径时,“密码”被破译了。其实只要删除log目录下ERRORLOG以及一系列ERRORLOG.1文件即可。

X:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/Log

其实我可以对自己说一句“神啊”,从结果看过程原来一切都是那么简单。

当然,为了清除这个日志log内容,也有问一些朋友,不过他们都误以为我要清除ldf日志文件。写下来也是告诉自己:方向错了,停下来就是前进!!

下载本文
显示全文
专题