db2pd用法

合集下载

DB2高级诊断

DB2高级诊断

db2_call_stack和db2nstck
• 产生DB2进程运行堆栈信息: Windows操作系统:db2nstck
Linux/Unix操作系统:db2_call_stack
db2dart示例
db2dart用途
• 1 查找停顿表空间用户
db2dart用途
• 诊断高水位问题
1 找到持有高水位标记的表: db2dart sample /dhwm /tsi 2 /rptn DLHW.TXT 2 获取降低高水位标记建议: db2dart sample /lhwm /tsi 8 /rptn lhwm.txt
DB2 高级诊断
命令一览
• • • • db2dart 和 inspect db2pdcfg db2trc db2_call_stack 和 db2nstck
db2dart
• db2dart 功能:检测数据库一致性,创建数据库报告 文件 语法: db2dart<databasename>[action][options…] 注意:数据库上没有活动的连接
db2pdcfg-catch选项
• 捕获错误信息,调用db2cos脚本收集出错的现场信息。示 例:
update db cfg for sample using locktimeout 10 db2pdcfg -catch locktimeout count=1
db2pd-fodc选项
• 设置db2fodc注册表变量中的选项,控制中断期间 收集的数据
3 降低高水位: a:表离线重组; b:db2dart sample/tsi 2/np 0/rhwm
db2dart用途
诊断高水位
db2dart用途
• 诊断数据页损坏

日常统计db2常用命令

日常统计db2常用命令
$ 挂起锁定的代理程序标识 = 18347
保留锁定的应用程序标识 = 168.1.6.217.43274.141217091851
锁定名称 = 0xFFFA8001FFFF00000000000054
db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql --导出数据库的表结构,其中用户空间一般为 db2admin/db2inst2
db2look -d <数据库名> -u <用户> -t <表1> <表2> -e -o <脚本名称>.sql --导出数据库中表1和表2的表结构
db2 create table t1 like t2 创建一个与数据库中某个表(t2)结构相同的新表(t1)
db2 "insert into t1 select * from t2" 将一个表t1的数据导入到另一个表t2
db2 -tvf scripts.sql 执行脚本文件
#vmo -a |grep ቤተ መጻሕፍቲ ባይዱi perm
maxperm = 1606264
maxperm% = 8
minperm = 602349
minperm% = 3
strict_maxperm = 0
3. 查看当前并发应用
db2 list applications
或db2 list applications show detail
或 db2 list applications for database dbname [ show detail]
4.查看数据库和实例配置参数

db2pd命令捕获死锁信息

db2pd命令捕获死锁信息

本文通过一个实例讲解了在DB2版本9以后,如何使用db2pd命令捕获死锁信息死锁经常会存在于我们的应用系统中,如何捕获死锁信息并解决死锁问题,是一个比较复杂的问题。

DB2提供了死锁事件监控器来获取死锁信息,可以非常方便地获取死锁信息。

从DB2版本8.2.2开始,DB2也可以使用db2pd命令和db2cos脚本来获取死锁信息,提供了一种新的途径来获取死锁信息。

从DB2版本9开始,我们可以使用db2pd -catch 命令来捕获错误信息,然后调用一个sqllib/db2cos 的脚本收集出错时的现场信息。

该命令的使用语法如下:Usage:-catch clear | status | <errorCode> [<action>] [count=<count>]Sets catchFlag to catch error or warning.Error Codes:<sqlCode>[,<reasonCode>] / sqlcode=<sqlCode>[,<reasonCode>]ZRC (hex or integer)ECF (hex or integer)"deadlock" or "locktimeout"Actions:[db2cos] (default) Run sqllib/db2cos callout script[lockname=<lockname>] Lockname for catching specific lock(lockname=000200030000001F0000000052)[locktype=<locktype>] Locktype for catching specific lock(locktype=R or locktype=52)下面我们通过一个实例来讲解如何使用db2pd -catch命令获取死锁信息。

PD逆向工程(DB2)

PD逆向工程(DB2)

PD逆向工程之通过windows数据源管理,
一、建立ODBC数据源
1.打开控制面板,管理工具
X64系统打开ODBC配置:C:\Windows\SysWOW64\odbcad32.exe
2.打开数据源
3.选择你要操作的数据库类型(比如DB2)
4.输入相应的数据库参数
1.在“数据源名称”中,填写一个数据源名称,可随意
2.在“数据库别名”中,指定要连接的数据库(需事先在本地编目好DB2数据库)
3.点击“确定”
4.
5.编辑ODBC数据源
5.选择刚刚创建的数据源,点击“配置”
6.在“用户标识”中填写数据库登陆用户名,如krs
7.在“密码”中填写用户名密码,如123456
8.点击“连接”
9.点击“确定”-->“确定”关闭数据源配置
二、PD逆向工程
逆向工程之File----Reverse Engineer----DataBase
在DBMS中选择数据库类型
10.DB2linux服务器选择UDB,不是z/OS。

11.点击确定;
选中“Using a data source”,然后选择连接数据源
12.在DataSource中,下拉框选中我们建立的ODBC数据源;
13.在下方Login中输入数据库用户名称和密码。

点击“Connect”,若成功,见下图:
看下里面的表名是不是和自己数据库中的表名一致,下面的就自己选择吧!!!。

db2命令大全

db2命令大全

