在 db2diag.log 的 Db2/Linux_x86_64 上,我经常看到关于 CATALOGCACHE_SZ 参数太小的警告,例如:
2022-12-02-14.40.53.536711+060 E5979903E769 LEVEL: Warning
PID : 4508 TID : 140629241751296 PROC : db2sysc 0
INSTANCE: prod1 NODE : 000 DB : MYDB
APPHDL : 0-33700 APPID: 10.12.3.4.13429.221202134054
AUTHID : USER1 HOSTNAME: myserver.com
EDUID : 4958 EDUNAME: db2agent (DB2P) 0
FUNCTION: DB2 UDB, catcache support, sqlrlc_check_available_memory, probe:100
MESSAGE : ADM4000W A catalog cache overflow condition has occurred. There is
no error but this indicates that the catalog cache has exceeded the
configured maximum size. If this condition persists, you may want to
adjust the CATALOGCACHE_SZ DB configuration parameter.
我检查了建议:
db2 autoconfigure apply none | grep CATALOGCACHE_SZ
Catalog cache size (4KB) (CATALOGCACHE_SZ) = 1093 1093
我同时看到:“当前值”和“建议”具有相同的值 1093。
有没有其他方法可以确定目录缓存大小应该有多大?或者任何增加的方法,比如加倍,看看问题是否再次出现。
您可以尝试的事情很少,顺序不分先后:
忽略该警告,除非它出现得太频繁(例如每小时多次)。
继续将大小加倍,直到警告消失,或者直到您意识到内存可以更好地用于其他地方。
增加到 4 并查看诊断日志中是否打印了更多
diaglevel
详细信息以及警告。遵循手册中的建议,例如