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 指定由命名的存储过程返回的查询结果集的个数。
关于DB2常见性能问题的解决参考

关于DB2常见性能问题的解决参考关于DB2常见性能问题的解决参考最近⼀个项⽬在做性能测试时,在并发达到⼀定数后,DB2数据库资源占⽤很⼤,必须对数据库和应⽤进⾏优化。
该项⽬要求性能指标(CPU<70%,内存占⽤<70%,IO<60),按照⽹友介绍的经验,分别针对CPU、内存、IO进⾏问题排查和分析。
现将过程总结如下:⼀、CPU分析通过资源监视器查看⼀个或多个CPU 的使⽤率,确定确实存在CPU使⽤率⼀直居⾼不下的情况。
1、⾸先排除掉存在死循环的情况。
(并发下来后,CPU使⽤率会降下来)。
2、DB2占⽤CPU的主要⾏为有:语句编译、⼤量排序、DB2实⽤⼯具运⾏。
3、先查看是否有⼤量的语句编译:通过DB2的表函数MON_GET_WORKLOAD,可以查看到:select varchar(workload_name,30) asworkload_name,sum(total_cpu_time),sum(total_compile_proc_time),sum(act_rqsts_total),um(total_compilations),sum(total_act_time), sum(pkg_cache_inserts), sum(pkg_cache_lookups) fromTABLE(MON_GET_WORKLOAD('',-2)) as T group by workload_name如果compile_proc_time ⾼于5-10% 的total_cpu_time,并且pkg_cache_inserts/pkg_cache_lookups ⾼于4-5%,则数据库在语句编译上花费了太多的时间。
必须调⼤语句集中器STMT_CONC的⼤⼩。
采⽤逐步调⼤的⽅式来跟踪效果。
4、查看是否存在⼤量的SORT⾸先通过db2的快照,看是否存在⼤量的sort溢出Sort overflows/Total sorts * 100% 表⽰排序溢出百分⽐,通常情况下,该值应该⼩于3。
DB2中表损坏问题和db2dart工具的使用

DB2中表损坏问题和db2dart工具的使用这几天需要从一个备份集中恢复一个数据库,恢复后发现问题很多,本身这个备份中可能有存在不完整的log,处理完一个个问题后发现还是有表损坏,在db2diag中其日志信息如下,倒是很清楚的看到损坏对象:DB2数据库坏块代码DB2数据库性能调整和优化(第1、2版) PDFDB2数据库性能优化介绍<code type="section" width="100%"><heading refname=Listing 2" type="code">常规表的DDL语句示例</heading>2014-04-27-05.06.42.071142-240 I36137A535 LEVEL: SeverePID : 14680376 TID : 13881 PROC : db2sysc 0 INSTANCE: db2rilo NODE : 000 DB : WEBAPPHDL : 0-40 APPID: 9.32.130.62.37608.140427090600AUTHID : DEVPRCBKEDUID : 13881 EDUNAME: db2agent (WEB) 0FUNCTION: DB2 UDB, data management, sqldFetchDirect, probe:4603RETCODE : ZRC=0x87040001=-2029780991=SQLD_BADPAGE "Bad Data Page"DIA8500C A data file error has occurred, record id is "".2014-04-27-05.06.42.071901-240 I36673A555 LEVEL: SeverePID : 14680376 TID : 13881 PROC : db2sysc 0 INSTANCE: db2rilo NODE : 000 DB : WEBAPPHDL : 0-40 APPID: 9.32.130.62.37608.140427090600AUTHID : DEVPRCBKEDUID : 13881 EDUNAME: db2agent (WEB) 0FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0MESSAGE : TABLESPACE ATTRIBUTES:DATA #1 : String, 73 bytesTablespace Seed = 5, Bufferpool ID = 7, Extent Size = 16, Page Size = 8k2014-04-27-05.06.42.072336-240 I37229A535 LEVEL: SeverePID : 14680376 TID : 13881 PROC : db2sysc 0 INSTANCE: db2rilo NODE : 000 DB : WEBAPPHDL : 0-40 APPID: 9.32.130.62.37608.140427090600AUTHID : DEVPRCBKEDUID : 13881 EDUNAME: db2agent (WEB) 0FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0MESSAGE : PAGE OBJECT IDENTIFIERS:DATA #1 : String, 51 bytesTablespace ID = 5, Object ID = 72, Object Type = 02014-04-27-05.06.42.072612-240 I37765A511 LEVEL: SeverePID : 14680376 TID : 13881 PROC : db2sysc 0 INSTANCE: db2rilo NODE : 000 DB : WEBAPPHDL : 0-40 APPID: 9.32.130.62.37608.140427090600AUTHID : DEVPRCBKEDUID : 13881 EDUNAME: db2agent (WEB) 0FUNCTION: DB2 UDB, trace services, sqlt_logerr_string(secondary logging fu, probe:0MESSAGE : PAGE NUMBERS:DATA #1 : String, 38 bytesObj Page = 15430, Pool Page = 10613982014-04-27-05.06.42.072878-240 I38277A485 LEVEL: SeverePID : 14680376 TID : 13881 PROC : db2sysc 0INSTANCE: db2rilo NODE : 000 DB : WEBAPPHDL : 0-40 APPID: 9.32.130.62.37608.140427090600AUTHID : DEVPRCBKEDUID : 13881 EDUNAME: db2agent (WEB) 0FUNCTION: DB2 UDB, trace services, sqlt_logerr_string (secondary logging fu, probe:0MESSAGE : lifeLSN:DATA #1 : String, 17 bytes000000003CA9A178分析:对于DB2中数据库出现坏块问题,如果没有使用该表时候,并不会影响数据库的正常使用,一旦有访问该表的会话,那么会造成整个数据库实例宕机,从而影响业务的应用,所以问题比较棘手,对于此类问题没有很好的解决,唯独可以通过db2dart离线方式将表中的数据导出,并且将表mark为unvaliable后重建即可,db2dart只开放了部分免费功能,如标记索引,导出数据,表空间高水位线处理及一些查看功能,但是对于标记表失效需要客服提供密码才可以使用。
关于DB2数据库问题故障分析