DB2命令大全1DB2命令大全1.1查看表空间db2 list tablespaces show detail1.2查看数据库的表死锁方法一:打开监控db2 update monitor switches using lock on查看锁表db2 get snapshot for locks on 数据库名称db2 "force application (handle id)"停止锁的进程List Of Locks#在application handle紧跟后面出现list of locks表明该application handle 锁了表或对象Lock Name = 0x030039020DFF11000000000052Lock Attributes = 0x00000000Release Flags = 0x00000004Lock Count = 1Hold Count = 0Lock Object Name= 1163533 #被锁对象名称Object Type = Row #被锁对象类型Tablespace Name = tbs_data #被锁对象所在的表空间Table Schema= DB2INST1Table Name= t_mytable1 #被锁的表名Mode= X方法二:使用select agent_id,tabname,lock_mode from table(snap_get_lock('dbname')) as aa查看:进程hander,表名,锁模式1.3查看和更改快照参数db2 get m onitor switches监控开关数据库管理器参数注释BUFFERPOOL DFT_MON_BUFPOOL 缓冲区的读写情况和发生时间LOCK DFT_MON_LOCK 锁持有,锁等待,以及死锁的发生情况SORT DFT_MON_SOR T Heap的使用情况,排序性能STATEMEN T DFT_MON_STMT 语句起始时间,语句内容TABLE DFT_MON_TABLE Measure of activi ty (rows read/written)UOW DFT_MON_UOW Start/end tim es, com pletion statusTIMESTAMP DFT_MON_TIMESTAMP Tim estam ps为了观察快照中的锁和执行语句情况,一般把LOCK和STATEMEN T选项设为ON,也可以酌情把其他开关打开,示例如下:db2 update m onitor switches using lock on statem ent o n1.4查看和更改与锁相关的主要配置参数CLP方式:db2 get db cfg在参数列表中寻找DLCHKTIME和LOCKTIMEOUT两个参数。

DB2优化工具使用

DB2优化工具使用

DB2优化工具使用DB2是一种关系型数据库管理系统,由IBM开发和维护。

它具有高性能、高可靠性和可伸缩性的特点,被广泛应用于企业级应用程序中。

为了提高DB2数据库的性能和效率,IBM提供了一系列优化工具。

这些工具可以帮助开发人员和数据库管理员识别和解决性能问题,并提供了一些自动化功能来优化数据库的配置和操作。

下面是一些常用的DB2优化工具:1. db2expln:这是一个命令行工具,用于分析SQL语句的执行计划。

它可以帮助开发人员识别潜在的性能问题,并提供优化建议。

使用db2expln可以确定是否需要重新设计查询或创建索引以提高性能。

2. db2exfmt:这是一个命令行工具,用于格式化和显示执行计划。

它可以帮助开发人员更好地理解查询的执行过程,包括访问路径、筛选条件和连接方式等。

通过db2exfmt,开发人员可以判断是否有必要进行优化,并根据需要进行相应的调整。

3. db2advis:这是一个命令行工具,用于生成性能优化建议。

它基于历史性能数据和配置信息分析数据库的工作负载,并提供建议以改进性能。

通过db2advis,数据库管理员可以了解数据库的当前状态,并采取相应的措施来优化性能。

4. db2pdcfg:这是一个命令行工具,用于自动配置数据库参数。

通过分析数据库的工作负载和系统资源等信息,db2pdcfg可以自动调整数据库的参数设置,以提供最佳性能。

使用db2pdcfg可以减少手动调整参数的工作量,并提高数据库的性能。

5. db2top:这是一个命令行工具,用于实时监控数据库性能。

它可以显示当前的数据库活动、查询性能和系统资源使用情况等信息。

使用db2top可以及时发现性能问题,并采取相应的措施解决问题。

6. IBM Data Studio:这是一个图形化工具,提供了丰富的功能用于优化DB2数据库。

它可以帮助开发人员和数据库管理员进行查询优化、索引管理和性能监控等工作。

使用IBM Data Studio可以更直观地了解数据库性能,并提供可视化的界面来执行优化操作。

db2pd命令捕获死锁信息

db2pd命令捕获死锁信息

本文通过一个实例讲解了在DB2版本9以后,如何使用db2pd命令捕获死锁信息死锁经常会存在于我们的应用系统中,如何捕获死锁信息并解决死锁问题,是一个比较复杂的问题。

DB2提供了死锁事件监控器来获取死锁信息,可以非常方便地获取死锁信息。

从DB2版本8.2.2开始,DB2也可以使用db2pd命令和db2cos脚本来获取死锁信息,提供了一种新的途径来获取死锁信息。

从DB2版本9开始,我们可以使用db2pd -catch 命令来捕获错误信息,然后调用一个sqllib/db2cos 的脚本收集出错时的现场信息。

该命令的使用语法如下:Usage:-catch clear | status | <errorCode> [<action>] [count=<count>]Sets catchFlag to catch error or warning.Error Codes:<sqlCode>[,<reasonCode>] / sqlcode=<sqlCode>[,<reasonCode>]ZRC (hex or integer)ECF (hex or integer)"deadlock" or "locktimeout"Actions:[db2cos] (default) Run sqllib/db2cos callout script[lockname=<lockname>] Lockname for catching specific lock(lockname=000200030000001F0000000052)[locktype=<locktype>] Locktype for catching specific lock(locktype=R or locktype=52)下面我们通过一个实例来讲解如何使用db2pd -catch命令获取死锁信息。

Lab 1-4 db2pd对锁的监控

Lab 1-4 db2pd对锁的监控

db2pd对锁的监控(30分钟)目的:掌握db2pd对于锁信息监控的使用技巧1.打开3个db2cmd窗口,并分别连接到sample数据库2.在第一个窗口中输入3.在第二个窗口中输入此时,这条命令会等待。

下面我们用db2pd来分析这种等待的情况。

4.在第三个窗口中输入db2pd -db sample -locks wait showlocksdb2pd报告了有两个交易(TranHdl: Transaction Handler)产生了锁等待,其中一个交易(TranHdl=6)的锁状态(Mode)为G,表示该锁已被授予(Granted),另外一个交易(TranHdl=2)的锁为等待(W, Waiting)。

5.为了查出在那张表上产生了锁等待,我们在第三个窗口中输入db2 "SELECT TABSCHEMA, TABNAME FROM SYSCAT.TABLES WHERE TBSPACEID = 2 AND TABLEID = 6"由此,我们查出在EMPLOYEE这张表上产生了锁等待。

由此,我们完成了从事务到应用的对应,我们发现事务2,6分别属于应用30, 34,而且这两个应用都处于Write的状态。

因此,我们确定是写操作产生了锁等待。

7.我们需要近一步查出产生锁等待的应用程序的程序名,我们在第三个窗口中输入db2pd -agents由此,我们也找出了是哪两个客户端进程(Process ID)产生了锁等待。

