DB2故障总结
DB2故障处理的解决办法

解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。
另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题时也会给出一些好的建议,来避免产生问题。
本文重点介绍实用的方法。
对问题的分类有很多种方法,在本文中我我采用了两种分类方案。
第一种方案是是否有错误码。
即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。
有返回码的错误解决方案是,在db2 CLP中运行db2?SQLXXXX,然后根据对该问题的解释采取相应的解决方案。
对没有错误码的问题,如数据库hang,CPU使用率过高等问题,解决问题的经验将非常重要,在本文中会有详细的说明。
根据错误码解决问题举例(在下文中,再出现需要用这种方法解决问题时将不再重复):如在连接数据库时发生错误db2 connect to sampleSQL0332N There is no available conversion for the source codepage"1386" tothe target code page "819". Reason Code "1". SQLSTATE=57017错误码分为返回码(SQL0332N)和原因码(Reason Code "1"),针对不同的原因码有不同的解决方案运行db2 ? sql0332从输出种可以看到对于reason code 1的解释是……1 source and target code page combination is not supported bythedatabase manager.……所以可以通过设置代码页来解决这个问题db2set db2codepage=1386db2 terminatedb2 connect to sample就可以成功连接了。
db2 表空间不释放

在DB2中,表空间不释放的可能原因有以下几种情况:
1. 表空间中仍然存在活跃的事务或锁定。如果有未提交的事务或锁定仍然存在于表空间中 ,DB2将不会释放该表空间。您可以使用`db2 list applications`命令来查看当前活跃的事务 和锁定,并根据需要进行提交或取消。
2. 表空间中存在未删将 不会释放该表空间。您可以使用`db2 list tables for schema <schema_name>`命令来列出 指定模式下的所有表,并根据需要进行删除操作。
请注意,释放表空间可能会导致数据丢失或其他不可逆的影响,请谨慎操作,并备份数据 以防万一。如果您仍然遇到问题,建议您参考DB2的官方文档或联系DB2的技术支持团队获 取进一步的帮助。
db2 表空间不释放
3. 表空间被设置为不自动调整大小。如果表空间的自动调整大小选项被禁用,DB2将不会 自动释放表空间。您可以使用`db2 get db cfg for <database_name>`命令来查看表空间的 自动调整大小设置,并根据需要进行调整。
4. 表空间被设置为保留状态。如果表空间被设置为保留状态,DB2将不会释放该表空间。 您可以使用`db2 list tablespaces show detail`命令来查看表空间的状态,并根据需要进行 修改。
db2常见错误

DB2 SQLSTATE 消息异常二2008年04月25日星期五 14:51类代码 40 事务回滚表 31. 类代码 40:事务回滚 SQLSTATE 值含义40001 发生了伴随自动回滚的超时或死锁。
40003 语句完整性未知。
40504 由于系统错误导致工作单元被回滚。
40506 由于 SQL 错误,当前事务已回滚。
40507 由于创建索引时发生故障,因此当前事务已回滚。
类代码 42 语法错误或访问规则违例表 32. 类代码 42:语法错误或访问规则违例 SQLSTATE 值含义42501 授权标识不具有对标识对象执行指定操作的特权。
42502 授权标识不具有执行指定操作的特权。
42504 无法从指定的权限名撤销指定的特权、安全标号或免除凭证。
42506 发生所有者授权失败。
42508 不能将指定的数据库特权授予 PUBLIC。
42509 因为 STATICRULES 选项而未授权 SQL 语句。
42511 未能检索 DATALINK 值。
42512 授权标识对受保护列没有访问权。
42514 授权标识不具有对象的所有权需要的特权。
42516 用户映射存储库中的认证失败。
42519 不允许此授权标识对受保护表执行操作。
42520 由于此授权标识没有安全标号,所以无法执行内置函数。
42521 无法将权限或特权授予指定的授权标识。
42522 此授权标识没有凭证,因此无法保护列或者对该列除去保护。
42601 字符、标记或子句无效或丢失。
42602 检测到名称中有无效字符。
42603 检测到未终止的字符串常量。
42604 检测到无效数字或字符串常量。
42605 为标量函数指定的参数的数目无效。
42606 检测到无效十六进制常数。
42607 列函数的操作数无效。
42608 在 VALUES 中使用 NULL 或 DEFAULT 是无效的。
42609 运算符或谓词的所有操作数都是参数标记。
42610 不允许参数标记。
db2常见错误

