互联网服务数据库

SLQ1084C解决方案

我现在用的是 liunx+db2 9.5。
  实例 db2inst1
  数据库 sample
第一次出现问题时,
connect to sample
报出SQL1084C问题,通过db2 ? SQL1084C
(1) 修改shmmax值
(2)修改instance_memory值。
上述两方法都试过一次,问题不能得到解决。
检查db2diag.log,均说是内存不够用。

后因数据库是测试用的,因此删除db2inst1内所有数据库,
db2 create database sample后,
问题依旧。
(1) db2set db2_override_bpf=5000
(2)  ./db2iupdt db2inst1
问题仍然存在。
利用db2trc on,跟踪数据,错误码:SQL0903N,同样是说内存不足。


求解?
参与27

26同行回答

weiruan85weiruan85数据库管理员ibm
# Controls the maximum shared segment size, in byteskernel.shmmax = 7794967295   你这个应该是7G吧, ?显示全部
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 7794967295   你这个应该是7G吧, ?收起
政府机关 · 2011-05-30
浏览809
weiruan85weiruan85数据库管理员ibm
2011-05-26-17.51.17.213965+480 I49811G547         LEVEL: Error (OS)PID     : 5253                 TID  : 3042962320  PRO...显示全部
2011-05-26-17.51.17.213965+480 I49811G547         LEVEL: Error (OS)
PID     : 5253                 TID  : 3042962320  PROC : db2wdog
INSTANCE: db2inst1             NODE : 000
EDUID   : 2                    EDUNAME: db2wdog
FUNCTION: DB2 UDB, base sys utilities, sqleWatchDog, probe:100
MESSAGE : ZRC=0x820F0002=-2112946174=SQLO_INV_MEM "Invalid memory addr"
          DIA8561C A invalid memory block was encountered.
CALLED  : OS, -, shmctl                           OSERR: EIDRM (43)
DATA #1 : String, 34 bytes
Failure locking segment in memory.


2011-05-26-17.51.17.215404+480 E50359G511         LEVEL: Error
PID     : 5255                 TID  : 3080711056  PROC : db2sysc
INSTANCE: db2inst1             NODE : 000
APPHDL  : 0-11                 APPID: *LOCAL.db2inst1.110526095116
AUTHID  : DB2INST1
EDUID   : 16                   EDUNAME: db2agent (instance)
FUNCTION: DB2 UDB, SQO Memory Management, sqloRequestMemPinSet, probe:60
MESSAGE : ZRC=0xFFFFFBEE=-1042
DATA #1 : String, 63 bytes
Can not continue with DB2_PINNED_BP=true, disabling to continue

2011-05-26-17.51.17.215409+480 I50871G490         LEVEL: Error
PID     : 5255                 TID  : 3080711056  PROC : db2sysc
INSTANCE: db2inst1             NODE : 000
APPHDL  : 0-11                 APPID: *LOCAL.db2inst1.110526095116
AUTHID  : DB2INST1
EDUID   : 16                   EDUNAME: db2agent (instance)
FUNCTION: DB2 UDB, SQO Memory Management, sqloMemCreateSingleSegment, probe:120
MESSAGE : ZRC=0xFFFFFBEE=-1042
DATA #1 : String, 35 bytes
Memory segment could not be pinned.


根据这个,是不是设置了DB2_PINNED_BP
将此变量设置为 YES 会导致 DB2 请求操作系统固定 DB2 的数据库共享内存。在配置 DB2 以固定数据库共享内存时,应注意确保不要过量使用系统,否则操作系统的内存管理灵活性会降低。

在 Linux 上,除了要求修改此注册表变量以外,还需要 libcap.so.1 库。

如果将此变量设置为 YES,那么将无法启用数据库共享内存自调整功能(通过将 database_memory 配置参数设置为 AUTOMATIC 来激活此功能)。


(1) db2level

[db2inst1@server1 ~]$ db2level
DB21085I  Instance "db2inst1" uses "32" bits and DB2 code release "SQL09052"
with level identifier "03030107".
Informational tokens are "DB2 v9.5.0.2", "s080811", "MI00238", and Fix Pack
"2".
Product is installed at "/opt/ibm/db2/server/exp/V9.5
32位的,你去看看32的内存模型。   

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 7794967295   够大了,都7个多G了,数据库根本就用不到 。
#kernel.shmmax =  573741824
#4294967295
# Controls the maximum number of shared memory segments, in pages
#kernel.shmall = 862144
kernel.shmall = 86214400

建议你去看看内存模型,算一下是不是超出了限制。收起
政府机关 · 2011-05-27
浏览401
weiruan85weiruan85数据库管理员ibm
把日子贴出来看看 先显示全部
把日子贴出来看看 先收起
政府机关 · 2011-05-26
浏览367

    提问者

    zhmwang
    PDOceanBase
    擅长领域: 数据库服务器国产数据库

    相关问题

    相关资料

    相关文章

    问题状态

  • 发布时间:2011-05-25
  • 关注会员:1 人
  • 问题浏览:10081
  • 最近回答:2011-05-31
  • X社区推广