本章节主要介绍 Data Watch 常见问题,为用户提供 Data Watch 常见问题的分析和解决思路。除此之外,用户还可前往达梦技术社区参与更多问题讨论。
- 数据守护启动和关闭顺序
- dmmonitor 进入监视器查看各个节点状态
- 主备集群魔数不一样,如何解决
- 主备模式下重命名表空间数据文件报错:don't support on primary mode
- 延迟启动集群
- 达梦集群是否可以部署多个确认监视器
- 读写分离集群搭建成功后,读写不分发,应用无法连接备库
- 如何手动切换主备
启动数据库举例:
- 启动数据库
以 Mount 方式分别启动主、备数据库:。
- 修改数据库模式
登录主数据库修改数据库模式为:。
讯享网
登录备数据库修改数据库模式为:。
讯享网
- 启动守护进程
启动主机 DM1 上的守护进程:。
启动备机 DM2 上的守护进程:。
启动监视机 DM_W 上的监视器:。
关闭数据库举例:
- 退出 DM 数据守护
- 退出监视器
- 关闭备机的守护进程
- 关闭主机的守护进程
- 关闭主机实例
- 关闭备机实例
【问题描述】:
- /dmmonitor 监视器作为服务已经开机启动情况下,如何进入监视器查看各个节点状态。
- 数据守护后台启动监视器后,怎么进入。
- 读写分离集群部署了两套,确认第二套集群启动确认监视器时报错只能启动一个。
【解决方法】:
确认监视器只能配置一个,配一个新的非确认监视器。
【问题详情】:
集群搭好了,但是两边的魔数不一样,主库写进去的备库查询不到,查看监控日志是归档出错了/配置主备,两个库安装以及怎么确保魔数一致?
【问题解答】:
不同版本的 DM 主备库数据准备的方式不一样。
需要参考安装目录下的 doc 目录下--“DM 数据守护与读写分离集群”-- 7.1 数据准备章节。
以前的版本主备数据准备是可以用数据文件拷贝以及备份还原方式的。最新的版本是必须先通过备份还原方式同步各数据库的数据。
主备模式下是处于主机状态,禁止修改数据文件名。
某些服务器系统在重启以后,网络会等待两分钟才恢复正常,但是在这两分钟内,集群的状态就会由于网络问题不正常,通过以下方法能够实现让集群等网络恢复后再延时启动;
- 禁用开机自启
在监视器上禁用监视器服务
讯享网
禁用以后重启系统集群服务不会自动启动,所以此时我们需要写一个启动集群的 shell 脚本。
- 编写 startDatabase.sh 脚本
然后赋予这个脚本执行权限
讯享网
同样也是执行一遍,看脚本是否正确;
- 将编写好的脚本写入到 linux 的 rc.local 文件里
在最后添加
讯享网
然后保存,重启验证
【问题解决】
一个数据守护系统中,最多只能配置 1 个确认监视器。但是确认监视器可配置成单实例或多实例两种形式。
单实例确认监视器的配置和启动步骤均与普通监视器一样。
多实例确认监视器采用 RAFT 协议实现。在多实例确认监视器中,只有一个实例作为确认监视器提供服务,其它实例作为备库存在而不提供服务。当确认监视器出现故障时,系统会从它的备库中选举一位作为新的确认监视器继续提供服务。多实例确认监视器不支持动态扩展节点。
例如:两节点集群多实例确认监视器配置:
更多详细使用方法和参数介绍可参考《 DM8 数据守护与读写分离集群 》手册 。
【问题描述】
读写分离集群应用通过服务名连接数据库,测试环境和生产环境数据库版本、驱动均一致,网络架构也全部一致,生产环境读写不分发,备库无连接,测试环境读写正常分发。
【问题分析】
- 通过开启 jdbc 日志查看不分发原因发现大量的网络通信异常报错。
讯享网
通过上面的信息可以发现,应用实际对备库发起了请求,但是请求 192.168.xxx.xxx ip 为内网 ip,和应用的网络和端口是不通的。
- 读写分离分发原理如下:
① 用户发起数据库连接请求;
② 接口(JDBC、DPI 等)根据服务名配置(在 dm_svc.conf 中进行配置)登录主库;
③ 主库挑选一个有效即时备库或实时备库的 IP/Port 返回给接口。
- 主库挑选的规则是根据 dmmal.ini 配置文件中的 MAL_INST_HOST 参数(对外提供服务 ip,业务 ip),通过上述分析该问题可能和 MAL_INST_HOST 配置的网段地址有关系。
- 排查 dmmal.ini 配置发现内网 ip 和外网 ip 写反。
【问题解决】
修改 dmmal.ini 配置文件,将内网 ip 和外网 ip 修改正确解决问题。
【问题描述】
集群配置有确认监视器,并已经使用服务的方式启动,当集群发生切换时,如何切换回来。
【问题分析】
集群在配置监视器时,一般配置好确认监视器后,建议再配置一个非确认监视器的配置文件,在主备发生切换时,可以通过前台的方式启动非确认监视器进行手动切换。非确认监视器是通过将监视器配置文件中 MON_DW_CONFIRM 参数值修改为 0 来实现,非确认监视器配置文件示例如下:
【问题解决】

在集群环境中配置有确认监视器时,主备只是发生了切换的情况下,在将主备切换回去时,只需要启动非确认监视器执行切换命令即可。例如,有主库 GRP1_RT_01 与备库 GRP1_RT_02 发生切换,恢复方法如下:
- 通过前台方式启动非确认监视器。
讯享网

从监视器中可以看到 GRP1_RT_02 变成了主库,GRP1_RT_01 变成了备库。
- 检查集群状态。
可通过监视器命令"tip"或"show"来检查集群状态是否正常。

通过 "tip" 命令可以看到集群状态正常。
- 登录非确认监视器。
在非确认监视器中输入"login"再输入用户名和密码登录监视器。

- 查看满足切换条件的实例。
输入命令"choose switchover 组名"查看可切换为主机的实例列表。

可以看到 GRP1_RT_01 可以进行切换。
- 主备切换。
执行命令"switchover GRP1.实例名"进行切换。
讯享网

切换成功,GRP1_RT_01 恢复到主库对外提供服务。
- 退出非确认监视器。
先通过监视器命令"tip"和"show"检查当前集群状态。

集群状态正常,执行“exit”命令退出监视器。

补充:
生产环境中建议应用使用服务名的方式进行连接,在配置文件 dm_svc.conf 中配置只连主库,这样连接的好处在于当主备发生切换后应用会自动连接到当前的主库,不会影响应用的正常使用。
初始 dm_svc.conf 文件由达梦安装时自动生成。不同的平台生成目录有所不同,注意相应访问用户需要对该文件有读取权限。
- 32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%system32 目录;
- 64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%system32 目录;
- 32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%SysWOW64 目录;
- 在 Linux 平台下,此文件位于 /etc 目录。
主备集群 dm_svc.conf 配置文件参考如下:
JDBC 连接串参考如下:jdbc:dm://DMHA

更多 dm_svc.conf 说明及使用方法参考数据库安装目录下 doc 目录中《DM8 数据守护与读写分离集群》手册-5.8 章节。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/137282.html