DB2 SQLSTATE 消息异常二2008年04月25日星期五 14:51类代码 40 事务回滚表 31. 类代码 40:事务回滚 SQLSTATE 值含义40001 发生了伴随自动回滚的超时或死锁。
40003 语句完整性未知。
40504 由于系统错误导致工作单元被回滚。
40506 由于 SQL 错误,当前事务已回滚。
40507 由于创建索引时发生故障,因此当前事务已回滚。
类代码 42 语法错误或访问规则违例表 32. 类代码 42:语法错误或访问规则违例 SQLSTATE 值含义42501 授权标识不具有对标识对象执行指定操作的特权。
42502 授权标识不具有执行指定操作的特权。
42504 无法从指定的权限名撤销指定的特权、安全标号或免除凭证。
42506 发生所有者授权失败。
42508 不能将指定的数据库特权授予 PUBLIC。
42509 因为 STATICRULES 选项而未授权 SQL 语句。
42511 未能检索 DATALINK 值。
42512 授权标识对受保护列没有访问权。
42514 授权标识不具有对象的所有权需要的特权。
42516 用户映射存储库中的认证失败。
42519 不允许此授权标识对受保护表执行操作。
42520 由于此授权标识没有安全标号,所以无法执行内置函数。
42521 无法将权限或特权授予指定的授权标识。
42522 此授权标识没有凭证,因此无法保护列或者对该列除去保护。
42601 字符、标记或子句无效或丢失。
42602 检测到名称中有无效字符。
42603 检测到未终止的字符串常量。
42604 检测到无效数字或字符串常量。
42605 为标量函数指定的参数的数目无效。
42606 检测到无效十六进制常数。
42607 列函数的操作数无效。
42608 在 VALUES 中使用 NULL 或 DEFAULT 是无效的。
42609 运算符或谓词的所有操作数都是参数标记。
42610 不允许参数标记。
DB2故障总结

1.还原数据库之后,客户端无法和服务器主机连接,SQL30081N 检测到通信错误。
正在使用的通信协议:"TCP/IP"。
正在使用的通信API:"SOCKETS"。
检测到错误的位置:"192.168.247.120"。
检测到错误的通信功能:"connect"。
特定于协议的错误代码:"10061"、"*" 和 "*"。
SQLSTATE=08001a.最可能是数据库没启动。
b.可能还原之后端口设置缺失的原因。
肯定和db2 dbm的svcename服务有关。
>>db2 get dbm cfg|grep SVCENAMETCP/IP Service name (SVCENAME) =SSL service name (SSL_SVCENAME)=这里TCP/IP端口设置时缺失了。
需要手动设置。
>>db2set DB2COMM=TCP/IP,NETBIOS设置通信方式>>db2set>>db2 update dbm cfg for tsbdw using svcename 50000DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully更新通信端口>>db2stop>>db2start>>db2 get dbm cfg |grep SVCENAMETCP/IP Service name (SVCENAME) = 50000SSL service name (SSL_SVCENAME) =重连数据库即可成功2.在忘记关闭数据库的情况下重启的服务器会导致实例挂起,数据库起不起来无法执行DB2的各种命令报错SQL6036N START or STOP DATABASE MANAGER command is already in progress.Kill alldb2_kill + ipclean to recycle the instancenote:kill db2 process force。
【数据库】:关于DB2数据库错误提示说明

【数据库】:关于DB2数据库错误提⽰说明SQLSTATE 消息本节列⽰ SQLSTATE 及其含义。
SQLSTATE 是按类代码进⾏分组的;对于⼦代码,请参阅相应的表。
表 2. SQLSTATE 类代码类代码含义要获得⼦代码,参阅...00 完全成功完成表 301 警告表 402 ⽆数据表 507 动态 SQL 错误表 608 连接异常表 709 触发操作异常表 80A 功能部件不受⽀持表 90D ⽬标类型规范⽆效表 100F ⽆效标记表 110K RESIGNAL 语句⽆效表 1220 找不到 CASE 语句的条件表 1321 基数违例表 1422 数据异常表 1523 约束违例表 1624 ⽆效游标状态表 1725 ⽆效事务状态表 1826 ⽆效 SQL 语句标识表 1928 ⽆效权限规范表 212D ⽆效事务终⽌表 222E ⽆效连接名表 2334 ⽆效游标名表 2436 游标灵敏度异常表 2538 外部函数异常表 2639 外部函数调⽤异常表 273B SAVEPOINT ⽆效表 2840 事务回滚表 2942 语法错误或存取规则违例表 3044 WITH CHECK OPTION 违例表 3146 Java DDL 表 3251 ⽆效应⽤程序状态表 3353 ⽆效操作数或不⼀致的规范表 3454 超出 SQL 限制,或超出产品限制表 3555 对象不处于先决条件状态表 3656 其它 SQL 或产品错误表 3757 资源不可⽤或操作员⼲预表 3858 系统错误表 39类代码 00 完全成功完成表 3. 类代码 00:完全成功完成SQLSTATE 值含义00000 操作执⾏成功,并且未产⽣任何类型的警告或异常情况。
类代码 01 警告表 4. 类代码 01:警告SQLSTATE 值含义01002 发⽣ DISCONNECT 错误。
01003 从列函数的⾃变量消去 NULL 值。
01004 字符串值在指定给具有较短长度的另⼀字符串数据类型时被截断。
DB2安装出错及解决方法

