-查看数据库管理器级别快照信息
db2 get snapshot for dbm
-查看数据库级别快照信息
db2 get snapshot for database on dbname
-查看应用级别快照信息
db2 get snapshot for application agentid appl-handler
注:appl-handler可以从list applicaitions的输出中得到
-查看表级别快照信息
db2 get snapshot for tables on dbname
注:需要把tables快照开关设为ON才会有作用
-查看锁快照信息
db2 get snapshot for locks on dbname
或
db2 get snapshot for locks on for application agentid appl-handler
-查看动态sql语句快照信息
db2 get snapshot for dynamic sql on dbname
db2 get monitor switches
db2 update monitor switches using lock on statement on
create event monitor mymonitor for deadlocks,statements write to file 'D:\temp'
set event monitor mymonitor state 1
db2evmon - path 'D:\temp'
DB2频繁出现死锁,常用解决命令
db2 get snapshot for locks on sample
db2 get db cfg for sample
db2 update db cfg using dlchktime 10000
4. 查看快照信息
-查看数据库管理器级别快照信息
DB2 get snapshot for dbm
-查看数据库级别快照信息
DB2 get snapshot for database on dbname
-查看应用级别快照信息
DB2 get snapshot for application agentid appl-handler
注:appl-handler可以从list applicaitions的输出中得到
-查看表级别快照信息
DB2 get snapshot for tables on dbname
注:需要把tables快照开关设为ON才会有作用
-查看锁快照信息
DB2 get snapshot for locks on dbname
或
DB2 get snapshot for locks for application agentid appl-handler
-查看动态sql语句快照信息
DB2 get snapshot for dynamic sql on dbname
5.使用事件查看器
可以使用时间查看器收集锁事件,SQL语句事件,从而根据事件分析锁原因。
事件类型
使用事件监控器,首先要选定所关注的事件类型,DB2中有很多事件类型,可以用于锁分析的通常会用到以下三种:
DEADLOCKS
DEADLOCKS WITH DETAILS
STATEMENTS
步骤:
-创建事件监控器
create event monitor evmname for eventtype write to file ‘directory’
例:create event monitor mymonitor for deadlocks, statements
write to file ‘c:\temp’
-把事件监控器打开
接上例:
set event monitor mymonitor state 1
注:1为打开,0为关闭
事件监控器开始工作,当所有应用断掉连接后,将事件记录下来
-查看事件细节
一、加载数据:
1、 以默认分隔符加载,默认为“,”号
db2 "import from btpoper.txt of del insert into btpoper"
2、 以指定分隔符“|”加载
db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"
二、卸载数据:
1、 卸载一个表中全部数据
db2 "export to btpoper.txt of del select * from btpoper"
db2 "export to btpoper.txt of del modified by coldel| select * from btpoper"
2、 带条件卸载一个表中数据
db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'"
db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'"
db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'"
三、查询数据结构及数据:
db2 "select * from btpoper"
db2 "select * from btpoper where brhid='907020000' and oprid='0001'"
db2 "select oprid,oprnm,brhid,passwd from btpoper"
四、删除表中数据:
db2 "delete from btpoper"
db2 "delete from btpoper where brhid='907020000' or brhid='907010000'"
五、修改表中数据:
db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'"
db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'"
六、联接数据库
db2 connect to btpdbs
七、清除数据库联接
db2 connect reset 断开数据库连接
db2 terminate 断开数据库连接
db2 force applications all 断开所有数据库连接
八、备份数据库
1、 db2 backup db btpdbs
2、 db2move btpdbs export
db2look -d btpdbs -e -x [-a] -o crttbl.sql
九、恢复数据库
1、 db2 restore db btpdbs without rolling forward
2、 db2 -tvf crtdb.sql
crtdb.sql文件内容:create db btpdbs on /db2catalog
db2 -stvf crttbl.sql
db2move btpdbs import
十、DB2帮助命令:
db2 ?
db2 ? restroe
db2 ? sqlcode (例:db2 ? sql0803) 注:code必须为4位数,不够4位,前面补0
十一、bind命令:将应用程序与数据库作一捆绑,每次恢复数据库后,建议都要做一次bind
(1) db2 bind br8200.bnd
(2) /btp/bin/bndall /btp/bnd
/btp/bin/bndall /btp/tran/bnd
十二、查看数据库参数:
db2 get dbm cfg
db2 get db cfg for btpdbs
十三、修改数据库参数:
db2 update db cfg for btpdbs using LOGBUFSZ 20
db2 update db cfg for btpdbs using LOGFILSIZ 5120
改完后,应执行以下命令使其生效:
db2 stop
db2 start
补充:
db2 set schema btp 修改当前模式为"btp"
db2 list tablespaces show detail 查看当前数据库表空间分配状况
db2 list tablespace containers for 2 show detail 查看tablespace id=2使用容器所在目录
db2 list application
db2 list db directory 列出所有数据库
db2 list active databases 列出所有活动的数据库
db2 list tables for all 列出当前数据库下所有的表
db2 list tables for schema btp 列出当前数据库中schema为btp的表
db2 list tablespaces show detail 显示数据库空间使用情况
db2 list packages for all
db2 "import from tab76.ixf of ixf commitcount 5000 insert into achact"
db2 "create table achact_t like achact"
db2 "rename table achact_t to achact"
db2 "insert into achact_t select * from achact where txndt>=(select lstpgdt from
acmact where actno=achact.actno)"
db2 get snapshot for dynaimic sql on jining
删除一个实例:
# cd /usr/lpp/db2_07_01/instance
# ./db2idrop InstName
列出所有DB2实例:
# cd /usr/lpp/db2_07_01/bin
# ./db2ilist
为数据库建立编目
$ db2 catalog db btpdbs on /db2catalog
取消已编目的数据库btpdbs
$ db2 uncatalog db btpdbs
查看版本
# db2level
显示当前数据库管理实例
$ db2 get instance
设置实例系统启动时是否自动启动。
$ db2iauto -on 自动启动
$ db2iauto -off 不自动启动
数据库优化命令:
reorg、runstats
当数据库经过一段时间使用,数据空间会变得越来越庞大。一些delete掉
的数据仍存放在数据库中,占用数据空间,影响系统性能。因此需要定期
运行reorg、runstats命令,清除已delete的数据,优化数据结构。
db2 reorg table 表名
db2 runstats on table 表名 with distribution and indexes all
因为要优化的表比较多,所以在/btp/bin目录下提供了一个sh程序runsall,
可在当天业务结束后,运行runsall,对数据库进行优化
相关推荐
### DB2死锁问题分析及解决方案 #### 一、引言 在数据库管理与维护过程中,死锁问题是一个常见的挑战,特别是在使用IBM DB2这样的大型关系型数据库管理系统时。本文将详细探讨DB2中死锁问题的分析方法及有效的解决...
这条命令的作用是开启DB2的监控开关,使得系统能够记录下有关锁定的信息,包括但不限于锁定的类型、持续时间等,这对于后续分析死锁原因非常重要。 ##### 2. 查看死锁状态 一旦开启了监控开关,就可以通过以下命令...
在DB2环境中,可以使用`db2 update monitor switches using lock on`命令来启动死锁监控功能。这将使得系统能够记录和报告死锁事件,帮助我们及时发现和处理问题。 一旦监控开启,我们可以通过`db2 get snapshot ...
### DB2TOP 资源查看命令详解 #### 命令概述 `db2top` 是 IBM DB2 数据库管理系统中的一个性能监控工具,它主要用于监控和诊断 DB2 UDB(Universal Database)数据库在 DPF(Distributed Partitioned File System)...
3. **强制终止事务**:一旦找到导致死锁的进程,可以使用`db2 force application`命令来强制结束该事务。这个命令需要传入刚才记录的Agent ID号作为参数,例如:`db2 force application (ID号)`。这会强制中断指定的...
### DB2数据库处理表死锁知识点详解 #### 一、理解DB2中的死锁与锁机制 在DB2(Database 2)这种关系型数据库管理系统中,锁是一种用于确保数据一致性和完整性的关键机制。当两个或多个事务互相等待对方释放资源时...
### DB2 常见问题分析 #### 一、DB2 故障诊断与日志收集 当 DB2 数据库主机遇到重大故障时,我们可以通过 `db2support` 工具来快速收集数据库的诊断日志数据。这些数据对于后续的问题定位至关重要。 - **在可以...
4. **监控锁信息**:`db2getsnapshotforlocksondbname`用于获取数据库`dbname`上的所有锁定信息,帮助分析死锁问题。 5. **查看表空间信息**:`db2listtablespacesshowdetail`及`db2pd-dbstudy-tablespaces`等命令...
6. 死锁解决:"解决数据库的死锁问题"和"当并发遇到隔离的时候 DB2"提供了处理DB2死锁的具体步骤和策略,包括使用DB2的死锁检测功能、事务回滚和死锁预防等技术。 7. 社区资源:这些HTML文件来自于各种技术社区,如...
使用`$db2getsnapshotfordbonbhdb`命令可以捕获数据库的实时状态快照,这包括了锁升级的关键指标,如当前持有的锁数量、锁等待次数、死锁检测次数等。这些信息对于分析锁升级的原因和频率非常有帮助。 ``` Database...
- **命令:** `db2listdbdirectory` 或 `db2listactivedatabases` - **功能:** 列出服务器上所有数据库或活动中的数据库。 **3. DBM、DB的配置** - **命令:** - `db2getdbmcfg`: 显示数据库管理器参数(当前值和...
1. **锁信息查看**:db2pd可以展示当前数据库中的锁情况,包括锁的类型、状态、等待链等,这对于分析并发问题和死锁状况非常有帮助。 2. **表空间和分区信息**:可以查看数据库的表空间分布,以及每个表空间内的...
- 如果实例未启动,可以以DB2实例所有者的身份登录,并通过`db2start`命令启动实例。 3. **查看表空间状态是否正常** - **重要性**: 表空间的状态直接影响到数据存储的有效性和安全性。 - **操作方法**: - 对于单...
### DB2表相关操作知识点详解 #### 一、DB2表操作概述 DB2是IBM开发的一款关系型数据库管理系统(RDBMS),广泛应用于各种规模的企业级应用中。本文档主要介绍DB2表的一些常见操作,包括字段的增删改、表空间的查看...
- 方法:使用操作系统提供的命令(如`ps -ef | grep db2`)来查看DB2相关的进程。 - **1.4.13 如何将数据库运行的环境收集起来** - 方法:可以使用`DB2 COLLECT`命令收集数据库环境信息,便于后续分析。 - **...
2. 检查DB2实例是否已启动:使用`ps -ef | db2sysc`检查db2sysc后台进程,或登录实例所有者账户,通过`db2start`命令确保实例已启动。 3. 查看表空间状态是否正常:使用`db2 list tablespaces show detail`或`db2_...