db2数据库状态
‘壹’ db2数据库怎么查看实例
1、 打开命令行窗口
#db2cmd
2、 打开控制中心
#db2cmd db2cc
3、 打开命令编辑器
#db2cmd db2ce
=====操作数据库命令=====
4、 启动数据库实例
#db2start
5、 停止数据库实例
#db2stop
如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了 /db2stop force
6、 创建数据库
#db2 create db [dbname]
7、 连接到数据库
#db2 connect to [dbname] user [username] using [password]
8、 断开数据库连接
#db2 connect reset
9、 列出所有数据库
#db2 list db directory
10、 列出所有激活的数据库
#db2 list active databases
11、 列出所有数据库配置
#db2 get db cfg
12、 删除数据库
#db2 drop database [dbname]
(执行此操作要小心)
如果不能删除,断开所有数据库连接或者重启db2
‘贰’ DB2数据库发生死锁了怎么办
先定位一下是哪个程序句柄导致的死锁。
方法一、查看db2diag.log文件
找到DeadLock or Lock timeout 死锁或锁超时信息
db2 force application(句柄ID)
直接结束进程即可。
方法二、DB2快照信息
1、看一下DB2快照信息
db2 get snapshot for locks on sample
可以得到类似信息:
数据库锁定快照
数据库名称 = SAMPLE
数据库路径 = D:\IBM\DB2\NODE0000\SQL00001\
输入数据库别名 = SAMPLE
挂起的锁定 = 8
当前已连接的应用程序 = 2
当前正等待锁定的代理程序数 = 1
应用程序句柄 = 54
应用程序标识 = *LOCAL.DB2.140304192925
序号 = 00001
应用程序名 = db2bp.exe CONNECT
授权标识 = DB2ADMIN
应用程序状态 = 锁定等待
应用程序代码页 = 1208
挂起的锁定 = 4
总计等待时间(毫秒) = 247867
锁定列表
锁定名称 = 0x5359534C564C3031DDECEF2841
锁定属性 = 0x00000000
发行版标志 = 0x40000000
锁定计数 = 1
挂起计数 = 0
锁定对象名 = 2312
对象类型 = 行
表空间名 = IBMDB2SAMPLEREL
表模式 = DB2ADMIN
表名 = TEST
方式 = IX
查看锁定的详细信息:db2 get snapshot for locks for application agentid 1728
----(1728是句柄ID)
3、观察命令db2 list applications的输出
查看应用程序的状态是否有锁定等待(Lock-wait)状态出现。
执行命令 list applications for db sample show detail;
4、db2 force application(句柄ID)
直接结束进程即可。
‘叁’ 如何查询db2数据库表是否被锁
1、首先点击桌面上的SQL server数据库。
‘肆’ 关于DB2数据库的参数调优技巧
在开始前 请关闭IBM目录服务器 将上下文切换到IBM目录服务器DB 实例拥有者 一般是ldapdb 用户 比如
在Unix系统里 输入
su ldapdb
在Windows系统里 输入
db cmdset DB INSTANCE=ldapdb
为了调节DB 参数 运行db tunings sh脚本 你可以在这里下载:// sofare ibm /ibmdl/pub/sofare/tivoli_support/misc/Security/AMeB/_am /tuning_guide_scripts tar
或者通过ftp地址
ftp://ftp sofare ibm /sofare/tivoli_support/misc/Security/AMeB/am /tuning_guide_scripts tar
Web页面需要注册用户名和密码
这个脚本的文件系统拥有者必须是DB 实例拥有者 一般就是ldapdb 用户 文件系统组应该和实例拥有者相同(一般是dbsysadm) 脚本必须在DB 实例拥有者的上下文中使用
脚本中的ibmdefaultbp和ldapbp参数控制着DB 的缓冲池 db _turnings sh脚本 设置了DB 缓冲池的建议大小 其他一些可选的设置在脚本的注释里写明了 IBM目录服务器的性能随着DB 缓冲池的增长而提高 然而在大多数情况下 通过这样的参数调节方式 你可以预见不超过 %的性能提高
DB 缓冲池是DB 缓存数据表和索引的地方 DB 用户使用索引来在查询时迅速找到该获取哪个表行项 需要更多信息 请参考IBM Directory Server Tuning Guide
显示和验证当前设置
输入如下命令来显示当前的DB 参数调节设置的结果
db get database configuration for ldapdb |
egrep DBHEAP|SORTHEAP|MAXLOCKS|MINMIT|UTIL_HEAP_SZ|APPLHEAPSZ
db connect to ldapdb
db select bpname npages pagesize from syscat bufferpools
db terminate
如果某个堆配置参数过低 就将出现一些功能性的问题 输入如下命令来显示当前的堆参数设置
db get db cfg for ldapdb | grep HEAP
下面是一个使用了推荐值的多种堆参数的输出例子显示
Database heap ( KB) (DBHEAP) =
Utilities heap size ( KB) (UTIL_HEAP_SZ) =
Max appl control heap size ( KB) (APP_CTL_HEAP_SZ) =
Sort list heap ( KB) (SORTHEAP) =
SQL statement heap ( KB) (STMTHEAP) =
Default application heap ( KB) (APPLHEAPSZ) =
Statistics heap size ( KB ) (STAT_HEAP_SZ) =
如果一个堆参数小于最小值 输入如下命令将其增大到最小值
db update db cfg for ldapdb using parm_name parm_value
这里parm_name是上文输出中的第三栏的字样(无括号) parm_value是最后一栏的值
如果堆参数设置的过高或者过低 IBM的目录服务器都会以失效来提示出现了问题 在这种情况下 需要查看诸如IBM Directory Server V (IDS )的cli error文件或者IBM Tivoli Directory Server V (IDS v )的db cli log或者其他一些文件 在IDS v 系统中 该文件缺省目录在Solaris的/var/ldap/和AIX的/tmp中 在IDS v 和后来系统中 Solaris和AIX的缺省目录都是/var/ldap
注意db look能够在一条命令下提供关于数据库及其配置的足够多的信息 例子如下
db look d ldapdb u ldapdb p o output_file
output_file是存储结果的文件位置
关于IBM目录服务器运行的警告
DB 参数调节使用了db terminate 如果当该命令发出 IBM目录服务器slapd或ibmslapd进程在运行 它将阻止服务器的部分功能 所有缓存的搜索看起来反应正常 其他的搜索将会简单的变为无结果或者出现错误信息 恢复功能将会重启IBM目录服务器 因此最好是在调节DB 参数时关闭IBM目录服务器
关于缓冲池内存使用的警告
如果任何的缓冲池被设置过高 DB 将会因为缺少足够内存而无法启动 如果出现该问题将会有一个核心转储的文件 但是通常没有错误信息
在AIX系统里 系统错误日志将会报告一个内存分配失败 查看这个日志请输入
errpt a | more
使用太大的缓冲池大小来恢复一个被分在系统里的数据库将会导致恢复失败 查看//publib boulder ibm /infocenter/tivihelp/v r /topic/ ibm itame doc_ /am _perftune #idtrouble来解决这个问题
如果DB 因为缓冲池过大而无法启动 请重新调节DB 参数
关于MINMIT的警告
lishixin/Article/program/DB2/201311/11229
‘伍’ DB2中怎么查看23502异常错误信息
由于数据库管理器发生了错误或者被强制中断,从而无法接受新的请求,已终止正在处理的所有请求或者已终止所指定的请求。
重新连接至数据库。
如果此连接仍失败,请在数据库管理员的帮助下执行下列故障诊断步骤:
仅限于联合环境:确定是联合数据源返回了错误还是联合数据库服务器返回了错误。
确保客户机/服务器配置正确:
确认通信子系统(包括网络电缆、网卡以及 TCP/IP 之类的通信协议)是否已启动并处于运行状态。
在使用 TCP/IP 协议的客户机/服务器环境中:请对客户机上的 TCP/IP 服务名称指定与服务器上的端口号相同的端口号。
确保数据库管理器已启动并处于运行状态:
确认 DB2 数据库管理器是否已启动并处于运行状态。
在 db2diag 日志文件中查找有关数据库管理器进程已中断或异常终止的证据。
如果数据库管理器已停止,或者诊断日志中存在有关任何数据库管理器代理程序已中断或异常终止的证据,请重新启动数据库管理器。
2
‘陆’ DB2表空间已满,无法访问,状态为暂挂,备份数据库报错
表空间可能处于脱机状态。尝试确定底层问题并进行更正。一些问题的
示例包括:未安装文件系统(可通过安装文件系统,然后将表空间开关
改变为联机来修正);已经删除了表空间文件(可以通过执行复原操作
来修正)。
表空间可能已停顿。使用 LIST TABLESPACES 来检查表空间的状态。使
用 QUIESCE RESET OR QUIESCE TERMINATE 来使表空间可用。注意,保
持停顿的用户标识可能需要执行 QUIESCE REST OR TERMINATE 操作。
应该是有其他进程再跑吧,看下表空间状态,如果表空间没有异常,那就terminate下应该就可以了
‘柒’ 重装系统后,如何恢复DB2数据库
你只需要重新安装一下db2的安装程序,保留以前的数据库的数据文件目录。然后在命令行下db2=> 执行
catalog db 数据库名称 on 原数据库文件所在磁盘, 这样就可以把以前的数据库编目上了。