为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8.2
【操作系统】:麒麟v10
【CPU】:arm,鲲鹏
【问题描述】*:2天,数据库实例服务异常退出6次,同样的错误,生产环境,急
2022-05-23 11:48:45.751 [FATAL] database P0001214435 T0000000000001214501 VM value stack pop overflow
2022-05-23 11:48:45.751 [FATAL] database P0001214435 T0000000000001214496 VM value stack pop overflow
2022-05-23 11:48:45.751 [FATAL] database P0001214435 T0000000000001214497 code = -1, dm_sys_halt now!!!
2022-05-23 11:48:45.751 [FATAL] database P0001214435 T0000000000001214501 code = -1, dm_sys_halt now!!!
2022-05-23 11:48:45.751 [FATAL] database P0001214435 T0000000000001214496 code = -1, dm_sys_halt now!!!
2022-05-23 11:48:45.752 [INFO] database P0001214435 T0000000000001214497 total 3 rfil opened!
2022-05-23 11:48:45.752 [INFO] database P0001214435 T0000000000001214501 total 3 rfil opened!
2022-05-23 11:48:45.752 [INFO] database P0001214435 T0000000000001214496 total 3 rfil opened!
2022-05-23 11:48:45.752 [FATAL] database P0001214435 T0000000000001214495 VM value stack pop overflow
2022-05-23 11:48:45.752 [FATAL] database P0001214435 T0000000000001214495 code = -1, dm_sys_halt now!!!
dm.ini 参数已优化
VM_STACK_SIZE = 10240 #VM stack size in Kilobytes
VM_POOL_SIZE = 10240 #VM pool size in Kilobytes
VM_POOL_TARGET = 65536 #VM pool target size in Kilobytes
#request trace
SVR_LOG_NAME = SLOG_ALL #Using which sql log sys in sqllog.ini
SVR_LOG = 1 #Whether the Sql Log sys Is open or close. 1:open, 0:close, 2:use switch and detail mode. 3:use not switch and simple mode.
服务异常关闭生成的core文件,调试报错:
调试的2个core文件,可以打印日志到崩溃当前线程号:
(上面两个日志 corelog.txt)
cd /opt/dmdbms/bin
gdb dmserver /home/core.dmserver.0
where
bt
set logging file /opt/dmdbms/corelog.txt
set logging on
thread apply all bt
------一直回车到日志打印完
q --退出
以这种方式导出的文件为空文件如同 0kb
(下面两个日志 result.txt)
./dmrdc sfile=/home/core.dmserver.0 dfile=result220523.txt
corelog.txtcorelog22052302.txtresult220523.txtresult22052302.txt
替换为数据库服务器自带的驱动后,使用正常
是在linux下么?dmdbms\bin目录下是否有core.XXX的文件?如果有的话,运行以下命令分析一下core文件,把导致问题的sql语句找出来,例如:
./dmrdc sfile=core.19456 dfile=core_19456.txt