忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 16652 | 回复: 12

Sybase数据库中tempdb满问题的分析方法 [复制链接]

论坛徽章:
1
辰龙
日期:2013-09-23 11:57:00
发表于 2011-12-12 11:26 |显示全部楼层
1. 用dbuser登陆数据库
如果当前用户是root,则执行以下命令切换到dbuser。

# su - dbuser

2. 配置分析环境
配置分析环境,需要执行以下命令:

$ . ./SYBASE.sh

$ dataserver -X

在提示输入口令时,输入quine(固定的口令),然后回车

Enter password:



在以下">"提示符处输入"cat /opt/sybase/ASE-15_0",命令执行后会显示数据库实例信息。

> cat /opt/sybase/ASE-15_0



根据显示的数据库实例信息,执行以下命令(注意,attach后输入的实例名根据实际显示为准,本文的举例假设为SYB)

> attach SYB



如果加载成功,则会显示如下信息:

Attaching to server SYB, using shared memory id: 83886112

SYB:active>



随后就可以在"SYB:active>"提示符后执行命令,获取需要的定位信息。

3. 分析问题

以下重点说明对于分析tempdb空间满有帮助的几个命令和输出信息。

1) who
该命令可以不带参数执行,显示当前数据库中所有在运行的数据库连接信息。也可以带上具体的spid号,显示指定spid的数据库连接的信息。

重点关注各个数据库连接的spid,以及占用tempdb的页数(ptempdb_pages)。



举例说明:

SYB:active> who



以下这段显示的是spid为2的数据库连接的信息,可以看出这条连接使用的tempdb空间为0(ptempdb_pages: 0),这条连接是数据库内部系统进程(P_SYSTEMPROC)。

********  Active PSS Structures  ********

spid: 2, kpid: 327685, pss: 0x10047ba6fc0, proc: 0x1004cdb9850

pmemusage: 0, ptempdb_pages: 0

  Command: 0 DEADLOCK TUNE

  Status: (0x00000200 (P_SYSTEMPROC))

*****************************************

... ...



以下这段显示的是spid为13的数据库连接的信息,可以看出这条连接使用的tempdb空间为26455页(ptempdb_pages: 26455)。如果数据库的页面大小为8K,则这条连接占用了26455*8K=207M的tempdb空间。这条连接是应用库的进程(P_USERPROC)。

*****************************************

spid: 13, kpid: 1070138198, pss: 0x10047ca23e8, proc: 0x1004cedf058

pmemusage: 17, ptempdb_pages: 26455

  User: sa, Command: 326 UPDATE STATISTICS

  Status: (0x20000000 (P_LOGSUSPEND), 0x00010000 (P_USERPROC))

*****************************************

2) sqltext
显示spid对应的连接执行的具体sql语句信息。



输出举例,以下语句显示spid为13的连接正在执行更新性能结果表统计信息的操作。

SYB:active> sqltext 13

*************** SPID: 13 ******************

SQL Text:  update statistics tbl_Result_1157628012_2(ObjectNo)

3) locks
显示所有被held或者等待的锁信息。

4. 分析tempdb满的步骤
1)先执行命令who,然后分析所有输出中ptempdb_pages不为0的连接,记录这些连接的spid和ptempdb_pages(该连接占用的tempdb的容量)。

2)根据上一步收集到的spid,执行sqltext <spid>,调查这些连接正在执行的sql信息。

通过以上步骤,我们就可以获知哪些任务在占用tempdb的空间,并且具体占用多少?

论坛徽章:
28
CU大牛徽章
日期:2013-04-17 10:59:39荣誉版主
日期:2015-02-04 10:04:082015年亚洲杯之阿联酋
日期:2015-02-06 17:15:532015亚冠之武里南联
日期:2015-06-06 15:40:252015亚冠之北京国安
日期:2015-06-17 15:42:412022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之阿尔纳斯尔
日期:2015-09-20 09:42:12数据库技术版块每日发帖之星
日期:2015-09-24 06:20:0015-16赛季CBA联赛之北京
日期:2016-01-15 10:03:59IT运维版块每日发帖之星
日期:2016-01-20 06:20:0015-16赛季CBA联赛之青岛
日期:2016-04-26 16:44:49数据库技术版块每日发帖之星
日期:2016-06-21 06:20:00
发表于 2011-12-12 17:30 |显示全部楼层
解决TEMPDB的直接办法,定时重启服务器是最好的办法!

论坛徽章:
1
辰龙
日期:2013-09-23 11:57:00
发表于 2011-12-12 19:23 |显示全部楼层
呵呵 在高可靠系统中
一年的down机时间 只允许5分钟。。。。
重启是非不得已不能做呀;。。

论坛徽章:
0
发表于 2011-12-12 19:42 |显示全部楼层
好文章,支持

论坛徽章:
6
水瓶座
日期:2014-06-04 03:34:37水瓶座
日期:2014-06-17 13:20:31数据库技术版块每日发帖之星
日期:2016-07-09 06:20:00数据库技术版块每日发帖之星
日期:2016-07-17 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2011-12-13 07:34 |显示全部楼层
介绍sybmon的用法,挺好。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2011-12-13 10:07 |显示全部楼层
真是太棒了。请问哪里还有更详细的资料啊?谢谢

论坛徽章:
0
发表于 2011-12-16 09:01 |显示全部楼层
attach servername 完了记得 detach servername 。

论坛藏龙卧虎啊

这种内部诊断的程序都研究的那么细。佩服。

论坛徽章:
0
发表于 2011-12-16 22:46 |显示全部楼层
这个办法蛮有新意的,呵呵,不过提醒一下,sqltext可不是总是好用哟,一些情况下什么都不会打印出来的,比如一些复杂的存储过程。

论坛徽章:
1
操作系统版块每日发帖之星
日期:2016-06-20 06:20:00
发表于 2011-12-20 18:10 |显示全部楼层
sybmon不错,看来知道的不少,光分析tempdb就太可惜了,能干的事情太多了。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
发表于 2011-12-21 10:53 |显示全部楼层
echoaix 发表于 2011-12-20 18:10
sybmon不错,看来知道的不少,光分析tempdb就太可惜了,能干的事情太多了。

echoaix版大还有更详细的资料吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP