注册
DM数据库运维工作干货分享
培训园地/ 文章详情 /

DM数据库运维工作干货分享

上善若水 2023/05/30 2226 0 0

运维达梦数据库已有半年,达梦数据库的安装部署资料网上已经很多,就不再赘述。今天给大家分享一下在这半年中我遇到的问题、处理思路和解决方法。
问题1:
客户反馈使用达梦管理工具执行SQL脚本,提示“out of memory”,内存溢出。
image.png
了解到:客户电脑32G内存,sql脚本中有30多万数据。
处理方法:
找到管理工具的配置文件manager.ini文件,调整以下参数
image.png
-Xms256m
-Xmx2048m 为默认值,根据实际情况增大两参数值。
其中,
-Xms是设置初始化堆内存大小,即设置DM管理工具初始化时内存栈的大小;
-Xmx:是设置最大可分配堆内存大小,即设置DM管理工具能够使用的最大内存数,该值不能超过物理机内存大小;
同时,管理工具右下角有个垃圾桶 点一下清理一下
image.png
如果仍报错,则建议使用DM迁移工具中的“文件迁移到达梦”,效果会更好。
image.png

问题2:
应用程序在向DM数据库批量插入数据时,报“嵌套层次太深”错误。
查看语句可发现,有很多的union all连接
image.png
处理方法:
查看EXPR_N_LEVEL 和N_PARSE_LEVEL两个参数的值,根据嵌套层次调整值
image.png
SQL> Alter SESSION set ‘EXPR_N_LEVEL’ =1000;
SQL> Alter SESSION set ‘N_PARSE_LEVEL’ =1000;
两个参数为会话级别,调整后立即生效。
其中,
--EXPR_N_LEVEL:表达式最大嵌套层数。取值范围30~1000
--N_PARSE_LEVEL:表示对象PROC、VIEW、PKG、CLASS的最大解析层次。取值范围30~1000

问题3:
应用人员反馈达梦数据库主备集群故障切换后,应用程序无法连接到数据库,只能重新启动才能再连接。
经了解,早期应用程序是可以在集群主备切换后自动连接数据库,使用dmdba用户查看 dm_svc.conf文件,提示权限不足。
image.png
Root用户下查看文件归属及权限,如下图,可以看到该文件归属root,且只有root用户才可对该文件进行读写操作。
image.png
出现该问题是由于最近部门针对服务器用户对权限进行调整和回收,导致dmdba用户无法读取dm_svc.conf文件。
处理方法:
重新调整dm_svc.conf文件用户和属组。
#chown -R dmdba:dinstall dm_svc.conf ####修改dm_svc.conf归属dmdba用户
#chmod -R 764 dm_svc.conf ####764表示 root用户和属组用户可对该文件进行读写操作,其他用户只能读该文件,不可修改。
image.png

达梦技术社区:https://eco.dameng.com/

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服