8.能否近一步看出是什么样的SQL语句产生了锁?首先通过以下语句获得应用程序的更多信息,其中L-Anch ID表示上次执行的SQL,C-Anch ID表示当前执行的SQL:db2pd -db sample -applications9.得到上述信息后,我们再通过下述语句,就可以找出产生锁等待的SQL语句了db2pd -db sample -dynamic结果如下图所示:。

使用 db2pd 进行监视和故障诊断

使用 db2pd 进行监视和故障诊断

使用 db2pd 进行监视和故障诊断因为 db2pd 工具可从 DB2® 内存集合迅速返回即时信息,所以该工具可用于故障诊断。

该工具不需要获得任何锁存器或使用任何引擎资源就可以收集信息。

因此,在 db2pd 收集信息时,有可能(并且预计)会检索到正在更改的信息;这样,数据可能不是十分准确。

如果遇到正在更改的内存指针,可使用信号处理程序来防止 db2pd 异常终止。

这可能会导致输出中出现诸如以下的消息:“正在更改的数据结构已强制终止命令”。

虽然如此,该工具对于故障诊断却非常有用。

在不锁存的情况下收集信息有两个好处:检索速度更快并且不会争用引擎资源。

如果要在出现特定 SQLCODE、ZRC 代码或 ECF 代码时捕获关于数据库管理系统的信息,那么可以使用 db2pdcfg -catch 命令完成此操作。

捕获到错误时,将启动 db2cos(调出脚本)。

db2cos 文件可以自动改变,以便运行解决问题所需的任何 db2pd 命令、操作系统命令或任何其他命令。

在 UNIX® 和Linux™ 上,模板文件 db2cos 位于 sqllib/bin 中。

在 Windows® 操作系统上,db2cos 位于 $DB2PATH in 目录中。

以下是使用 db2pd 快速故障诊断的一组示例。

场景 1:诊断锁定等待使用 db2pd -db <database name> -locks -transactions -applications -dynamic 命令来获取下列结果:锁定:Address TranHdl Lockname Type Mode Sts Owner Dur HldCnt Att ReleaseFlg0x07800000202E5238 3 00020002000000040000000052 Row ..X G 3 1 0 0x00000x400000000x07800000202E4668 2 00020002000000040000000052 Row ..X W* 2 1 0 0x00000x40000000对于使用 -db 数据库名称选项指定的数据库,开头的结果会显示该数据库的锁定。

db2pd 分析锁等待

db2pd 分析锁等待

db2pd 分析锁等待简介:当多个 DB2® 用户并发地访问一个数据库时,锁等待会导致响应变慢。

锁等待是临时性的,因而难以捕捉。

然而,当出现锁等待情形时,需要由数据库管理员负责确定锁等待的原因。

本文通过例子演示如何使用用于 DB2 for Linux®, UNIX®, and Windows® 的db2pd和db2pdcfg实用程序完成该任务。

用于锁监视的db2pd选项db2pd是用于监视各种 DB2 数据库活动以及故障排除的实用程序。

它是从 DB2 V8.2 开始随DB2 引擎发布的一个独立的实用程序,其外观和功能类似于 Informix onstat实用程序。

db2pd是从命令行以一种可选的交互模式执行的。

该实用程序运行得非常快,因为它不需要获取任何锁,并且在引擎资源以外运行(这意味着它甚至能在一个挂起的引擎上工作)。

通过快照监视还可以收集db2pd提供的很多监视器数据,但是db2pd和快照监视的输出格式却有很大不同。

这使 DBA 可以选择更符合用户需求的监视替代方法。

本文关注用于锁监视的db2pd选项。

有一篇由 Sam Poon 撰写的 developerWorks 文章(参见参考资料小节)对db2pd的监视功能作了更广泛的介绍。

下面的图展示了用于锁监视的db2pd选项:图 1. 用于锁监视的db2pd选项∙TranHdl:用于指定事务句柄,以便只监视由特定事务持有的锁。

∙showlocks:这个子选项将锁名称扩展成有意义的解释。

对于一个行锁,该选项显示以下信息:表空间 ID、表 ID、分区 ID、页和槽。

通过使用编目视图SYSCAT.TABLES上的一个查询,很容易将表空间 ID 和表 ID 映射到相应的表名:清单 1. 将表空间 ID、表 ID 映射到表模式、表名SELECT TABSCHEMA, TABNAMEFROM SYSCAT.TABLESWHERE TBSPACEID = tbspaceid AND TABLEID = tableid∙∙wait:如果指定wait子选项,则db2pd只显示事务当前正在等待的锁,以及对等待情形负责的锁。

db2support中文说明

db2support中文说明

使用db2support 收集环境信息开始针对DB2® 问题收集信息时,您需要运行的最重要的DB2 实用程序是db2support。

db2support 实用程序用于自动收集所有可用的DB2 诊断信息和系统诊断信息。

它还有一个可选的交互式“问与答”会话,该会话会提出有关问题的详情。

使用db2support 可以避免可能的用户错误,这是因为您不必手工输入“GET DATABASE CONFIGURATION FOR <database name>”或“LIST TABLESPACES SHOW DETAIL”之类的命令。

而且,您不需要有关要运行的命令或要收集的文件的指示信息,因此用于确定问题的信息收集的速度会比较快。

注:db2support 实用程序应该由具有SYSADM 权限的用户(如实例所有者)运行,以便该实用程序可以收集所有必需的信息而不发生错误。

如果没有SYSADM 权限的用户运行db2support,则在实用程序运行“query client”或“list active databases”之类的命令时,可能会产生SQL 错误(SQL1092)。

如果使用db2support 来帮助将信息传送至IBM® 软件支持机构,则在系统遇到导致您请求支持的问题时运行db2support。

这样,该工具将收集操作系统性能信息。

也可以对需要事后分析的问题(如陷阱或崩溃)运行db2support。

执行db2support -h会生成可与实用程序一起运行的可能选项的完整列表。

对于调试问题所需的大多数信息的收集而言,以下基本调用通常已经足够(注意,如果使用-c 选项,则该实用程序将建立与数据库的连接):db2support <output path> -d <database name> -c输出的收集非常方便,并且会存储在ZIP 归档db2support.zip中,以便可以很轻松地在任何系统上传送和解压缩。

