两个问题 有问题的达梦客户端导致应用crash
【问题描述】
userapp03
su - smbsuser
bak安装包有问题的,不带bak包是正确的
573M damengbak.tgz
376M dameng.tgz
/var/log/messages 一直报错 $DM_HOME/bin/libdmdpc.so error
导致/var/log/messages 不断写信息,直到/var文件系统写满
Aug 25 03:40:03 userapp03 systemd-coredump[3198931]: Process 3198929 (swComJmsbSvr) of user 3006
dumped core.#012#012Stack trace of thread 3198929:#012#0 0x0000fffee20529ac n/a (/home/smbsuser/dameng/bin/libdmdpc.so)
#012#1 0x0000fffee20529e0 n/a (/home/smbsuser/dameng/bin/libdmdpc.so)#012#2 0x0000fffee2052a44 n/a
(/home/smbsuser/dameng/bin/libdmdpc.so)#012#3 0x0000fffee20aa934 n/a
(/home/smbsuser/dameng/bin/libdmdpc.so)#012#4 0x0000fffee1fc981c n/a
(/home/smbsuser/dameng/bin/libdmdpc.so)#012#5 0x0000fffee1fa8ee4 n/a
(/home/smbsuser/dameng/bin/libdmdpc.so)#012#6 0x0000fffee1f36070 n/a (/home/smbsuser/dameng/bin/libdmdpc.so)
#012#7 0x0000fffee1f360f0 n/a (/home/smbsuser/dameng/bin/libdmdpc.so)#012#8 0x0000fffee1f4eb64 n/a
(/home/smbsuser/dameng/bin/libdmdpc.so)#012#9 0x0000fffee1f4eb94 n/a (/home/smbsuser/dameng/bin/libdmdpc.so)
#012#10 0x0000fffee1f350ac n/a (/home/smbsuser/dameng/bin/libdmdpc.so)#012#11 0x0000fffee1d393a0 __cxa_finalize
(libc.so.6)#012#12 0x0000fffee2cbdc90 n/a (ld-linux-aarch64.so.1)#012#13 0x0000fffee1d38dfc n/a (libc.so.6)#012#14 0x0000fffee1d38f04 exit (libc.so.6)#012#15 0x00000000004033a0 main (swComJmsbSvr)#012#16 0x0000fffee1d23f80 __libc_start_main (libc.so.6)#012#17 0x0000000000402ff4 $x (swComJmsbSvr)#012#18 0x0000000000402ff4 $x (swComJmsbSvr)
Aug 25 03:40:03 userapp03 systemd[1]: systemd-coredump@4931585-3198930-0.service: Succeeded.
【问题分析】
问题是userapp03 的DM_HOME环境包有问题,但是使用同样方式安装的userapp04 的DM_HOME 环境包却没有问题
---有问题的libdmdpc.so
[root@userapp03 bin]# ls -ltr libdmdpc.so
-rwxr-xr-x 1 dddddd12514832 Dec 26 2023 libdmdpc.so
--正确的包大小 10326624
ls -ltr libdmdpc.so
-rwxr-xr-x 1 dddddd10326624 9▒▒ 30 2021 libdmdpc.so
【规避方法】
通过将测试环境的DM_HOME打包,覆盖到该环境,问题得到规避
正确的环境信息如下:
disql -id
1-2-70-21.09.08-147080-10028-SEC
--正确的包大小 10326624
ls -ltr libdmdpc.so
-rwxr-xr-x 1 dddddd10326624 9▒▒ 30 2021 libdmdpc.so
##202411
再次发现检查这个问题处在达梦版本管理问题上。2023arm 版本一直报错,换成2021 arm 版本正常运行
###问题2:
"-bash: is a directory“这是一个错误吗?
"-bash: is a directory"是一个错误提示,表示在命令行中输入的命令或路径是一个目录而不是可执行文件。这个错误通常发生在尝试执行一个目录而不是一个可执行文件时。
在Linux和Unix系统中,命令行提示符通常以"-bash"开头,表示当前使用的是Bash shell。当在命令行中输入一个目录路径时,系统会尝试将该目录作为命令来执行,但由于目录不是可执行文件,所以会出现"-bash: is a directory"的错误提示。
要解决这个错误,可以检查输入的命令或路径是否正确,并确保输入的是一个可执行文件而不是一个目录。如果是想进入该目录,可以使用"cd"命令来切换到该目录。
这个错误与云计算领域相关性不大,因此无需提供腾讯云相关产品和链接。
.bash_profile 配置的有问题,克隆一个其他用户的profile 过来即可
###问题3:y [create] has error[-2007]:Syntax error.
--报错代码:
grant insert on ddd.killuser_log to dbmonopr;
create table "ddd"."DBLOG"
(
"ID" INT identity(1, 1) not null ,
sql_date DATETIME(6),
sql_txt VARCHAR(1200),
primary key("ID")
);
--fix:修改后:
达梦disql 复制create ,会自动打出也给空格 c reate ,导致建表失败
将create 改成大写CREATE ,问题得到规避
grant insert on ddd.killuser_log to dbmonopr;
CREATE table "ddd"."DBLOG"
(
"ID" INT identity(1, 1) not null ,
sql_date DATETIME(6),
sql_txt VARCHAR(1200),
primary key("ID")
);
##问题4:
### HA 3分钟才切换成功,达梦原厂回复这是正常现象
[monitor] 2024-09-27 21:47:16: 收到守护进程(AAA01)消息
[monitor] 2024-09-27 21:49:18: 登录监视器成功! -》中间相隔2分钟
[monitor] 2024-09-27 21:50:16: 实例AAA01[PRIMARY, OPEN, ISTAT_SAME:TRUE]不是STANDBY&OPEN状态
2024-09-27 21:50:28
#================================================================================#
GROUP OGUID MON_CONFIRM MODE MPP_FLAG
GRP1 453331 FALSE AUTO FALSE
###
问题。-登陆监视器 ,有台使用 中文用户名和 有台使用 username 搞混了,脚本无法识别中文用户,导致HA 3分钟才切换成功
规避方法:
监视器节点:
cd /etc
mv dm_svc.conf dm_svc.conf.bak
跟你所在监视器的服务器上是否配置/etc/dm_svc.conf语言环境有关。
你可以加入参数
LANGUAGE=(en)
###sample 5 达梦HA 思考
第一部分
场景 现象 结论 162 版本 测试结果2 集群状态(图片双击放大) 操作指令
守护进程正常情况下 使用kill -9进程模拟数据库故障
1 监视器正常,备库异常,主库dml提交 开始主库正常,监视器收到消息后(间隔两分钟)守护集群将主库短时间标记成suspend而后再open恢复正常,主库守护无法收到备库消息将备库归档状态为invalid,此时集群可正常对外提供服务。 "1.备库异常,该异常守护进程会检测到,然后拉起备库.
2.如果dml发生,守护集群将主库短时间标记成suspend,而后再open恢复正常" =DISPIMG("ID_65AB07AA3C1841C3A75773E93C4BE402",1) 将备库数据库服务停止
2 监视器异常,备库异常,主库dml提交 开始主库正常,监视器无法收到消息守护集群会很快将主库短时间标记成suspend而后再open恢复正常,主库守护无法收到备库消息将备库归档状态标记为invalid,此时集群可正常对外提供服务。 "1.备库异常,该异常守护进程会检测到,然后拉起备库。
2.如果dml发生,守护集群将主库短时间标记成suspend,而后再open恢复正常" =DISPIMG("ID_025AEA5F754D4A6CB88320F6D8DFF1DC",1) 将监视器服务和备库数据库服务依次停止
3 监视器正常,主库异常 守护进程会自动拉起原主库,此时集群可正常对外提供服务。 "1.主库异常,该异常守护进程会检测到,然后拉起主库。
" =DISPIMG("ID_94F7829A6D1F47C29A9EE1197FE57EC6",1) 将主库数据库服务停止
4 监视器异常,主库异常 守护进程会自动拉起原主库,此时集群可正常对外提供服务。。 "1.主库异常,该异常守护进程会检测到,然后拉起主库。
" =DISPIMG("ID_E18F2DE00EFA4B15B32C2865DF0176ED",1) 将监视器服务和主库数据库服务依次停止
守护进程异常情况下
1 监视器正常,备库异常,主库dml提交 监视器正常情况下,备库异常不影响主库,监视器进程将主库短时间标记成suspend而后再open恢复正常,此时集群正常对外提供服务。 "1.守护进程异常,监视器进程正常,该异常集群无反应,监视器日志报错。备库不会拉起
2.如果dml发生,守护集群将主库短时间标记成suspend,而后再open恢复正常。" =DISPIMG("ID_8C5B39D7DC3E4FE29C07B60B53668F74",1) 将备库数据库服务,备库守护依次停止
2 监视器异常,备库异常,主库dml提交 监视器异常情况下,备库守护异常影响主库被守护一直标记为suspend,此时集群不能正常对外提供服务。 "1.守护进程异常,监视器异常该异常集群无反应,监视器日志报错。备库不会拉起
2.如果dml发生在主库,主库长时间标记成suspend,需要人工干预,
3.人工干预方法:首先启动主库:
然后启动备库:
sh db_stop.sh,sh db_start.sh,
如果备库遇到问题,无法启动。
把主库临时open
停下主库守护进程,修改参数PWD_POLICY
/aaa/fas/app/dmdbms/bin/DmWatcherServicefas stop
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
alter database normal;
alter database open;
如果备库恢复,此时需要把主库恢复成主备模式。
alter database mount;
alter database primary;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
然后备库节点启动备库
sh db_start.sh
/aaa/fas/app/dmdbms/bin/DmWatcherServicefas start" 将监视器服务和备库数据库服务,备库守护依次停止
3 监视器正常,主库异常 备库接管成为主库,此时集群可正常对外提供服务。 备库接管成为主库,此时集群可正常对外提供服务。 =DISPIMG("ID_BCFB4AB00CC54AB29A5319F518947483",1) 将主库数据库服务,主库守护依次停止
4 监视器异常,主库异常 监视器异常,备库无法接管成为主库,此时集群不能正常对外提供服务。 "1.守护进程异常,监视器异常该异常集群无反应,监视器日志报错。主库不会拉起
2.需要人工干预,
3.人工干预方法:首先启动主库:
如果主库节点遇到问题,无法启动。
把备库临时变成主库 临时open
停下备库守护进程,修改参数PWD_POLICY
/aaa/fas/app/dmdbms/bin/DmWatcherServicefas stop
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
alter database mount;
alter database normal;
alter database open;
如果主库节点恢复,此时需要把旧主库恢复成主备模式备库模式。
/aaa/fas/app/dmdbms/bin/DmWatcherServicefas stop
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
alter database standby;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
/aaa/fas/app/dmdbms/bin/DmWatcherServicefas start
然后再把新主库恢复成主备模式主库模式。
alter database mount;
alter database primary;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
然后新主库节点启动守护进程
/aaa/fas/app/dmdbms/bin/DmWatcherServicefas start
" =DISPIMG("ID_C65FB9BF4E5C49FB9618B32AFBBA04D2",1) 将监视器服务和主库数据库服务,主库守护依次停止
原文链接:https://blog.csdn.net/weixin_40069076/article/details/142463199
第二部分:
/aaa/switch/local/fas/switchover_sh
dbmonitor /aaa/switch/local/fas/dmmonitor_fas.ini
dmmonitor /aaa/switch/local/fas/dmmonitor_fas.ini
或者查看
/aaa/fas/app/dmdbms/log/dmmonitor_20250212110631.log
监视器异常 kill -9
opfas 4235 1 0 Feb12 ? 00:09:53 /aaa/fas/app/dmdbms/bin/dmmonitor path=/aaa/fas/app/dmmonitor_fas.ini
service DmMonitorServicefas start