[size=large]前些天,一个系统的管理员说他们的系统变得非常慢,每天都要跑的一个批处理程序,原来差不多30分钟内完成,现在要2个多小时。让其把日志文件发来看看,结果发现其中有如下问题:
2011-02-10-17.51.48.643883+480 I286427750G930 LEVEL: Warning

PID : 25788 TID : 3073371024 PROC : db2sysc

INSTANCE: db2inst1 NODE : 000 DB : TCCCS2

APPHDL : 0-35687 APPID: C0A8C0F4.P111.113980093219

AUTHID : TCTCS

EDUID : 60081 EDUNAME: db2agent (TCCCS)

FUNCTION: DB2 UDB, base sys utilities, sqeLocalDatabase::FirstConnect, probe:1516

MESSAGE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG

"No Storage Available for allocation"

DIA8305C Memory allocation failure occurred.

DATA #1 : String, 286 bytes

Failed to allocate the desired database shared memory set.

Check to make sure the configured DATABASE_MEMORY + overflow

does not exceed the maximum shared memory on the system.

Attempting to start up with only the system buffer pools.

Desired database shared memory set size is (bytes):

DATA #2 : unsigned integer, 4 bytes

1570439168

2011-02-10-17.51.49.585291+480 E286434135G777 LEVEL: Warning

PID : 25788 TID : 3073371024 PROC : db2sysc

INSTANCE: db2inst1 NODE : 000 DB : TCCCS2

APPHDL : 0-35687 APPID: C0A8C0F4.P111.113980093219

AUTHID : TCTCS

EDUID : 60081 EDUNAME: db2agent (TCCCS)

FUNCTION: DB2 UDB, buffer pool services, sqlbStartPools, probe:2

MESSAGE : ADM6073W The table space "KSCCS_CSS" (ID "7") is configured to use

buffer pool ID "1", but this buffer pool is not active at this time.

In the interim the table space will use buffer pool ID "4096". The

inactive buffer pool should become available at next database startup

provided that the required memory is available.

2011-02-10-17.51.49.954075+480 I286436476G530 LEVEL: Severe

PID : 25788 TID : 3073371024 PROC : db2sysc

INSTANCE: db2inst1 NODE : 000 DB : TCCCS2

APPHDL : 0-35687 APPID: C0A8C0F4.P111.113980093219

AUTHID : TCTCS

EDUID : 60081 EDUNAME: db2agent (TCCCS)

FUNCTION: DB2 UDB, buffer pool services, sqlbinit, probe:620

DATA #1 : String, 70 bytes

Database will come up with hidden buffer pools.

totalBufferPoolPages:

DATA #2 : signed integer, 8 bytes

64

2011-02-10-17.51.50.334564+480 I286437007G645 LEVEL: Warning

PID : 25788 TID : 3073371024 PROC : db2sysc

INSTANCE: db2inst1 NODE : 000 DB : TCCCS2

APPHDL : 0-35687 APPID: C0A8C0F4.P111.113980093219

AUTHID : TCTCS

EDUID : 60081 EDUNAME: db2agent (TCCCS)

FUNCTION: DB2 UDB, Self tuning memory manager, stmmStartSTMMIfNecessary, probe:490

MESSAGE : ZRC=0x87AE015F=-2018639521=STMM_DAEMON_COULD_NOT_START

"STMM Daemon could not be started"

DATA #1 : String, 89 bytes

The self tuning memory manager was not started because buffer pool initialization failed.

2011-02-10-17.51.51.259420+480 E286438444G768 LEVEL: Warning

PID : 25788 TID : 3073371024 PROC : db2sysc

INSTANCE: db2inst1 NODE : 000 DB : TCCCS2

APPHDL : 0-35687 APPID: C0A8C0F4.P111.113980093219

AUTHID : TCTCS

EDUID : 60081 EDUNAME: db2agent (TCCCS)

FUNCTION: DB2 UDB, sort/list services, sqlsOptimizeNumMergeRuns, probe:10

MESSAGE : ADM9000W Prefetching was disabled during sort merge; performance may

be suboptimal. If this message persists, consider increasing the

buffer pool size for temporary table space "TEMPSPACE1" (ID "1") or

increase the value of the SORTHEAP DB configuration parameter to

reduce the extent of sort spilling.
从日志可以看到,在数据库启动时,无法成功申请到共享内存,从而导致后续的STMM和prefectch等功能无法启用,这必然会严重影响到系统的性能。
共享内存对DB2数据库是绝对必要的,数据库系统为了防止没有共享内存导致系统无法启动,从而也无法修改配置的情形,在无法申请到共享内存的情况下,启用隐藏共享内存,隐藏共享内存都比较小,所以数据库虽然启动了,但性能严重降低。幸亏平时业务系统的交易量相当的小,否则,就不会是仅仅从批处理时才能发现问题了。
查看了数据库的配置参数,发现有一个参数比较可疑:Utilies heap size(UTIL_HEAP_SZ)的大小为11万多(4K页),合计要440M多的内存被其占用。在其他数据库中,看到这个参数的默认值之尤5000,因此想到可能是此参数被修改过的原因。
将此参数更改为5000,然后重启数据库,数据库可以正常启动,并且成功申请到了共享内存。STMM等功能也能成功启用。[/size]