DB2(常用工具)具体实用

DB2(常用工具)具体实用

题目:1、熟练使用db2look工具导出数据库结构2、使用db2pd监控表空间、锁的使用情况3、使用db2mtrk 检查数据库内存的分配情况4、练习使用db2top工具5、使用db2batch测试SQL语句的性能解答:1、熟练使用db2look工具导出数据库结构[myinst@ye ~]$ db2look -d mydb3 -l -e -o mydb3.dll-- No userid was specified, db2look tries to use Environment variable USER-- USER is: MYINST-- Creating DDL for table(s)-- Output is sent to file: mydb3.dll-- Binding package automatically ...-- Bind is successful-- Binding package automatically ...-- Bind is successful2、使用db2pd监控表空间、锁的使用情况#db2pd监控表空间[myinst@ye ~]$ db2pd -db mydb3 -tablespaceDatabase Member 0 -- Database MYDB3 -- Active -- Up 0 days 00:29:31 -- Date2015-08-24-11.36.10.344000Tablespace Configuration:Address Id Type Content PageSz ExtentSz Auto Prefetch BufID BufIDDisk FSC NumCntrs MaxStripe LastConsecPg RSE Name0x00007F9AC71E0080 0 DMS Regular 32768 4 Yes 4 1 1 Off 1 0 3 Yes SYSCATSPACE0x00007F9AC71ED220 1 SMS SysTmp 32768 32 Yes 32 1 1 On 1 0 31 No TEMPSPACE10x00007F9AC71FA3C0 2 DMS Large 32768 32 Yes 32 1 1 Off 1 0 31 Yes USERSPACE10x00007F9AC7207560 3 DMS Large 32768 4 Yes 4 1 1 Off 1 0 3 Yes SYSTOOLSPACE0x00007F9AC7214700 4 DMS Large 32768 32 Yes 32 2 2 Off 1 0 31 Yes MYSPACE3Tablespace Statistics:Address Id TotalPgs UsablePgs UsedPgs PndFreePgs FreePgs HWMMax HWM State MinRecTime NQuiescers PathsDropped TrackmodState0x00007F9AC71E0080 0 7168 7164 6880 0 284 68806880 0x00000000 0 0 No n/a0x00007F9AC71ED220 1 1 1 1 0 0 - - 0x00000000 0 0 No n/a0x00007F9AC71FA3C0 2 1024 992 96 0 896 9696 0x00000000 0 0 No n/a0x00007F9AC7207560 3 1024 1020 80 0 940 8080 0x00000000 0 0 No n/a0x00007F9AC7214700 4 1024 992 352 0 640 352352 0x00000000 1439886641 0 No n/aTablespace Autoresize Statistics:Address Id AS AR InitSize IncSize IIP MaxSize LastResize LRF0x00007F9AC71E0080 0 Yes Yes 33554432 -1 No None None No0x00007F9AC71ED220 1 Yes No 0 0 No 0 None No0x00007F9AC71FA3C0 2 Yes Yes 33554432 -1 No None None No0x00007F9AC7207560 3 Yes Yes 33554432 -1 No None None No0x00007F9AC7214700 4 Yes Yes 33554432 -1 No None None NoTablespace Storage Statistics:Address Id DataTag Rebalance SGID SourceSGID0x00007F9AC71E0080 0 0 No 0 -0x00007F9AC71ED220 1 0 No 0 -0x00007F9AC71FA3C0 2 -1 No 0 -0x00007F9AC7207560 3 -1 No 0 -0x00007F9AC7214700 4 -1 No 0 -Containers:Address TspId ContainNum Type TotalPgs UseablePgs PathID StripeSetContainer0x00007F9AC1270580 0 0 File 7168 7164 0 0/www/db2/db2test/myinst/NODE0000/MYDB3/T0000000/C0000000.CAT0x00007F9AC1270C60 1 0 Path 1 1 0 0/www/db2/db2test/myinst/NODE0000/MYDB3/T0000001/C0000000.TMP0x00007F9AC1268A20 2 0 File 1024 992 0 0/www/db2/db2test/myinst/NODE0000/MYDB3/T0000002/C0000000.LRG0x00007F9AC1269A00 3 0 File 1024 1020 0 0/www/db2/db2test/myinst/NODE0000/MYDB3/T0000003/C0000000.LRG0x00007F9AC126AA00 4 0 File 1024 992 0 0/www/db2/db2test/myinst/NODE0000/MYDB3/T0000004/C0000000.LRG#db2pd监控锁的使用情况[myinst@ye ~]$ db2pd -db mydb3 -lockDatabase Member 0 -- Database MYDB3 -- Active -- Up 0 days 00:23:26 -- Date2015-08-24-11.30.05.926325Locks:Address TranHdl Lockname Type Mode Sts Owner Dur HoldCount Att ReleaseFlg rrIID3、使用db2mtrk 检查数据库内存的分配情况#显示数据库的内存分配情况的详细信息[myinst@ye ~]$ db2mtrk -d -vTracking Memory on: 2015/08/24 at 12:12:36Memory for database: MYDB3Backup/Restore/Util Heap is of size 262144 bytesPackage Cache is of size 2293760 bytesOther Memory is of size 196608 bytesCatalog Cache Heap is of size 720896 bytesBuffer Pool Heap (2) is of size 34078720 bytesBuffer Pool Heap (1) is of size 75300864 bytesBuffer Pool Heap (System 32k buffer pool) is of size 1835008 bytesBuffer Pool Heap (System 16k buffer pool) is of size 1572864 bytesBuffer Pool Heap (System 8k buffer pool) is of size 1441792 bytesBuffer Pool Heap (System 4k buffer pool) is of size 1376256 bytesShared Sort Heap is of size 1310720 bytesLock Manager Heap is of size 53936128 bytesDatabase Heap is of size 107085824 bytesApplication Heap (15) is of size 65536 bytesApplication Heap (14) is of size 65536 bytesApplication Heap (13) is of size 65536 bytesApplication Heap (12) is of size 196608 bytesApplication Heap (11) is of size 65536 bytesApplication Heap (10) is of size 65536 bytesApplication Heap (9) is of size 131072 bytesApplication Heap (8) is of size 131072 bytesApplications Shared Heap is of size 917504 bytesTotal: 283115520 bytes#显示数据库的内存使用情况[myinst@ye ~]$ db2mtrk -dTracking Memory on: 2015/08/24 at 12:14:16Memory for database: MYDB3utilh pckcacheh other catcacheh bph (2) bph (1) 256.0K 2.2M 192.0K 704.0K 32.5M 71.8Mbph (S32K) bph (S16K) bph (S8K) bph (S4K) shsorth lockh 1.8M 1.5M 1.4M 1.3M 1.2M 51.4Mdbh apph (15) apph (14) apph (13) apph (12) apph (11) 102.1M 64.0K 64.0K 64.0K 192.0K 64.0Kapph (10) apph (9) apph (8) appshrh64.0K 128.0K 128.0K 896.0K#显示当前实例的内存使用情况[myinst@ye ~]$ db2mtrk -iTracking Memory on: 2015/08/24 at 12:15:10Memory for instanceother fcmbp monh51.2M 832.0K 512.0K#显示当前实例的内存使用的详细信息[myinst@ye ~]$ db2mtrk -i -vTracking Memory on: 2015/08/24 at 12:15:18Memory for instanceOther Memory is of size 53739520 bytesFCMBP Heap is of size 851968 bytesDatabase Monitor Heap is of size 524288 bytesTotal: 55115776 bytes4、练习使用db2top工具[myinst@ye ~]$ db2top -d mydb3按快捷键“d”,转至数据库屏幕按快捷键“D”,转至动态SQL 屏幕按快捷键“u”,显示活动的实用程序,并且跨数据库分区将它们聚集起来按快捷键“l”,转至会话屏幕按快捷键“t”,转至表空间屏幕5、使用db2batch测试SQL语句的性能[myinst@ye ~]$ cat sample.sqlselect * from mydb3.emp;[myinst@ye ~]$ db2batch -d mydb3 -f sample.sql* Timestamp: Mon Aug 24 2015 13:53:24 CST---------------------------------------------* SQL Statement Number 1:select * from mydb3.emp;** CLI error in preparing the SQL statement:(-204): [IBM][CLI Driver][DB2/LINUXX8664] SQL0204N "MYDB3.EMP" is an undefined name. SQLSTATE=42704* Elapsed Time is: 0.000000 seconds* Summary Table:Type Number Repetitions Total Time (s) Min Time (s) Max Time (s) Arithmetic Mean Geometric Mean Row(s) Fetched Row(s) Output--------- ----------- ----------- -------------- -------------- -------------- --------------- -------------- -------------- -------------Statement 1 1 0.000000 0.000000 0.000000 0.000000 0.000000 0 0* Total Entries: 1* Total Time: 0.000000 seconds* Minimum Time: 0.000000 seconds* Maximum Time: 0.000000 seconds* Arithmetic Mean Time: 0.000000 seconds* Geometric Mean Time: 0.000000 seconds---------------------------------------------* Timestamp: Mon Aug 24 2015 13:53:24 CST#获得更多信息[myinst@ye ~]$ db2batch -d mydb3 -f sample.sql -o r 0 p 2* Timestamp: Mon Aug 24 2015 13:54:30 CST---------------------------------------------* SQL Statement Number 1:select * from mydb3.emp;** CLI error in preparing the SQL statement:(-204): [IBM][CLI Driver][DB2/LINUXX8664] SQL0204N "MYDB3.EMP" is an undefined name. SQLSTATE=42704* Elapsed Time is: 0.000000 secondsMonitoring InformationInstance name = myinstNode name =Node type = Enterprise Server Edition with local and remote clientsSnapshot timestamp = 08/24/2015 13:54:30.306349Application SnapshotApplication handle = 229Application status = UOW WaitingStatus change time = 08/24/2015 13:54:30.301560Application code page = 1208Application country/region code = 1DUOW correlation token = *LOCAL.myinst.150824055430 Application name = db2batchApplication ID = *LOCAL.myinst.150824055430Sequence number = 00002TP Monitor client user ID =TP Monitor client workstation name = TP Monitor client application name = DB2BATCHTP Monitor client accounting string =CONNECT Authorization ID = MYINSTClient login ID = myinstConfiguration NNAME of client = Client database manager product ID = SQL10055Process ID of client application = 7007Platform of client application = LINUXAMD64Communication protocol of client = Local ClientDatabase name = MYDB3Database path = /www/db2/db2test/myinst/NODE0000/SQL00001/MEMBER0000/Client database alias = MYDB3Input database alias =The highest authority level granted =Direct DBADM authorityDirect SECADM authorityIndirect SYSADM authorityIndirect CREATETAB authorityIndirect BINDADD authorityIndirect CONNECT authorityIndirect IMPLICIT_SCHEMA authorityCoordinator member number = 0Coordinator agent process or thread ID = 56Agents associated with the application = 1Connection request start timestamp = 08/24/2015 13:54:30.292632Connect request completion timestamp = 08/24/2015 13:54:30.293070Application idle time = 0Inbound communication address = *LOCAL.myinstLast reset timestamp = 08/24/2015 13:54:30.300279Agents stolen = 0Agents waiting on locks = 0Maximum associated agents = 1Priority at which application agents work = 0Priority type = DynamicLocks held by application = 0Lock waits since connect = 0Time application waited on locks (ms) = 0 Deadlocks detected = 0 Lock escalations = 0 Exclusive lock escalations = 0 Number of Lock Timeouts since connected = 0 Total time UOW waited on locks (ms) = 0Total sorts = 0 Total sort time (ms) = 0 Total sort overflows = 0Buffer pool data logical reads = 0 Buffer pool data physical reads = 0 Buffer pool temporary data logical reads = 0 Buffer pool temporary data physical reads = 0 Buffer pool data writes = 0 Buffer pool index logical reads = 1 Buffer pool index physical reads = 0 Buffer pool temporary index logical reads = 0 Buffer pool temporary index physical reads = 0 Buffer pool index writes = 0 Buffer pool xda logical reads = 0 Buffer pool xda physical reads = 0 Buffer pool temporary xda logical reads = 0 Buffer pool temporary xda physical reads = 0 Buffer pool xda writes = 0 Total buffer pool read time (milliseconds) = 0Total buffer pool write time (milliseconds)= 0Time waited for prefetch (ms) = 0 Unread prefetch pages = 0 Direct reads = 0 Direct writes = 0 Direct read requests = 0 Direct write requests = 0 Direct reads elapsed time (ms) = 0 Direct write elapsed time (ms) = 0Number of SQL requests since last commit = 0 Commit statements = 1 Rollback statements = 0 Dynamic SQL statements attempted = 0 Static SQL statements attempted = 1 Failed statement operations = 0 Select SQL statements executed = 0Xquery statements executed = 0Update/Insert/Delete statements executed = 0DDL statements executed = 0Internal automatic rebinds = 0Internal rows deleted = 0Internal rows inserted = 0Internal rows updated = 0Internal commits = 0Internal rollbacks = 0Internal rollbacks due to deadlock = 0Binds/precompiles attempted = 0Rows deleted = 0Rows inserted = 0Rows updated = 0Rows selected = 0Rows read = 0Rows written = 0UOW log space used (Bytes) = 0Previous UOW completion timestamp = 08/24/2015 13:54:30.293070 Elapsed time of last completed uow (sec.ms)= 0.005268UOW start timestamp = 08/24/2015 13:54:30.296285 UOW stop timestamp = 08/24/2015 13:54:30.301553 UOW completion status = Committed - Commit StatementOpen remote cursors = 0Open remote cursors with blocking = 0Rejected Block Remote Cursor requests = 0Accepted Block Remote Cursor requests = 1Open local cursors = 0Open local cursors with blocking = 0Total User CPU Time used by agent (s) = 0.001037Total System CPU Time used by agent (s) = 0.000000Host execution elapsed time = 0.000845Package cache lookups = 1Package cache inserts = 0Application section lookups = 1Application section inserts = 0Catalog cache lookups = 1Catalog cache inserts = 0Catalog cache overflows = 0Catalog cache heap full = 0Catalog cache high water mark = 0Number of hash joins = 0Number of hash loops = 0Number of hash join overflows = 0Number of small hash join overflows = 0Statement type = Static SQL Statement Statement = Static CommitSection number = 0Application creator =Package name =Consistency Token =Cursor name =Statement member number = 0Statement start timestamp = 08/24/2015 13:54:30.301498 Statement stop timestamp = 08/24/2015 13:54:30.301553 Elapsed time of last completed stmt(sec.ms)= 0.000055Total Statement user CPU time = 0.000052Total Statement system CPU time = 0.000000SQL compiler cost estimate in timerons = 0SQL compiler cardinality estimate = 0Degree of parallelism requested = 1Number of agents working on statement = 1Number of subagents created for statement = 1Statement sorts = 0Total sort time = 0Sort overflows = 0Rows read = 0Rows written = 0Internal rows deleted = 0Internal rows updated = 0Internal rows inserted = 0Rows fetched = 0Buffer pool data logical reads = 0Buffer pool data physical reads = 0Buffer pool temporary data logical reads = 0Buffer pool temporary data physical reads = 0Buffer pool index logical reads = 0Buffer pool index physical reads = 0Buffer pool temporary index physical reads = 0Buffer pool xda logical reads = 0Buffer pool xda physical reads = 0Buffer pool temporary xda logical reads = 0Buffer pool temporary xda physical reads = 0Blocking cursor = NOAgent process/thread ID = 56Memory usage for application:Node number = 0Memory Pool Type = Other MemoryCurrent size (bytes) = 196608High water mark (bytes) = 327680Configured size (bytes) = 1868365824* Summary Table:Type Number Repetitions Total Time (s) Min Time (s) Max Time (s) Arithmetic Mean Geometric Mean Row(s) Fetched Row(s) Output--------- ----------- ----------- -------------- -------------- -------------- --------------- -------------- -------------- -------------Statement 1 1 0.000000 0.000000 0.000000 0.000000 0.000000 0 0* Total Entries: 1* Total Time: 0.000000 seconds* Minimum Time: 0.000000 seconds* Maximum Time: 0.000000 seconds* Arithmetic Mean Time: 0.000000 seconds* Geometric Mean Time: 0.000000 seconds---------------------------------------------* Timestamp: Mon Aug 24 2015 13:54:30 CST。

