db2 ? sql1084c
F:\Program Files\IBM\SQLLIB\BIN>db2 ? sql1084c


SQL1084C  不能分配共享内存段。

说明:

数据库管理器的内存资源不足时将返回此错误。激活数据库时,数据库管理器未
能分配共享内存。

用户响应:

通过运行以下命令来检查所有数据库配置参数的值以确保为它们设置的值都在建
议范围内:

*  DB2 AUTOCONFIGURE APPLY NONE

要增加数据库管理器可用的内存量,可执行以下操作:

*  增大 instance_memory 配置参数的值。
*  增大用于限制数据库管理器可用操作系统内存量的操作系统内核设置的值。
*  在 Linux 系统上,SHMMAX 配置参数的缺省值对于 DB2 LUW 并不足够大。请
   参阅 DB2 信息中心中的"修改内核参数(Linux)"主题。

要减小数据库使用的内存量,可执行以下操作:

*  减小 database_memory 配置参数的值。

增大或减小这些设置时,应按较小的增量执行此操作(每次增大或减小 5% 到 10
%),直到成功为止。

如果在具有足够内存资源的情况下仍然发生该问题,请与技术服务代表联系并提
供下列信息:

*  问题描述
*  SQLCODE 或消息号
*  如果可能的话,还应提供 SQLCA 内容
*  数据库管理器配置设置
*  数据库配置设置

db2 ? sql0930n

F:\Program Files\IBM\SQLLIB\BIN>db2 ? sql0930n


SQL0930N  没有足够的存储空间可用来处理语句。

说明:

请求了需要其他内存页的数据库,但是,没有更多页可用于数据库管理器。

无法处理该语句。

用户响应:

可以采用的解决方案包括:

*  验证系统是否有足够的实际内存和虚拟内存。
*  除去后台进程。
*  如果在 DUOW 再同步期间出错,那么请减小 RESYNC_INTERVAL 数据库管理器
   配置参数值。
*  如果错误发生在引用例程(UDF、存储过程或方法)的语句上,那么可能是包
   含自变量和返回值所需要的存储量大于系统上的可用内存。如果例程是使用
   BLOB、CLOB、DBCLOB 参数或返回值定义的,具有很大的大小(例如 2GB),
   可能会发生此情况。

如果上面列示的可能解决方案无法解决问题,那么可能需要考虑更改例程的定义。

sqlcode:-930

sqlstate:57011 和 5UA0L


db2 list db directory

[db2inst1@server1 diagpath]$ db2 list db directory
SQL1057W  The system database directory is empty.  SQLSTATE=01606

db2ilist

[db2inst1@server1 diagpath]$ db2ilist
db2inst1

(14)db2pd -memsets
  [db2inst1@server1 diagpath]$ db2pd -memsets

Database Partition 0 -- Active -- Up 0 days 00:38:19

Memory Sets:
Name         Address    Id          Size(Kb)   Key         DBP    Type   Unrsv(Kb)  Used(Kb)   HWM(Kb)    Cmt(Kb)    Uncmt(Kb)
DBMS         0x10000000 98306       33152      0x7FF11361  0      0      5248       11392      11648      11648      21504
FMP          0x12060000 131075      22592      0x0         0      0      2          0          192        22592      0
Trace        0x00000000 65537       8487       0x7FF11374  0      -1     0          8487       0          8487       0