为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8 --03134284044-20230417-187846-20040
【操作系统】:麒麟
【问题描述】*:
达梦数据库搭建集群,配置了读写分离,使用过程中,发现数据不会实时更新。 例如:新增了一条数据,第一次调用查询接口没有该条数据,第二调用就会有。
jdbc连接配置如下:
url: jdbc:dm://dmdb?dmdb=(10.100.0.151:32141,10.100.0.152:32142)&schema=HSCP_CIMS&login_mode=1&rw_separate=1&rw_percent=0&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&columnNameUpperCase=false&clobAsString=true
服务器dm_svc.conf配置如下:
您好,这个问题需要修改集群的归档类型为即时归档
实时归档(REALTIME)
在写入 REDO 日志到日志文件之前,通过 MAL 系统发送 REDO 日志到远程服务器,远程服务器收到 REDO 日志后,返回确认消息。收到确认消息后,执行后续操作,发送 REDO 日志失败, 或从备库返回的数据库模式不是 STANDBY,将数据库切换为 SUSPEND 状态,阻塞所有 REDO 日志的写入操作。只能配置 1 个实时归档。
即时归档(TIMELY)
即时归档在主库将 Redo 日志写入联机 Redo 日志文件后,再通过 MAL 系统将 Redo 日志发送到备库。即时归档是读写分离集群的实现基础,与实时归档的主要区别是发送 Redo日志的时机不同。一个主库可以配置 1~8 个即时备库。
修改位置如下:(注意:所有节点都要修改,并需要重启集群)
ARCH_TYPE = TIMELY #即时归档类型
示例如下:
[dmdba@localhost DAMENG]$ cat dmarch.ini
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdbms/data/DAMENG/arch/ #本地归档路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 2048 #归档上限,单位MB
[ARCHIVE_REALTIME]
ARCH_TYPE = TIMELY #即时归档类型
ARCH_DEST = DW1_02 #归档目标实例名