DB2启动异常
1、现象、问题描述
DB2在正常使用,启动应用后,发现应用时间超长,最后整个机器都慢下来,相继应用也挂掉2个,DB2也挂掉。等再此启动DB2时,抛出错误
db2inst1@MY-PIM:~> db2start
SQL1072C The database manager resources are in an inconsistent state. The database manager might have been incorrectly terminated, or another application might be using system resources in a way that conflicts with the database manager's use of system resources. System resource cleanup might be required.
2、关键过程、根本原因分析
首先查看DB2运行日志db2diag.log, 只是打印出普通的内存分配失败信息,并没有太多的详细信息。
2010-04-16-21.13.23.690297+480 I667383G301 LEVEL: Event
PID : 21123 TID : 2955699920 PROC : db2start
INSTANCE: db2inst1 NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleIssueStartStop, probe:21
DATA #1 : <preformatted>
Single node instance [0] is starting
2010-04-16-21.13.23.690770+480 I667685G1505 LEVEL: Event
PID : 21123 TID : 2955699920 PROC : db2start
INSTANCE: db2inst1 NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleStartStopSingleNode, probe:1130
DATA #1 : String, 34 bytes
/home/db2inst1/sqllib/adm/db2star2
DATA #2 : Hexdump, 256 bytes
0xBFF80E10 : 2F68 6F6D 652F 6462 3269 6E73 7431 2F73 /home/db2inst1/s
0xBFF80E20 : 716C 6C69 622F 6164 6D2F 6462 3273 7461 qllib/adm/db2sta
0xBFF80E30 : 7232 0000 0000 0000 0000 0000 0000 0000 r2..............
0xBFF80E40 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80E50 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80E60 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80E70 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80E80 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80E90 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80EA0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80EB0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80EC0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80ED0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80EE0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80EF0 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
0xBFF80F00 : 0000 0000 0000 0000 0000 0000 0000 0000 ................
2010-04-16-21.13.24.425926+480 I669191G294 LEVEL: Event
PID : 21123 TID : 2955699920 PROC : db2start
INSTANCE: db2inst1 NODE : 000
FUNCTION: DB2 UDB, base sys utilities, sqleIssueStartStop, probe:190
DATA #1 : <preformatted>
Single node stopped [-1072].
没有太多的信息,就是节点停止错误吗为1072。sqleIssueStartStop表示底层组件,红色部分e代表Database engine processes。也就是数据库引擎出现错误。在回过头来看错误信息,大概意思是数据库资源处理不一致状态,数据库可能被错误的终止,后者是例外一个进程与数据库管理者使用资源冲突。需要进行系统资源清理。
一般出现这样的原因:
DB2 不正确地终止(例如,在基于 UNIX 的系统上,若用 "kill"
命令、而不是用停止数据库管理器命令终止了进程,则可能会发生此情 况) 。
另一应用程序或用户可能已除去了数据库管理器资源(例如,在基于UNIX 的系统上,具有足够特权的用户可能无意中使用 "ipcrm"命令除去了数据库管理器所拥有的「进程间通信」(IPC) 资源)。
另一应用程序的系统资源使用与数据库管理器的系统资源使用相冲突(例如,在基于 UNIX的系统上,另一应用程序可能正在使用数据库管理器用来创建 IPC资源的相同关键词)。
数据库管理器的另一个实例可能正在使用相同的资源。 在基于 UNIX的系统上,若两个实例在不同的文件系统上,且 sqllib目录刚好有同一个 i 节点(i 节点用来获取 IPC关键词),则可能会发生此情况。
用户响应: 可能需要进行资源清理:
除去在该实例标识下运行的所有数据库管理器进程(在基于 UNIX的系统上,可使用 "ps -eaf -u <实例标识>; | grep db2"来列示在该实例标识下运行的所有数据库管理器进程,并使用 "kill -9 <进程标识>;" 命令来除去它们)。
确保没有其它应用程序正在该实例标识下运行,然后除去该实例标识所拥有的所有资源(在基于 UNIX 的系统上,可使用 "ipcs | grep <实例标识>;" 命令列示该实例标识拥有的所有 IPC资源,并使用 "ipcrm -[q|m|s] <id>;" 命令除去它们)。
如果有数据库管理器的另一个实例在运行,则可能会存在 inode冲突。如果您发现两个实例不能同时活动,但是可以单独启动,则可能就是 这种冲突情况。需要更改所使用的 inode以便为其中一个实例生成 IPC 密钥。对于单节点实例,作为实例所有者从 sqllib 目录执行下列操作:
删除 .ftok 文件
rm .ftok
创建新的 .ftok 文件touch .ftok
对于多节点实例,作为实例所有者执行下列操作:
在与 sqllib 相同的级别上创建另一个目录
将所有内容从 sqllib 中移至新目录
删除 sqllib将新目录重命名为 sqllib
经过几个步骤问题解决了!
3、结论、解决方案及效果
在解决类似问题时,应该仔细阅读DB2的错误提示信息,更具信息来做出响应的判断。
4、经验总结预防措施和规范建议
在系统资源不足时,系统有可能会回收DB2的占用资源,导致DB2数据库异常,这样情况下一般进行系统清理就可以解决问题了。
5、备 注
无
分享到:
相关推荐
如果出现异常,应妥善处理,如打印错误信息或抛出异常。 4. 执行SQL操作: 一旦连接成功,你可以创建`Statement`或`PreparedStatement`对象来执行SQL查询、更新等操作。例如: ```java Statement stmt = conn....
1. 错误和异常:当DB2遇到错误或异常时,会详细记录错误代码、错误消息、时间戳以及可能的原因。 2. 操作记录:如数据库的启动、停止、连接和断开等操作都会被记录。 3. 系统警告:监控到系统性能下降、资源耗尽等...
2. **数据库启动与停止**:了解如何启动和停止DB2服务,以及在不同操作系统上的操作差异。 3. **数据库管理**:包括创建、删除和修改数据库的命令,以及如何进行数据库备份和恢复。 4. **用户和权限管理**:设置用户...
以上列出的命令涵盖了DB2数据库管理中的许多常见任务,从基本的数据库管理(如启动和停止实例)到更复杂的任务(如备份和恢复),以及性能调优和监控等方面。掌握这些命令将大大提高DBA和开发人员的工作效率。
DB2是一款由IBM开发的关系数据库管理系统,广泛应用于企业级数据存储和管理。...通过深入学习和理解这些错误代码,开发者和管理员能更好地理解和应对各种数据库异常情况,从而优化数据库性能,减少系统停机时间。
- `db2start`:此命令用于启动DB2数据库管理器。 - **停止数据库**: - `db2stop`:此命令用于停止DB2数据库管理器。 - `db2stop force`:如果在正常情况下无法停止数据库,则可以使用此命令强制停止数据库。 ##...
“ DB2 日常维护指南 , 第 1 部分”具体包括检查管理服务器(DAS)是否启动、检查 DB2 实例是否启动、查看表空间的状态是否正常、检查表的状态是否正常、查看磁盘空间是否有异常、查看存储管理软件、数据库备份、...
2. **启动安装程序**:通过双击`setup.exe`来启动安装程序。安装程序将引导用户完成整个安装过程。 3. **选择安装类型**:在安装向导中,会出现一个界面让用户选择安装的产品类型。在该界面中,应选择“DB2客户机”...
- **检查日志文件**:查看`/usr/IBM/WebSphere/AppServer/logs/server1/SystemOut.log`和`SystemErr.log`中的异常信息,特别是关于数据源连接超时或数据库错误的信息。 - **生成线程转储文件**: - 使用`wsadmin`...
它不是启动单个数据库,而是启动整个DB2服务,使得所有已配置的数据库实例都可以使用。 - `db2stop` 用于停止当前的数据库管理实例。请注意,这将影响到所有在这个实例下的数据库。 2. **restart database** - 这...
热备系统通过心跳检测机制监控主节点状态,并在检测到异常时切换到备节点,整个过程对用户透明,保证服务的连续性。 二、DB2双机热备工作原理 1. 心跳机制:主备节点之间通过网络进行定期通信,检测对方状态。如果...
1. **连接数据库**:首先通过`db2cmd`启动DB2命令行环境,然后使用`db2`命令进入DB2工作环境。管理本地节点和数据库可以通过`uncatalog`进行取消注册,如`uncatalog node`和`uncatalog database`,注册则使用`...
- 如果实例未启动,可以以DB2实例所有者的身份登录,并通过`db2start`命令启动实例。 3. **查看表空间状态是否正常** - **重要性**: 表空间的状态直接影响到数据存储的有效性和安全性。 - **操作方法**: - 对于单...
- 解答:使用`db2start`命令启动DB2服务。 - 问题:如何停止DB2实例? - 解答:使用`db2stop force`命令安全关闭数据库实例。 4. **权限与安全** - 问题:如何为用户分配数据库访问权限? - 解答:通过`db2 ...
不过,实际使用中还可能涉及到异常处理、事务管理、连接池配置等更复杂的操作,这些都是Java数据库编程中的重要知识点。对于大型企业应用,通常会使用连接池如C3P0、HikariCP或Apache DBCP来管理数据库连接,以提高...
在DB2中,如果某个应用程序运行时出现异常无法正常终止,管理员可以使用此命令来强制结束该应用程序的数据库连接。 7. db2 get db cfg: 此命令用于查看数据库的配置信息。管理员在调整了数据库配置后,有时需要验证...