DB2安装出错及解决方法1.在安装进度条到80%时,窗口直接关闭解决方法:检查杀软是否关闭,关闭后重装2.在安装进度条到80%时,出现错误提示为具有的端口"50000"的服务名称"DB2C_DB2"而更新系统上的服务文件时出错解决方法:打开C:\WINDOWS\system32\drivers\etc\,找到services用记事本打开写入如下信息DB2_DB2 60000/tcpDB2_DB2_1 60001/tcpDB2_DB2_2 60002/tcpDB2_DB2_END 60003/tcpdb2c_DB2 50000/tcp3.正常安装完毕,打开命令编辑器出现错误提示:DB2JA VIT:RC=9505解决方法:方法总结一:题记:WIN7下装DB2,启动任务中心、控制中心报DB2JA VIT:RC=9505。
解决方案:进入(计算机—>管理—>本地用户和组—>用户)把用户加入到DB2ADMNS或DB2USERS,即可解决。
方法总结二:DB2JA VIT : RC = 9505DB2JA VIT : RC = 9505 & SQL5005C System ErrorOn Windows Vista, if the "DB2JA VIT : RC = 9505" error occurs when DB2 starts. Try this to see if it resolves the issues for now: for the programs (CLP, CMD, CC), right click on the launching shortcut and select "Run as administrator".Upon reboot and logging in after the installation, this error might appear: SQL5005C System Error.To resolve this problem, add your user to the DB2ADMNS or the DB2USERS group.4.找不到SAMPLE正常安装完毕,一般会自动创建SAMPLE数据库,在命令行处理器中输入CONNECT TO SAMPLE时出现以下提示:SQL1013N 找不到数据库别名或数据库名称”SAMPLE”.SQlSTATE=42705解决方法:进入cmd命令提示符界面,然后进行如下操作后(这些命令的操作是删除残留的SAMPLE 数据库),你就可以重建SAMPLE数据库了D:\>;db2cmdD:\>;db2 drop db sampleSQL1013N 找不到数据库别名或数据库名"SAMPLE "。
DB2错误信息(按sqlcode排序)