----创建用户临时表空间
db2 "create USER temporary tablespace ORCLSP_USER_TMP pagesize 8k managed by system using ('/home/db2inst1/temp')"
----创建BUFFER
db2 "create bufferpool ker pagesize 8k '/home/db2inst1/' "
DB20000I The SQL command completed successfully.
-----创建系统临时表空间并指定BUFFER
db2 "create system temporary tablespace temp pagesize 8k bufferpool zy"
------断点恢复
1、首先备份sample1数据库,查看归档日志的路径,看看最后归档的时间。(一般最后最后归档的时间的那个是坏的,前一个因该可以用例2011-06-08-01.21.25.000000。)
2、将sample1数据库的活动日志文件拷贝到一个新的目录下(例/home/db2inst1/archivelogs/db2inst1/ORCL)。
[db2inst1@localhost $]$ db2move orcl import -u db2inst1 -p db2inst1 >db2moveout.log
说明:实施数据迁移的前提是1、某个非关键业务的表发生错误,导致数据库不能正常操作。
2、凭个人经验"-901"一般是除坏表外其它表数据能导出来,可实现迁移。而"-1224",数据库损坏严重,一般导到坏表时,数据库就自动断开连接了,其它表基本上导不出来,不能进行迁移。
DB2报错参考解决方案

DB2报错:SQL10007N Message "-1390" could not be retrieved. Reason code:"3"2009-09-22 16:07问题现象:某人安装完DB2 9.7以后,发现db2inst1用户下无法运行一切db2命令,如果跑到d 会给出标题内的错误提示。
分析:开始以为是传统的PATH变量抽风了,后来发现不是。
偶然发现db2ilist可以运行,只是结没有建立instance造成的。
解决:回到root用户,运行db2icrt命令去创建instance,再切回db2inst,一切ok。
当然,不以下是引用了某位兄弟博客里的关于db2 创建instance的,蛮详细的这个问题解决了。
刚接触DB2不久,不知道要运行db2profile正确运行后,OK#find /home -name db2profile搜索出这个文件的路径以后,我的显示如下/home/db2inst1/sqllib/db2profile然后我执行一下这个语句#. /home/db2inst1/sqllib/db2profile这样上面出现的问题就可以解决了,这个文件涉及到了DB2数据库环境变量的问题,在具体的原因我也说不好,请大家在到网上查阅详细资-------------------------------------------------------------------------------------使用db2icrt 创建实例DB2® 实例是用来存储数据和运行应用程序的一种环境。
使用db2icrt 命令来创建实例。
在Linux® 或UNIX® 操作系统上,必须具有root 用户权限。
在Windows® 操作系统上,必须以本地管理员登录。
要使用db2icrt 创建实例:1. 使用适当权限登录。
2. 运行db2icrt 命令。
db2 无效的命令行参数