DB2-常用命令介绍(unix)

DB2-常用命令介绍(unix)

3、查看表空间:db2 list tablespaces [show detail] show detail的话,会看到表空间的大小。 由于db2数据库是分区的,这个命令看到的就是在当前节点上的所有表空间上的信 息。
让 中 国 移 动 BI 腾 飞
常用命令:
4、查看容器:db2 list tablespace containers for 2 [show detail] 其中2是表空间的id号(syscat.tablespaces),这个命令可以看到在当前节点上 本表空间是由哪些容器组成的。Show detail可以看到容器大小
让 中 国 移 动 BI 腾 飞
常用命令:
19、检查资源占用情况: 先用ps aux|sort +4n找出占用内存最大的进程号 再使用db2pd -alldbp -db sdcrm -age -app -tra -act -dyn,查找进程号,对应 的apphandle 20、查看其他节点情况: 先切换到其他节点:export DB2NODE=2 是上述命令生效:db2 terminate
21:db2建自增列: create table dept (deptno smallint not null generated always as identity (start with 500, increment by 1), deptname varchar (36) not null );
让 中 国 移 动 BI 腾 飞
'database' from syscat.dbauth union 'table ' from syscat.tabauth union 'package ' from syscat.packageauth 'index ' from syscat.indexauth union 'column ' from syscat.colauth union 'schema ' from syscat.schemaauth 'server ' from syscat.passthruauth