数据库内存故障恢复一例相关推荐

  1. ORA-00845 : MEMORY_TARGET not supported on this system(调大数据库内存无法启动)

    问题描述:调大数据库内存后,启动数据库报 ORA-00845 : MEMORY_TARGET not supported on this system . -- 调大数据库内存后,数据库启动报错 [r ...

  2. 服务器修改数据库值,服务器上怎么修改数据库内存

    服务器上怎么修改数据库内存 内容精选 换一换 数据库安全审计Agent的CPU阈值和内存阈值用户不能直接修改.Agent安装在数据库端的用户,若有需求,请您联系技术支持修改数据库安全审计Agent的阈 ...

  3. PyCharm中如何修改文件默认打开方式(以自带数据库db.sqlite3为例)

    PyCharm中很多时候,由于自己疏忽会修改一些软件暂时无法识别的文件的默认打开方式,这个有时候真的很气人. 下面就以自带数据库db.sqlite3为例来说说如下图: 很多时候PyCharm由于暂时无 ...

  4. oracle数据库内存调整之增加内存

    模拟操作系统内存从2G增加为8G后,调整数据库内存参数,示例中参数不作为实际生产环境参考,因为因需所取,调整参数需要根据数据库相应调整,避免小牛拉大车,大牛拉小车的现象. 查看原始配置数据 [orac ...

  5. 数据库内存emoji图标

    数据库内存emoji图标 报错内容: java.sql.SQLException: Incorrect string value: 解决: 把那一列的字符集改成 utf8mb4 就可以了

  6. 数据库 存储过程,如何debug调试,以KingBase数据库金仓为例模式> PUBLIC> 存储过程 >鼠标右键“调试存储过程“

    数据库 存储过程,如何debug调试,以KingBase数据库金仓为例 模式>     PUBLIC>         存储过程             >鼠标右键"调试存 ...

  7. Visual C++数据库实用编程100例 源代码

    从图书馆借了书<Visual C++数据库实用编程100例>打算开始学数据库编程,看了书上的内容,浅显易懂,所以打算学习数据库从这本书起步.但编程人员缺不了源代码,光看书没什么意思.所以从 ...

  8. mysql实战33 | 我查这么多数据,会不会把数据库内存打爆?

    我经常会被问到这样一个问题:我的主机内存只有 100G,现在要对一个 200G 的大表做全表扫描,会不会把数据库主机的内存用光了? 这个问题确实值得担心,被系统 OOM(out of memory)可 ...

  9. 面试官:Redis 数据库内存数据满了,会宕机吗?有内存回收?

    点击上方"Java基基",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 ...

最新文章

  1. 2020职场人裸辞三大原因:不开心、工资低、没有盼头
  2. python学习笔记(二)— 集合
  3. Storm-Flux简介
  4. python virtualenv 坑_Python 虛擬環境 | Mac/Linux下如何避坑安裝配置Virtualenv
  5. 发那科机器人网段_FANUC机器人基本操作指导
  6. 二维数组传入函数_C++二维动态数组memset()函数初始化
  7. 微信团队分享:iOS版微信的高性能通用key-value组件技术实践
  8. spring boot 配置 druid的filters时报错 Reason: org.apache.log4j.Priority
  9. Hive语言手册-ORC
  10. 数据结构之图的基本介绍
  11. 电子技术背后的数学本质【2】(反馈电路的分析和运算放大器)
  12. 转载:SyncToy安装使用详解
  13. 万能分页显示上一页下一页
  14. Tensorflow2.6实现Unet结构神经网络(3D卷积)识别脑部肿瘤并实现模型并行
  15. 2020年年度总结(致敬自己)
  16. ubuntu如何设置默认程序打开方式
  17. DOTS介绍+Unity DOTS-MAN小游戏项目实战
  18. 拥抱国产化,推动产业互联网,拍乐云做了什么?
  19. php凑整10算法,加减凑整法教案
  20. Java基础之JDK8之Stream接口

热门文章

  1. 记录gt、ge、lt、le、eq、ne的含义
  2. python自制简易二维码代码_用python把自己的二维码制作成动态码,一行代码即可搞定!敲简单!...
  3. 抓取汽车之家新闻资讯做安卓app新闻资讯数据
  4. IDAC(电流型DAC)的参数和性能测试
  5. PE文件结构与程序装载
  6. 【SpringBoot】 日志框架冲突
  7. 四川大学计算机考研专业参考书目,四川大学计算机技术(专业学位)研究生考试科目和考研参考书目...
  8. 百度网盘加速下载教程
  9. 【橙子】C#Unity--2D迷宫
  10. 草根微信营销的案例剖析