db2 无效的命令行参数db2是一种常用的数据库管理系统,它提供了丰富的命令行参数供用户进行数据库操作和管理。
然而,在实际使用过程中,有时候会遇到一些无效的命令行参数,这可能会导致操作失败或者产生意想不到的结果。
本文将针对db2的无效命令行参数进行介绍和分析,以帮助用户更好地理解和使用db2。
一、无效的命令行参数是什么?无效的命令行参数指的是在使用db2命令时,输入了不被db2识别或者不支持的参数。
这些参数可能是拼写错误、格式错误、或者是不存在的参数。
无效的命令行参数会导致db2无法正确解析用户的命令,从而无法执行相应的操作。
二、无效的命令行参数的表现形式在使用db2命令时,如果输入了无效的命令行参数,通常会出现以下几种表现形式:1. 命令行提示错误信息:当输入了无效的命令行参数时,db2会提示相应的错误信息,告诉用户输入的参数无效。
例如,当输入了一个不存在的参数时,db2可能会显示类似于“无效的参数”、“未知的参数”等错误信息。
2. 命令行无响应:有时候,当输入了无效的命令行参数时,db2可能会直接忽略这些参数,并且不会给出任何提示。
这种情况下,用户可能会发现命令行没有任何响应,无法得知是否执行成功。
3. 命令行执行异常:在某些情况下,输入无效的命令行参数可能会导致命令行执行异常。
例如,当输入了一个需要指定参数值但未提供的参数时,db2可能会报错并中止执行。
三、常见的无效的命令行参数1. 拼写错误:在输入命令行参数时,如果拼写错误,db2将无法识别这些参数。
例如,当输入了一个正确的参数名但拼写错误时,db2会提示该参数不存在。
2. 格式错误:命令行参数通常有一定的格式要求,如果格式错误,db2将无法解析这些参数。
例如,当输入了一个需要指定参数值但未提供值的参数时,db2会报错。
3. 无效的参数:有时候,用户可能会尝试输入一些不被db2支持的参数。
这些参数可能是过时的、不再被支持的,或者是用户自定义的参数。
db2错误总结

db2 => connect to ESBDBDB
SQL0956C Notenough storage is available in the database heap to process the statement. SQLSTATE=57011
db2 => ?sql0956cSQL0956C数据库堆中没有足够的存储器可用来处理语句。说明:使用了数据库的所有可用内存。不能处理该语句。用户响应:接收到此消息时,终止应用程序。增大数据库配置参数dbheap的值以允许更大的数据库堆。如果I/O服务器数接近最高限制,那么减小此数目可能也会有所帮助。如果dbheap数据库配置参数已设置为AUTOMATIC,您将需要增大DATABASE_MEMORY数据库配置设置的值,或者增大INSTANCE_MEMORY数据库管理器配置设置的值。更新配置参数时,建议更改这些参数的值。每次将它们增大当前大小的10%,直到错误情况得到解决为止。要更改dbheap,请输入一个类似如下的命令,该命令对数据库样本将dbheap设置为2400:db2 UPDATE DB CFG FOR sample USING DBHEAP 2400要在已与数据库断开连接的情况下更改dbheap,请输入一个类似如下的命令:db2 CONNECT RESET;db2 UPDATE DB CFG FOR sample USING DBHEAP 2400如果所有相关联的配置参数都设置为AUTOMATIC或COMPUTED,那么实例的内存需求将超过机器上配置的内存量。可以采用的解决方案包括减少数据库工作负载、启用连接集中器功能部件或者向机器添加更多内存。
序号错误描述处源自步骤备注1命令1:db2 => db2start
SQL1032N Nostart database manager command was issued. SQLSTATE=57019
db2中报SQLCODE=-530,SQLSTATE=23503错误