查看锁表 db2

查看锁表 db2

查看锁表 db22010-11-11 17:34方法一:用db2pd注意执行db2pd命令时如果数据库没有激活,则会报这个错误:Database dbname not activated on database partition 0.首先激活一下数据库: db2 activate database dbname看应用在等什么#db2pd -db eos -locks showlock waitDatabase Partition 0 -- Database EOS -- Active -- Up 0 days 07:42:56Locks:Address TranHdl Lockname Type Mode Sts Owner Dur HldCnt Att Rlse0x2C8E0760 3 02001806078066020000000052 Row ..X W 2 1 0 0 0x0 TbspaceID 2 TableID 156 RecordID 0x2668007锁的类型为Row(行锁),X锁(排他锁),下面是我们最关心的锁的位置TbspaceID 2 TableID 156 RecordID 0x2668007其中TbspaceID为表空间ID,TableID为表的ID,RecordID代表具体位置,全部应该是0x0266807,其中前面三个字节为page number,为0x02668,后面一个字节代表solt identifier,为0x073、找到相应的表#db2 "select tbspace,tabschema,tabname,tableid,tbspaceid from syscat.tables where tbspaceid=2 and tableid=1560"TBSPACE TABSCHEMA TABNAME TABLEID TBSPACEID------------ ----------- ---------- ------- ---------USERSPACE1 DB2INST1 AA_TEST 156 21 record(s) selected.方法二:用快照UPDATE MONITOR SWITCHES USING LOCK ONGET SNAPSHOT FOR LOCKS ON <dbname>update monitor switches using lock off方法三:#show all the switchesdb2 get monitor switches#switch-name:BUFFERPOOL、LOCK、SORT、STATEMENT、TABLE、TIMESTAMP 和 UOW#set the switches ON/OFFdb2 update monitor switches using table off#DB2 snapshot 用于锁定位(管理视图)db2 get snapshot for locks on <table or dbname >Select substr(tabschema,1,8) as tabschema, substr(tabname,1,15) as tabname,lock_object_type, lock_mode, lock_mode_requested, agent_id_holding_lkFrom sysibmadm.lockwaits注:db2 +c为不自动提交(commit)SQL语句,也可以通过 db2 update command options using c off关闭自动提交(autocommit,缺省是自动提交)db2 +c insert into lgxswfc values(2)+++++++++++++ExAMPLE+++++++++++#session1db2 +c insert into lgxswfc values(2)+++#session2db2 select * from lgxswfc#此时session2 挂起+++#session3Select substr(tabschema,1,8) as tabschema, substr(tabname,1,15) as tabname,lock_object_type, lock_mode, lock_mode_requested, agent_id_holding_lkFrom sysibmadm.lockwaitsdb2 FORCE APPLICATION(agent_id_holding_lk); --结束进程。

