DB2问题分类以及解决思路

     在我们日常使用和维护数据库的过程中,肯定会遇到各种不同类型,千奇百怪的问题,现在我就将常见的问题进行分类汇总。


一、DB2实例不能正常启动。

      问题描述:当我们运行db2start时,有时侯会碰到system error 或者一直hang在那里不返回启动成功信息。

       解决问题思路:  1)是不是数据库刚刚升级没有运行db2iupdate 或者db2iupgrade来升级实例

                                           Solution: 在做DB2升级时,正确按照安装文档对实例进行升级

                                   2)是不是上次DB2 实例被非正常终止

                                            Solution:  运行ipclean ,清除db2占用的共享内存和信号量,然后再重启。

                                   3) 是不是安装了HADR +TSA,但是没有安装成功

                                            Solution: 使用db2haicu -delete 先删除TSA,之后进行重新配置

                                    4) 是不是最近更改了实例的一些参数

                                             Solution:主要看是不是设置了实例内存参数,设置过大,调整为Automatic或者合适的值。

                                    5)其他原因

                                            Solution: 查看db2diag, 然后根据错误信息,去db2 support, knowledge center, google上查询具体原因。 IBM内部员工查询内部知识库psDB.

二、实例能正常启动,但是连接不上数据库。

       问题描述:当我们运行db2 connect to DB时,要么碰到错误信息,要么hang在那里

       解决问题思路:  1)是不是活动日志丢失?数据库的活动日志有可能被某些脚本或者人不小心删除。一般来说DB2会在交互界面或者db2diag会有明确的错误信息。

                                        Solution: 活动日志丢失了,真的没有办法。只能用以前的版本进行恢复。 如果没有最近可用的备份,那么需要打800电话开PMR, 将日志控制文件发给

                                          db2实验室, db2实验室会修改日志控制文件后返回来。 将返回的日志控制文件替换原来的文件,数据库就可以正常启动了。 但是这种操作可能会带来数

                                          据不一致或者数据丢失。

                                  2) 数据库主日志(primary log ) ,数据库内存, bufferpool设置过大?

                                          设置太多的主日志个数,会导致在连接数据库的时候需要创建所有这些日志,需要一定的时间,如果空间没有计划好,可能日志文件能占满文件系统。

                                           与内存相关的一些设置,比如database_memory 和bufferpool设置太大都有可能造成DB不能正常连接。 (一般来说bufferpool设置过大,这个bufferpool

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DB2常用命令 db2level 显示db2的版本号 显示SQL出错信息 db2 "? sql6031" db2mtrk 管理DAS 产生:root运行-dascrt -u dasuser1 删除:root运行-dasdrop 启动:dasusr1运行-db2admin start 停止:dasusr1运行-db2admin stop db2_kill ipclean db2start dbpartitionnum 9 restart AIX启动控制中心: db2cc DB2用户管理: db2 use os to manage users.You can use following steps to add a db2 user: 1,add a user on os. 2,grant rights to user. GRANT CREATETAB,CONNECT ON DATABASE TO USER FUJIE; grant select, update, delete on table employee to user john with grant option 一,实例 产生 db2icrt -a AuthType(SERVER,CLIENT,SERVER_ENCRYPT) -p PORT_NAME 表空间PREFETCHSIZE的设置,EXTENTSIZE的关系,缓冲池的监控,页清除程序的多少。 临时表空间页面大小与其他表空间页面大小的设置,临时表空间与缓冲池的设置。 example:db2icrt db2 -s ese -p d:\db2 -u Administrator 注意:在UNIX 上产生实例时需要产生一个和实例名称相同的用户名,和fencedid 用户。 如:db2icrt -s ese -u db2fenc2 db2inst2 将在db2inst2用户中产生实例db2inst2. 缺省创建32位实例,创建64位实例:db2icrt -s ese -w 64 -u db2fenc2 db2inst2 删除 db2idrop instance-name 启动 db2start 停止 db2stop force 连接 db2 attach to testdb2 db2 detach 列出实例 db2ilist 设置当前实例 set db2instance= 得到当前实例 db2 get instance 设置实例自动重启动UNIX db2iauto -on db2iauto -off 获取实例的配置参数 db2 get dbm cfg 修改配置参数 例如:db2 update dbm cfg using authentication server_encrypt db2stop and db2start 二,声明注册表和环境变量 db2set 注意:设置完成后需要退出用户,再注册进入才能生效。 列出所有受支持的变量 db2set -lr 列出当前实例所有已定义的变量 db2set 要列出概要文件注册表中所有定义的注册表变量 db2set -all 列出单个变量 db2set registry_variable_name 更改变量 db2set registry_variable_name=new_value 变量复位为缺省值 db2set -r registry_variable_name db2set DB2CODEPAGE=819 db2set DB2CODEPAGE=1386 db2 -tvf my_sql.sql 三,创建节点配置文件 db2nodes.cfg UNIX 格式:dbpartitionnum(0-999) hostname [logical-port [netname]] WIN 格式:nodenumber hostname computername logical_port netname

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值