Troubleshooting
Problem
大きな表へのデータの挿入や更新が SQL0659N (表オブジェクトの最大サイズを超えました) で失敗するようになることがあります。
Cause
表の各オブジェクトは仕様上の最大値 (制限値) があります。これに達するとそのオブジェクトにはデータを追加できません。
LOB の更新は削除と挿入に変換されるため、LOB オブジェクトが最大値に達すると更新もできなくなります。
オブジェクトの制限値は以下のページを参照してください。
SQL および XML の制限値
たとえば、4KB ページ・サイズの REGULAR 表スペースの表 (データ) オブジェクトや索引オブジェクトの制限値は 64GB です。
また、ページ・サイズにかかわらず、LOB オブジェクトの制限値は 4TB です。
Diagnosing The Problem
オブジェクトが制限値に達した場合、db2diag.log に以下のような SQLD_RC_MAX_OBJ_SIZE のログが記録されます。
表や索引オブジェクトが制限値に達した場合
2022-05-22-02.38.42.011021-180 E331759E650 LEVEL: Error
PID : 28277 TID : 140698535880 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-33757 APPID: *LOCAL.db2inst1.220529202027
AUTHID : APPUSER HOSTNAME: db2serv
EDUID : 7646 EDUNAME : db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, data management, sqldCreateNewAppendCache, probe:1
MESSAGE : ADM5511E The object "DATA" with id "320" in tablespace "3" for table
"DB2INST1.T1" has reached the maximum possible size.
2022-05-22-02.38.42.012212-180 I332410E1474 LEVEL: Error
PID : 28277 TID : 140698535880 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-33757 APPID: *LOCAL.db2inst1.220529202027
AUTHID : APPUSER HOSTNAME: db2serv
EDUID : 7646 EDUNAME : db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, buffer pool services, sqlbExtendObject, probe:444
MESSAGE : ZRC=0x8404000A=-2080112630=SQLD_RC_MAX_OBJ_SIZE
"ARCHITECTURAL PAGE LIMIT REACHED"
DIA8710E Maximum table size was reached.
LOB オブジェクトが 4TB の制限値に達した場合
2021-07-08-10.40.06.137289-240 I1117916E687 LEVEL: Error
PID : 18346 TID : 13981569770240 PROC : db2sysc 0
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-9131 APPID: *LOCAL.db2inst1.210708103128
AUTHID : APPUSER HOSTNAME: db2serv
EDUID : 7471 EDUNAME: db2agent (SAMPLE) 0
FUNCTION: DB2 UDB, lob manager, sqldx_expand_bspace, probe:289
MESSAGE : ZRC=0x8404000A=-2080112630=SQLD_RC_MAX_OBJ_SIZE
"ARCHITECTURAL PAGE LIMIT REACHED"
DIA8710E Maximum table size was reached.
DATA #1 : Offset into LOB object (in 1K), PD_TYPE_LOB_OBJADDR, 4 bytes
4294966528
データベースの各表に所属する各オブジェクトのサイズは以下の SQL で一覧できます。(単位 KB)
SELECT TABSCHEMA,TABNAME,DATA_PARTITION_ID,DATA_OBJECT_P_SIZE,INDEX_OBJECT_P_SIZE,LONG_OBJECT_P_SIZE,LOB_OBJECT_P_SIZE,XML_OBJECT_P_SIZE,COL_OBJECT_P_SIZE FROM SYSIBMADM.ADMINTABINFO
Resolving The Problem
いずれの場合でも表から不要なデータを削除して問題を一時的に回避できます。
表から十分な量のデータを削除できない場合、以下のいずれかの対策を検討してください。
- より大きいページ・サイズの表スペースに表を移動 (ページ・サイズの制限値に達した場合のみ)
たとえば、4KB ページ・サイズの制限値に抵触した場合、これより大きいページ・サイズの表スペースに表を移動することで問題を解決できます。表を移動する方法は以下のページを参照してください。
[Db2] 表をコピーする方法
- 表をパーティションに分割
制限値はオブジェクトごとなので、複数のオブジェクトからなるパーティション表へ表を分割することで制限値を緩和できます。ADMIN_MOVE_TABLE プロシージャーを使って、既存の表をパーティション表に分割できます。
例db2 "CALL SYSPROC.ADMIN_MOVE_TABLE ('<tabschema>', '<tabname>', '', '', '', '', '', '(<part_key>) (<range_clause>)', '', '', 'MOVE')"
- 索引のドロップ (ADM5511E で索引オブジェクトが制限値に達した場合のみ)
ADM5511E でオブジェクト・タイプが INDEX の場合、表から不要な索引をドロップして問題を解消できます。
運用上の考慮点
- 表スペースに対して極端に小さいエクステント・サイズを指定している場合、オブジェクトの制限値に達する前にエクステント数の制限値に達して SQL0659N が返る場合があります。エクステントの制限に達した場合は以下のようなエラーが記録されます。
2020-10-13-13.51.41.888680+540 I278070A567 LEVEL: Severe PID : 25886756 TID : 6719 PROC : db2sysc 0 INSTANCE: db2inst1 NODE : 000 HOSTNAME: db2serv EDUID : 6719 EDUNAME: db2pfchr (SAMPLE) 0 FUNCTION: DB2 UDB, buffer pool services, sqlbDMScheckObjAlloc, probe:4943 MESSAGE : ZRC=0x8404000A=-2080112630=SQLD_RC_MAX_OBJ_SIZE "ARCHITECTURAL PAGE LIMIT REACHED" DIA8710E Maximum table size was reached. DATA #1 : <preformatted> Table space 3 cannot address extent 429399184 in an object
Document Location
Worldwide
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlWAAU","label":"Database Objects-\u003ELOBS"},{"code":"a8m500000008PlYAAU","label":"Database Objects-\u003ETables"},{"code":"a8m500000008PlZAAU","label":"Database Objects-\u003ETablespaces"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
16 November 2023
UID
ibm17077377