db2pd与db2top管理

db2pd与db2top管理
db2pd -h db2pd -d cmbcepay db2pd -d cmbcepay -tables db2pd -d cmbcepay -buff db2pd -d cmbcepay -locks db2pd -d cmbcepay -wlocks db2pd -d cmbcepay -lock showlocks wait db2pd -d cmbcepay -lock showlocks|more db2pd -d cmbcepay -lock|more db2pd -d cmபைடு நூலகம்cepay -lock|wc -l db2pd -d cmbcepay -logs
登录后才能查看或发表评论立即登录或者逛逛博客园首页
db2pd与 db2top管理
db2 describe table sysibmadm.admintabinfo db2 list applications 查看使用 db2 list db directory 查看所有数据库 db2 list tables for schema syscat db2 describe table syscat.INDEXES db2 get db cfg for cmbcepay db2 list utilities show detail db2 list history backup all for cmbcepay
db2diag -f
db2top -d cmbcepay 交互平台获取动态系统 db2top -d cmbcepay -i 5
496 db2 force application all 497 db2 list applications 498 db2 connect to cmbcepay 506 db2 alter bufferpool IBMDEFAULTBP immediate size 10000 507 db2 list applications 508 db2 alter bufferpool IBMDEFAULTBP immediate size 10000 509 db2 force applications 510 db2 force applcations 511 db2 force application all db2 alter bufferpool IBMDEFAULTBP immediate size 10000 db2stop db2 list applications db2stop force db2start db2 alter bufferpool CMBCEPAYPOOL immediate size 15000 db2 alter bufferpool GWBP immediate size 10000 db2 alter bufferpool TMP01_BUF immediate size 5000 db2 alter bufferpool IBMDEFAULTBP immediate size 30000 db2pd -d cmbcepay -buff db2 connect to cmbcepay db2 list applications db2 get db cfg db2 update db cfg using maxlocks 20 db2 get db cfg show detail db2pd -d cmbcepay -wlocks

db2pd抓取锁表语句

db2pd抓取锁表语句

分析锁等待事件,找出锁表语句1.找出锁等待情况db2pd -db foticdb -locks wait showlocks// -file lockwait.txt导出结果到文件lockwait.txt可以看到上图中有一个X锁,TranHdl=106,Sts=G(锁的授权者即持有者),事务TranHdl=91的锁类型为U,Sts=W,即处于锁等待状态,Owner=106,即91的事务等待106的事务释放锁事务91才能执行。

如果需要找到事务106所执行的SQL,必须找到事务106对应的APPID。

2.找到事务对应的AppHandldb2pd -db fotest –transactions以上返回结果中可以看到事务91对应的AppHandl=59574,事务106对应的AppHandl=59131。

3.找到应用程序对应的AnchIDdb2pd -db fotest -applications可以看到上图中AppHandl=59131的应用L-AnchID=233,L-StmtUID=74.找到L-AnchID=233,L-StmtUID=7对应的SQLdb2pd -db fotest -dynamic上图中可以看到AnchID=233,StmtUID=7的应用执行的SQL为Update locktest set suibian=33 where suibian=22到此所有查询都结束。

5.总结应为db2pd是数据库实时监测,正式执行查找,可一次导出以上所有信息,到文件中,再分析锁表情况。

执行语句:db2pd -db foticdb -locks wait showlocks -transactions -agents -applications -dynamic -file db2pd.out -repeat 15 40//-repeat 15 40为没隔15s执行一次db2pd语句,总共执行40次//-file 将结果导出到db2pd.out文件中。

