Chinaunix

标题: 最早活動事物問題 [打印本页]

作者: baiynije    时间: 2011-10-07 14:10
标题: 最早活動事物問題
數據庫中經常會有一些事物(syslogshold)阻止數據庫日誌空間的釋放(數據庫設置為“truncate log on checkpoint”) ,導致LOG空間經常達到閥值,
請問有什么方法可以查詢到是執行的哪條SQL未commit或rollback嗎?或者是否還有其它方法去查核呢?
作者: hobbylu    时间: 2011-10-09 08:40
dbcc log命令就可以看,不过需要你研究一下怎么用
作者: Eisen    时间: 2011-10-09 10:24
最主要就像hobbylu说的那样读dbcc log
另外辅助看master..syslogshold和master..systransactions两个表
作者: baiynije    时间: 2011-10-10 11:34
謝謝二位的回答,在網上搜了下沒有找到dbcc log 相關例程,
能否請二位舉個簡單的例子說明一下如何使用,在此非常感謝!
作者: hobbylu    时间: 2011-10-10 14:49
本帖最后由 hobbylu 于 2011-10-10 14:53 编辑

我之前有个小工具,图形化界面的dbcc log,我给附件一个 sybapp.rar (518.19 KB, 下载次数: 69)
作者: Eisen    时间: 2011-10-10 15:49
我之前有个小工具,图形化界面的dbcc log,我给附件一个
hobbylu 发表于 2011-10-10 14:49



    强哥这个经典真是太牛了,再赞一个……
顺便给新弟兄补充一下:如果你用的是OCS15的话,把%SYBASE%/OCS-15_0/dll里面的dll都cp到强哥这个工具的目录里,然后把名为libsybxxxx.dll改名为libxxxxx.dll就可以成功运行了。
作者: hobbylu    时间: 2011-10-10 15:57
呵呵,我都没有研究过
作者: Eisen    时间: 2011-10-10 16:36
呵呵,我都没有研究过
hobbylu 发表于 2011-10-10 15:57



    你这个东西太好用了,自然研究得多啦。呵呵
作者: hobbylu    时间: 2011-10-10 16:46
你这个东西太好用了,自然研究得多啦。呵呵
Eisen 发表于 2011-10-10 16:36



呵呵,这个东西还真是我初期的作品,很多年以前的了
作者: Eisen    时间: 2011-10-10 16:55
现在的进展可有啊?那个挖地雷作的怎么样啦?
作者: baiynije    时间: 2011-10-10 17:19
先謝謝二位大俠的幫忙,我先試試,有問題再請教,非常感謝!
作者: baiynije    时间: 2011-10-11 08:40
再請教兩位大哥,我本機的客戶端版本是sybase 11.9的,但服務器是15.0.2的,直接在服務器上可以執行此應用,但在我本機上輸入帳號密碼後不會顯示主畫面,并且有個sybinit.err文件顯示如下內容,請問我這樣可以在本機上使用嗎,需要設置什么?謝謝了。
The context allocation routine failed.

The following problem caused the failure:

Invalid context version.


The context allocation routine failed.

The following problem caused the failure:

Invalid context version.


The context allocation routine failed.

The following problem caused the failure:

Invalid context version.
作者: Eisen    时间: 2011-10-11 14:25
强哥那个东西最起码得在OCS12.5以上版本使用,你pcclient11.9太低了,没法用
作者: hobbylu    时间: 2011-10-11 14:30
倒是有一个11.9的版本的,我附一个,再试试 sybapp1192.rar (113.72 KB, 下载次数: 17)
作者: baiynije    时间: 2011-10-13 09:23
非常感謝兩位大哥的幫忙,現在可以使用了,
另外能否賜教如我所述的問題應該要如何使用此工具呢?
作者: hobbylu    时间: 2011-10-13 13:15
呵呵,回头你可以考虑买点服务啊,让EISEN来帮你
作者: Eisen    时间: 2011-10-13 13:43
本帖最后由 Eisen 于 2011-10-13 15:05 编辑

又给强哥笑话啦……这个分析page info还是强哥你的强项啦。
作者: baiynije    时间: 2011-10-13 14:30
買啥服務啊?
買了可以自己學嗎,小弟只是想學習下這方面的東西:)
作者: hobbylu    时间: 2011-10-13 15:32
楼主又不要分析page info,只要那个日志解析就行了。
我不知道你们有没有用过我在之后开发logdigger,这个软件倒可以把日志内容分析出来的
作者: baiynije    时间: 2011-10-13 17:34
我接觸這個時間不長,沒用過,有做過分享嗎?
hobbylu 大哥能教我如何用sybapp解決我的問題么?不勝感激。
作者: hobbylu    时间: 2011-10-14 10:02
在syslogshold表中有一个字段叫xactid,这个字段就是表示事务号,但这个事务号一般都是未完成的。
你可以根据进程号来查询这个进程所完成的工作,然后再进一步的分析和判断
作者: andkylee    时间: 2011-10-14 10:06
hobbylu的sybedit工具的“扫地雷”模式完成了没?
作者: andkylee    时间: 2011-10-14 10:08
试用版的logminer只能输出500行,对于分析dbcc log的输出结果有帮助。 但是对于查看最早活动日志可能不行,因为sybase活动日志本来就很多。
作者: hobbylu    时间: 2011-10-14 14:51
扫雷式的,没时间,也没有心思去弄了,没啥意思
作者: baiynije    时间: 2011-10-14 14:56
dbcc log 的輸出結果可以看出操作的是哪個表嗎?
裡面的sessionid = 66269,11是什么意思,我還可以獲得什么有用信息?
作者: hobbylu    时间: 2011-10-14 15:34
你可以根据objid得到表名,sessionid事实上就是一个事务的唯一标识
作者: baiynije    时间: 2011-10-14 16:35
hobbylu 哥,我沒看到有objid?
作者: andkylee    时间: 2011-10-14 17:05
hobbylu 哥,我沒看到有objid?
baiynije 发表于 2011-10-14 16:35



    慢慢研究一下dbcc log的输出吧。 里面有很多的 op type




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2