DB2错误信息(按sqlcode排序)DB2错误信息(按sqlcode排序)sqlcode sqlstate 说明000 00000 SQL语句成功完成01xxx SQL语句成功完成,但是有警告+012 01545 未限定的列名被解释为一个有相互关系的引用+098 01568 动态SQL语句用分号结束+100 02000 没有找到满足SQL语句的行+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统+111 01590 为2型索引设置了SUBPAGES语句+117 01525 要插入的值的个数不等于被插入表的列数+162 01514 指定的表空间被置为检查挂起状态+203 01552 使用非唯一的名字来解决命名的限定列+204 01532 命名的对象未在DB2中定义+206 01533 命名的列不在SQL语句中指定的任何表中存在+218 01537 因为SQL语句引用一个远程对象,不能为该SQL语句执行EXPLAIN+219 01532 命名的PLAN TABLE不存在+220 01546 不正确定义PLAN TABLE,检查命名列的定义+236 01005 SQLDA中的SQLN的值至少应于所描述的列的个数一样大+237 01594 至少有一个被描述的列应该是单值类型,因此扩展的SQLVAR条目需要另外的空间+238 01005 至少应有一个被描述的列是一个LOB,因此扩展的SQLVAR条目需要另外的空间+239 01005 至少应有一个被描述的列应是单值类型,因此扩展的SQLVAR条目需要另外的空间+304 01515 该值不能被分配给宿主变量,因为该值不再数据类型的范围之内+331 01520 不能被翻译的字符串,因此被设置为NULL+339 01569 由于与DB2 2.2版本的子系统连接,所以可能存在字符转换问题+394 01629 使用优化提示来选择访问路径+395 01628 设置了无效的优化提示,原因代码指定了为什么,忽略优化提示+402 01521 未知的位置+403 01522 本地不存在CREAT ALIAS对象+434 01608 在DB2未来发布的版本中将不支持指定的特性,IBM建议你停止使用这些特性+445 01004 值被CAST函数截取+462 01Hxx 由用户定义的函数或存储过程发出的警告+464 01609 命名的存储过程超出了它可能返回的查询结果集的个数限制+466 01610 指定由命名的存储过程返回的查询结果集的个数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.还原数据库之后,客户端无法和服务器主机连接,
SQL30081N 检测到通信错误。
正在使用的通信协议:"TCP/IP"。
正在使用的通信API:"SOCKETS"。
检测到错误的位置:"192.168.247.120"。
检测到错误的通信功能:"connect"。
特定于协议的错误代码:"10061"、"*" 和 "*"。
SQLSTATE=08001
a.最可能是数据库没启动。
b.可能还原之后端口设置缺失的原因。
肯定和db2 dbm的svcename服务有关。
>>db2 get dbm cfg|grep SVCENAME
TCP/IP Service name (SVCENAME) =
SSL service name (SSL_SVCENAME)=
这里TCP/IP端口设置时缺失了。
需要手动设置。
>>db2set DB2COMM=TCP/IP,NETBIOS
设置通信方式
>>db2set
>>db2 update dbm cfg for tsbdw using svcename 50000
DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed successfully
更新通信端口
>>db2stop
>>db2start
>>db2 get dbm cfg |grep SVCENAME
TCP/IP Service name (SVCENAME) = 50000
SSL service name (SSL_SVCENAME) =
重连数据库即可成功
2.在忘记关闭数据库的情况下重启的服务器会导致实例挂起,数据库起不起来无法执行DB2的各种命令报错
SQL6036N START or STOP DATABASE MANAGER command is already in progress.
Kill all
db2_kill + ipclean to recycle the instance
note:kill db2 process force。
(慎用,少用)
3.查找死锁进程
db2 get snapshot for locks pzbdw
db2 list applications
授权标识程序应用程序名应用程序句柄应用程序标识数据库名称代理序号
4.数据库自动护功能不能启动
A. THE DB2ADMIN has not start。
Login on the service as db2das by SSH,execute db2admin start.启动自动维护功能。
B.display some error about “codepage”。
Set the codepage=1386 ,do it like ―db2set codepage=1386‖
5.linux free the cache
/proc is a virtual file system,可以通过对他读写与kernel实体间进行通信手段。
The detail path / proc/sys/vm/drop_caches
Cat / proc/sys/vm/drop_caches
Default is 0
Sync
Execute the Sync 。
insure the integrity(完整) of file system.
Echo 3>/ proc/sys/vm/drop_caches
00 2 * * * sync && echo “3” >/proc/sys/vm/drop_caches
Add to timed task(定时),execute it at 2 am everyday。
0 –not free
1 –free then cache of page(释放页缓存)
2—free dentries 和inodes
3 –free all the cache
6.DB2 local users have no private of load and so on
Db2 connect to dedb
grant dbadm on database to user db2admin
set then firwall(close the firewall)
forever
Check the firewall
# chkconfig --list|grep fire
SuSEfirewall2_init 0:off 1:off 2:off 3:on 4:on 5:on 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:on 4:on 5:on 6:off
关闭
linux-ot1w:/home/macula/download/hadoop-0.20.2/conf # chkconfig SuSEfirewall2_setup off
关闭
linux-ot1w:/home/macula/download/hadoop-0.20.2/conf # chkconfig SuSEfirewall2_init off
linux-ot1w:/home/macula/download/hadoop-0.20.2/conf # chkconfig --list|grep fire
Linux’s environment variable
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:$HOME/bin
Export PATH
Linux 启动FTP报错,或者无法启动ftp
1、open yast
2、open then network service,find the xinetd
3、 check the FTP‟s service condition(about 2 as usual in SuSE),if the FTP service had opened,then close all then FTP service,choice a FTP service,then choice Eidt,delete the …x‟ of active,it will be close,then it display like “--”。
4. restart then ftp service
ftp登录报错问题
/etc/ftpuser
It is all the user who can not login on the ftp. So you can delete the user who you wanna login on
仓库网络配置
/etc/ hosts.allow add the service IP
Rar for linux setup following :
Tar the file rar for linux and then
# cd rar
-------------------------------------------------- x file
# make
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
-------------------------------------------------- install and compile then file # make install
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
-------------------------------------------------- execute rar’s help orders
# rar --help
rar: /lib/libc.so.6: version `GLIBC_2.7' not found (required by rar)
-------------------------------------------------- add then global orders
# cp -f rar_static /usr/local/bin/rar
cp: overwrite `/usr/local/bin/rar'? y。