db2中报SQLCODE=-530,SQLSTATE=23503错误
今天在写⼀个增加操作时,报错信息如下:SQLCODE=-530, SQLSTATE=23503,该sqlcode说明:“对特定的约束名指定了⽆效的外健值”。
项⽬中⽤的框架是SSH,新增的主对象有多个外键,在新增时,我是根据id或name在数据库中找到外键对象,赋给该主对象的外键。
问题是出在当根据id或name没有找到外键对象时,就不赋值,但此时该主对象的外键对象不为空,不知道在哪⾥new的,所以错误就在此处,该外键对象不是持久化对象,所以报错,我的解决⽅法是在根据id没有找到对象时,给外键对象赋值为null。
当然这⾥前提是该外键可以为空。
db2存储 平方 符号乱码

DB2存储中可能出现平方符号乱码的问题,这可能会给用户带来一些困扰。
下面我们将详细介绍这个问题及解决办法。
一、问题描述在使用DB2存储时,有时会发现平方符号显示为乱码的情况。
这种情况可能出现在数据的存储、读取或者展示过程中。
出现这种问题的原因有很多,可能是字符编码的不一致,也可能是数据库配置的问题,又或者是程序处理的不当等。
无论出现这种问题的具体原因是什么,我们都需要找到相应的解决办法来解决这个问题。
二、解决步骤1. 检查字符编码我们需要检查字符编码是否一致。
在数据存储和读取时,字符编码的一致性非常重要。
如果字符编码不一致,就会导致数据显示出现乱码。
我们需要确保在整个数据存储和读取的过程中,字符编码都是一致的。
可以通过检查数据库、表和字段的字符集等方式来确认字符编码的一致性。
2. 检查数据库配置我们需要检查数据库的配置。
在DB2中,配置项较多,有些配置项可能会影响到数据的存储和读取。
我们需要检查数据库的配置项,特别是与字符编码相关的配置项,确保这些配置项是正确的。
如果发现配置有误,需要及时进行调整。
3. 检查程序处理我们需要检查程序处理是否正确。
有时候平方符号乱码的问题可能是由程序处理不当引起的。
在数据读取和展示过程中,程序需要正确处理特殊字符,否则就会导致乱码的出现。
我们需要对程序进行仔细的检查,确保程序能够正确处理特殊字符。
三、总结在使用DB2存储时,平方符号乱码的问题可能会影响数据的展示,给用户带来困扰。
为了解决这个问题,我们需要检查字符编码、数据库配置和程序处理等方面,找到问题的根源并及时进行处理。
只有确保数据存储、读取和展示的每个环节都正确无误,才能够避免出现平方符号乱码的问题。
希望本文介绍的解决步骤能够帮助读者解决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 超过最大连接请求数当我们在使用DB2数据库时,有时候会遇到一个问题:超过最大连接请求数。
这个问题是由于数据库连接数达到了DB2所设定的最大连接请求数限制而导致的。
在这种情况下,我们需要了解一些相关的知识和解决方法。
首先,我们需要明白什么是数据库连接数。
数据库连接数是指数据库服务器同时能够接受的连接请求数量。
当数据库连接数超过了设定的最大连接请求数限制时,就会出现“超过最大连接请求数”的错误。
解决这个问题的方法有几种。
首先,我们可以通过查看数据库的当前连接数和最大连接数来确认是否超过了限制。
我们可以使用以下SQL语句来查看当前连接数:```select count(*) as total_connectionsfrom sysibmadm.snapdb;```然后,我们可以通过以下SQL语句来查看数据库的最大连接数限制:```select dbcfg('MAXAPPLS') as max_connectionsfrom sysibmadm.dbcfg;```如果我们发现数据库连接数已经超过了最大连接请求数限制,我们可以采取以下几种方法来解决这个问题:1. 增加最大连接请求数限制:我们可以通过修改数据库配置参数来增加最大连接请求数限制。
我们可以使用以下SQL语句来修改最大连接请求数限制:```update db cfg for <database_name> using MAXAPPLS <new_max_connections>;```2. 优化连接池:我们可以通过优化连接池来减少连接数,提高连接的重用率。
我们可以将连接的最大寿命和空闲连接的回收时间设置得更合理,以减少连接数。
3. 检查应用程序连接数:我们可以检查应用程序的连接数是否过多,如果是,我们可以优化应用程序的连接管理,减少连接数。
总的来说,当我们遇到“超过最大连接请求数”的问题时,我们可以通过查看连接数、修改最大连接请求数限制、优化连接池和检查应用程序连接数来解决这个问题。
- 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。