ERRORCODE=4228, SQLSTATE=null

摘要:
同事反馈:[jcc][t4][102][10040][3.57.82]非原子批处理失败。尽管已提交批处理,但该批处理的成员至少发生了一个异常。使用getNextException()检索已批处理的特定元素的异常。ERRORCODE=-4228,SQLSTATE=null查看db2diag.log日志:2012-11-20-10.00.33.551000+480E27658279F1143LEVEL:ErrorPID:2276TID:3796PROC:db2syscs。示例:DB2NODE:000DB:NCTESTAPPHDL:0-49794APPID:20.10.80.247.48084.121120015251AUTHID:NCTESTEDUID:3796DUNAME:db2agent0FUNCTION:DB2UDB,buffertools服务,sqlbAllocate Extent,probe:840MESSAGE:ADM6044EDMS表空间“NNC_INDEX01”已满,如果这是自动保存或自动存储DMS表,可能已达到最大表空间大小,但现有容器或存储路径不会再增长。通过使用ALTERTABLESPACESQL语句添加新容器或扩展现有容器,可以将其他空间添加到表空间。如果这是自动存储或自动存储DMS表空间,则可以通过将容器添加到自动存储空间或将新存储路径添加到自动存储器数据库来添加额外的空间。2012-11-20-10.00.33.551000+480I27659424F1147LEVEL:警告PID:2276TID:3796PROC:db2syscs.exeINSTANCE:DB2NODE:000DB:NCTESTAPPHDL:0-49794APPID:20.10.80.247.48084.121120015251AUTHID:NCTESTEDUID:3796DUNAME:db2agent0FUNCTION:DB2UDB,bufferpoolservices,sqlbObtainDataExtent,探针:800MESSAGE:ZRC=0x8502021=-2063466463=SQLB_ END_ OF_ CONTAINER“DMSContainerspacefull”数据#1:对象描述符,PD_ TYPE_ SQLB_ OBJECT_ DESC,88bytesObj:{pool:5;obj:11020;类型:1}父级={4;1360}lifeLSN:0000000005AC4D6Etid:000extentAnchor:78560initEmpPages:0poolPage0:0poolflags:102objectState:27lastSMP:0pageSize:4096extentSize:32bufferPoolID:2partialHash:705429509bufferPool:0x0000001a7837a0pdef:0x00000001a804160从上述错误中可以看出,NNC_INDEX01表空间已满。查看NNC_INDEX01表空间用法:db2=˃listtablespaceshowdetail发现可用页面数已更改为0。要查看错误,需要绑定变量+Batch。insertintoIC_ATP_F。该表具有主键索引,索引表空间必须用于批量插入。
同事反馈问题:
[jcc][t4][102][10040][3.57.82] 非原子批处理出现故障。虽然已经提交了批处理,但是该批处理的某个成员至少发生了一个异常。
使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null

查看db2diag.log日志:
2012-11-20-10.00.33.551000+480 E27658279F1143 LEVEL: Error
PID : 2276 TID : 3796 PROC : db2syscs.exe
INSTANCE: DB2 NODE : 000 DB : NCTEST
APPHDL : 0-49794 APPID: 20.10.80.247.48084.121120015251
AUTHID : NCTEST
EDUID : 3796 EDUNAME: db2agent (NCTEST) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbAllocateExtent, probe:840
MESSAGE : ADM6044E The DMS table space "NNC_INDEX01" (ID "5") is full. If
this is an autoresize or automatic storage DMS tablespace, the
maximum table space size may have been reached or the existing
containers or storage paths cannot grow any more. Additional space
can be added to the table space by either adding new containers or
extending existing ones using the ALTER TABLESPACE SQL statement. If
this is an autoresize or automatic storage DMS table space,
additional space can be added by adding containers to an autoresize
table space or by adding new storage paths to an automatic storage
database.
2012-11-20-10.00.33.551000+480 I27659424F1147     LEVEL: Warning
PID : 2276 TID : 3796 PROC : db2syscs.exe
INSTANCE: DB2 NODE : 000 DB : NCTEST
APPHDL : 0-49794 APPID: 20.10.80.247.48084.121120015251
AUTHID : NCTEST
EDUID : 3796 EDUNAME: db2agent (NCTEST) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbObtainDataExtent, probe:800
MESSAGE : ZRC=0x85020021=-2063466463=SQLB_END_OF_CONTAINER
"DMS Container space full"
DATA #1 : Object descriptor, PD_TYPE_SQLB_OBJECT_DESC, 88 bytes
Obj: {pool:5;obj:11020;type:1} Parent={4;1360}
lifeLSN: 000000005AAC4D6E
tid: 0 0 0
extentAnchor: 78560
initEmpPages: 0
poolPage0: 0
poolflags: 102
objectState: 27
lastSMP: 0
pageSize: 4096
extentSize: 32
bufferPoolID: 2
partialHash: 705429509
bufferPool: 0x000000001a7837a0
pdef: 0x000000001a804160
从上述错误来看,是表空间NNC_INDEX01表空间被占满了。
看下NNC_INDEX01表空间使用情况:
db2 => list tablespaces show detail
发现可用页数已经变成了0。
查看报错的地方,是一个绑定变量+Batch的操作。insert into IC_ATP_F,这个表有一个主键索引,而批量插入的时候肯定会用到索引表空间。
添加一个容器,alter tablespace nnc_index01 add (file '\db2\nnc_index01_2' 204800)
再次执行,问题解决。
 

免责声明:文章转载自《ERRORCODE=4228, SQLSTATE=null》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇未能加载文件或程序集“”或它的某一个依赖项。系统找不到指定的文件postgreSQL安装使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Oracle】Oracle表空间数据文件大小设置

Oracle数据文件默认大小上限是32G,如果要数据文件大于32G,需要在数据库创建之初就设置好。 表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件的最大值...

ORACLE实例恢复过程详细分析--使用dump、BBED等多种工具结合分析

---友情提示,内容较多,可以从博文左上的+目录选择小节方便阅读。  实验思路:  --实验相关TRACE文件:http://download.csdn.net/detail/q947817003/6646723 1.数据库OPEN,,做DML操作不提交,查看检查点。 2.SHUTDOWN ABORT并重启到MOUNT并查询检查点 3....

oracle 导入问题(imp)

oracle 导入问题(imp) 1.密码过期 [oracle @oracle ~]$ imp graph/graph@orcl file=/tmp/neo4j.dmp full=y; 解决方案: 使用plsql登陆,弹出窗口重新设置密码即可。 2.无导入权限 解决方案: [oracle @oracle ~]$ sqlplus '/as sysdba...

oracle11g数据库导入、导出操作

一、在linux系统中导入数据库。 1.linux中先输入 su - oracle下切换到oracle用户。然后以sysdba打开sqlplus:sqlplus / as sysdba 然后创建表空间和用户如下2.首先新建用户和表空间(表空间大小和自增大小按自己需求调整):新建表空间和临时表空间create tablespace XXX_DATAloggi...

oracle sqlplus及常用sql语句

常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tablespace 表空间名字 filedata 'd:db.dbf' size 20m uniform size 128k;说明:创建一个20M的表空间,且表空间的区...

oracle:重装操作系统后,如何利用原有oracle表空间文件还原数据库 挪威

说明: 原oracle安装目录,D:\oracle\ 备份oracle目录,   X:\oracle\ 步骤: 一、重装oracle,安装目录要与原来的安装目录相同,即为D:\oracle\ 二、创建数据库时,确保ORACLE_SID与原数据库相同,此处ORACLE_SID = ORACLE ,并且创建好表空间信息,也与原数据库相同     (如果表空间不...