db2pd简介及使用方法

db2pd简介及使用方法

1.打开 db2pd – Monitor and Troubleshoot DB Command,如图 3 所示。

图 3. DB2 Information Center 中关于 db2pd 工具的信息调用 db2pd 工具有两种方式。

可以用交互模式调用 db2pd 工具,或者直接在操作系统命令提示符下运行。

要是用交互模式执行该工具,可以在操作系统命令提示符下输入 db2pd –interactive 或者直接输入 db2pd,这样将看到 db2pd 命令提示符db2pd>,可以输入命令选项。

使用–help 选项可以获得帮助信息。

退出 db2pd 命令提示符只需要输入 quit 或者 q。

图 4 中的例子说明了如何使用交互模式显示当前的代理。

图 4. 用交互模式调用 db2pd在操作系统命令提示符下调用该工具可以输入带有命令选项的 db2pd 命令。

下面的例子(图 5)使用 -agents 选项显示了所有的活动代理。

图 5. 在操作系统命令提示符下调用 db2pd此外,还可以通过将选项保存在文件中或者在 DB2PDOPT 环境变量中设置选项来控制该命令。

下面的例子(图 6)说明可以将 -agents 选项保存在一个(在该例中)名叫file.out的文件中,然后使用 db2pd –command file.out 执行选项。

图 6. 将 db2pd 选项保存在文件中如果要使用 DB2PDOPT 环境变量,可以将 DB2PDOPT 设成需要的选项然后像下面这样调用 db2pd:图 7. 在 DB2PDOPT 环境变量中设置 db2pd 选项更好的是,可以指定–repeat 参数重复该命令。

比方说,下面的命令每 2 秒钟显示一次 DB2 内存信息,共 5 次:db2pd –mempools –repeat 2 5此外,通过 file= 参数还可以将特定 db2pd 命令选项的结果保存到文件中。

file 和 repeat 参数可以结合使用:回页首监控的例子下面这些例子说明了如何用 db2pd 工具监控您的数据库环境。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
只输出数据库DB2DB相关信息。相关子选项还包括agent=<agentid>,application=<appid>等。
(2)-fcm FCM信息
(3)-mempools 输出内存池相关信息。如:
************************************************************
交互方式只要在db2pd命令行下输入相关参数即可。本例输出结果为实例的内存池使用相关信息。
以上介绍的交互式执行方式如果改用在系统命令行直接执行的话:
************************************************************
[db2inst1@localhost ~]$ db2pd -mempools
0x10175AF0 457 [000-00457] 29669 0 Coord Active 0 db2jccTP 38169 0 NotSet DB2DB
0x10176D70 201 [000-00201] 31400 0 Coord Active 0 db2jccma 95758 0 NotSet DB2DB
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
-ins 输出实例相关信息
-db dbname 输出数据库dbname相关信息,用于单一指定的数据库。
-alldb 输出所有数据库信息。
-dbp partitionnum 输出特定的数据库分区服务器的信息
-alldbp 输出所有数据库分区服务器的信息
0x101818F0 431 [000-00431] 32659 0 Coord Active 0 db2jccTP 546895 575 NotSet DB2DB
0x101833A0 202 [000-00202] 32717 0 Coord Active 0 db2jccTP 20556 0 NotSet DB2DB
Active agents: 18
Coordinator agents: 18
Address AppHandl [nod-index] AgentPid Priority Type State ClientPid Userid ClientNm Rowsread Rowswrtn LkTmOt DBName
db2pd工具有两种执行方式:
1.交互式
2.直接在命令行执行
对于第一种交互式执行方式,需要要在命令行执行:
************************************************************
[db2inst1@localhost ~]$ db2pd -interactive
[db2inst1@localhost ~]$ db2pd -mempools
Database Partition 0 -- Active -- Up 47 days 12:16:11
Memory Pools:
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
db2pd> Type q to quit.
db2pd>
************************************************************
或者直接执行db2pd.这样可以进入db2pd的命令行,进行交互式操作,例如:
************************************************************
0x100005B8 DBMS bsuh 71 0 103824 9256960 225132 131072 9256960 245760 Ovf 158 n/a
************************************************************
-osinfo 输出操作系统相关信息
//实例范围的选项:
(1)-agents 输出DB2代理的相关信息。在日常监控中是一个比较常用的选项,执行方式和输出方式可以通过不同了选项进行控制。
****************************************************************
[db2inst1@localhost ~]$ db2pd -agents db=db2db
Database Partition 0 -- Active -- Up 47 days 12:44:13
Agents:
Current agents: 42
Idle agents: 23
db2pd> -mempools
Database Partition 0 -- Active -- Up 47 days 12:09:32
Memory Pools:
Address MemSet PoolNameLogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10176280 187 [000-00187] 29670 0 Coord Active 0 db2jccTh 9508153 0 NotSet DB2DB
****************************************************************
db2pd> You are running db2pd in interactive mode.
db2pd> If you want command line mode, rerun db2pd with valid options.
db2pd> Type -h or -help for help.
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
Database Partition 0 -- Active -- Up 47 days 12:16:11
Memory Pools:
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
************************************************************
其实和交互方式执行是一样的结果。
db2pd有22个选项,如果想对所有分区,所有活动数据库,运行所有选项,您只要输入db2pd -everything,就会列出所有信息。
//如果想控制输出的范围,可以参考如下:
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
在 8.2 版中, 引入一种新的工具 db2pd 来监控和管理 DB2 数据库和实例。使用这一工具可以跟踪事务、表空间、表统计信息、动态 SQL 和所有配置信息。对于故障检修、确定问题和性能调优等方面。
db2pd用于收集 DB2 实例和数据库的统计信息。db2pd 提供了 20 多个选项显示关于数据库事务、表空间、表统计信息、动态 SQL、数据库配置和其他很多细节的信息。单个 db2pd 命令可以检索多个领域的信息,并把结果保存到文件中。也可以在特定时期内调用该工具一定的次数,帮助您了解随着时间的变化数据库中的变动情况。该工具可用于故障检修、问题确定、数据库监控、性能调优和帮助应用程序的开发设计。
相关文档
最新文档