为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM Database Server x64 V8.1.0.147-Build(2019.03.27-104581)ENT
【操作系统】:centos7
【CPU】:
【问题描述】*:insert时接入子查询执行之后数据库崩溃
insert into celerytask.celery_periodic_task(name, task, interval_id, args, kwargs, enabled, total_run_count) values('delay_queue_expire_deliver', 'tasks.delay_queue_expire_deliver',
(select id from celerytask.celery_interval_schedule where every = 60 and period = 'seconds' order by id limit 0, 1) , '[]', '{}', 0, 0);
1、简化INSERT语句,先插入固定值,确认是否是子查询的问题;
2、拆分子查询单独执行,单独执行子查询,检查子查询是否能返回有效结果,如果子查询返回空值,尝试插入NULL是否会违反目标表的约束。
3、定位崩溃日志,在达梦数据库软件的安装目录下log目录(如 dmdbms/log/dm_DMSERVERXXXX.log),grep ERROR.
4、系统资源监控:
内存:执行SQL时观察数据库进程的内存占用情况。
CPU:检查是否有长时间占用CPU的线程。
磁盘I/O:确认磁盘读写是否正常,无长时间等待。
5、查看是否有core文件生成,检查操作系统日志/var/log/message中对应时间是否存在Out Of Memory然后kill掉dmserver的日志存在