一.简介

DM 数据守护(Data Watch)是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案,主要由主库、备库、REDO 日志、REDO 日志传输、REDO 日志重演、守护进程 (dmwatcher)、监视器 (dmmonitor) 组成。接管备库通过监视器的Takeover 命令实现,主备库切换通过监视器的Switchover 命令实现。

实时主备:ARCH_TYPE = REALTIME  #实时归档类型
读写分离:ARCH_TYPE = TIMELY    #即时归档类型
实时主备:
由一个主库+一个多个备库,备库配置实时(Realtime) 归档。主库读写,备库只读,备库通过重做日志REDO实现与主库保持数据同步。
在备库查询的实时性要求不高的条件下,实时主备也可以配置接口的读写分离属性访问,实现读写分离功能特性。
DMDSC主备:
DMDSC集群和单节点之间互为主备。一般DMDSC集群部署为主库,将单节点部署为备库。同样通过重做日志REDO保持数据同步。
Data Watch:与oracle的dataguard和mysql的主备相似。
归档类型:
本地归档、远程归档、异步归档,redo写入日志文件后,有归档线程写入归档日志。
实时归档readtime是实现实时主备的基础,写入redo_buf内存之前发。
即时归档timely是实现读写分离的基础,写入redo_buf内存之后发。

二.部署规划

0.安装数据库前准备,参考上一篇或官方文档,包括用户目录系统参数优化等。

1.集群规划

名称

master

slave

monitor

资源分配

2C8G 100G+500G

2C8G 100G+500G

2C8G 100G+500G

业务IP

192.168.77.168

192.168.77.169

/

心跳IP

192.168.77.168

192.168.77.169

/

监视器IP

/

/

192.168.77.170

实例端口

5236

5236

/

MAL端口

5336

5336

/

MAL守护进程端口

5436

5436

/

OGUID

45331

45331

/

守护组

GRP1

GRP1

/

安装目录

/dmdata/dbms/dm8

/dmdata/dbms/dm8

/dmdata/dbms/dm8

实例目录

/dmdata/data

/dmdata/data

/

归档目录

/dmdata/arch

/dmdata/arch

/

备份目录

/dmdata/dmbak

/dmdata/dmbak

/

实例名

ALI01

ALI02

/

三.守护集群搭建

0.DM8数据库安装(master/slave/monitor)

#root用户挂载
su - root
#卸载掉镜像盘
umount /mnt
#上传安装包和授权文件到/home/dmdba
cd /home/dmdba
rz dm8_20240712_x86_rh7_64.iso
#挂载DM8安装包iso镜像,先把DM8安装包iso传到服务器上
mount -o loop /home/dmdba/dm8_20240712_x86_rh7_64.iso /mnt
#切换到dmdba用户安装
su - dmdba
#安装
cd /mnt/
./DMInstall.bin -i
#安装完成提示:请以root系统用户执行命令:
su - root
/dmdata/dbms/dm8/script/root/root_installer.sh

1.master配置

初始化实例

#dmdba用户执行
su - dmdba
#初始化实例
/dmdata/dbms/dm8/bin/dminit PATH=/dmdata/data/ db_name=ALIDB INSTANCE_NAME=ALI01 SYSDBA_PWD=Alibaby007 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

启动服务

#启动服务(前台启动,临时启动)
/dmdata/dbms/dm8/bin/dmserver /dmdata/data/ALIDB/dm.ini

参数优化(使用官方脚本AutoParaAdj3.8_dm8.sql,自动生成优化sql语句)

#另外打开一个终端,因为上一步启动的服务是前台启动的
su - dmdba
#连接数据库
/dmdata/dbms/dm8/bin/disql SYSDBA/Alibaby007@192.168.77.168:5236
#参数自动优化
SP_SET_PARA_VALUE(2,'WORKER_THREADS',8);
SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',8);
SP_SET_PARA_VALUE(2,'GEN_SQL_MEM_RECLAIM',0);
SP_SET_PARA_VALUE(2,'MAX_OS_MEMORY',       100);
SP_SET_PARA_VALUE(2,'MEMORY_POOL',         1500);
SP_SET_PARA_VALUE(2,'MEMORY_N_POOLS',      3);
SP_SET_PARA_VALUE(2,'MEMORY_TARGET',       2000);
SP_SET_PARA_VALUE(2,'BUFFER',              6000);
SP_SET_PARA_VALUE(2,'MAX_BUFFER',          6000);
SP_SET_PARA_VALUE(2,'BUFFER_POOLS',        23);
SP_SET_PARA_VALUE(2,'RECYCLE',        	   1000);
SP_SET_PARA_VALUE(2,'RECYCLE_POOLS',       7);
SP_SET_PARA_VALUE(2,'FAST_POOL_PAGES',     9999);
SP_SET_PARA_VALUE(2,'FAST_ROLL_PAGES',     1000);
SP_SET_PARA_VALUE(2,'ENABLE_FREQROOTS',1);
SP_SET_PARA_VALUE(2,'MULTI_PAGE_GET_NUM',1);
SP_SET_PARA_VALUE(2,'PRELOAD_SCAN_NUM',0);
SP_SET_PARA_VALUE(2,'PRELOAD_EXTENT_NUM',0);
SP_SET_PARA_VALUE(2,'TASK_THREADS',4);
SP_SET_PARA_VALUE(2,'MEMORY_MAGIC_CHECK',       1);
SP_SET_PARA_VALUE(1,'HJ_BUF_GLOBAL_SIZE',  1000);
SP_SET_PARA_VALUE(1,'HJ_BUF_SIZE',        250);
SP_SET_PARA_VALUE(1,'HAGR_BUF_GLOBAL_SIZE',1000);
SP_SET_PARA_VALUE(1,'HAGR_BUF_SIZE',     250);
SP_SET_PARA_VALUE(2,'SORT_FLAG',0);
SP_SET_PARA_VALUE(2,'SORT_BLK_SIZE',1);
SP_SET_PARA_VALUE(2,'SORT_BUF_SIZE',       10);
SP_SET_PARA_VALUE(2,'SORT_BUF_GLOBAL_SIZE',       1000);
SP_SET_PARA_VALUE(2,'RLOG_POOL_SIZE',      1024);
SP_SET_PARA_VALUE(2,'CACHE_POOL_SIZE',     512);
SP_SET_PARA_VALUE(2,'DICT_BUF_SIZE',       50);
SP_SET_PARA_VALUE(2,'VM_POOL_TARGET',       16384);
SP_SET_PARA_VALUE(2,'SESS_POOL_TARGET',       16384);
SP_SET_PARA_VALUE(2,'USE_PLN_POOL',        1);
SP_SET_PARA_VALUE(2,'ENABLE_MONITOR',      1);
SP_SET_PARA_VALUE(2,'SVR_LOG',             0);
SP_SET_PARA_VALUE(2,'TEMP_SIZE',           1024);
SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT',    102400);
SP_SET_PARA_VALUE(2,'MAX_SESSIONS',        1500);
SP_SET_PARA_VALUE(2,'MAX_SESSION_STATEMENT', 20000);
SP_SET_PARA_VALUE(2,'PK_WITH_CLUSTER',		1);
SP_SET_PARA_VALUE(2,'ENABLE_ENCRYPT',0);
SP_SET_PARA_VALUE(2,'OLAP_FLAG',2);
SP_SET_PARA_VALUE(2,'VIEW_PULLUP_FLAG',1);
SP_SET_PARA_VALUE(2,'OPTIMIZER_MODE',1);
SP_SET_PARA_VALUE(2,'ADAPTIVE_NPLN_FLAG',0);
SP_SET_PARA_VALUE(2,'PARALLEL_PURGE_FLAG',1);
SP_SET_PARA_VALUE(2,'PARALLEL_POLICY',2);
SP_SET_PARA_DOUBLE_VALUE(2,'UNDO_RETENTION',900);
SP_SET_PARA_VALUE(2,'UNDO_EXTENT_NUM',16);
SP_SET_PARA_VALUE(2,'ENABLE_INJECT_HINT',1);
SP_SET_PARA_VALUE(2,'BTR_SPLIT_MODE',1);
SP_SET_PARA_VALUE(2,'FAST_LOGIN',1);
SP_SET_PARA_VALUE(2,'ENABLE_MONITOR_BP',0);
SP_SET_PARA_VALUE(1,'SLCT_OPT_FLAG',0);

开启归档

#连接数据库
/dmdata/dbms/dm8/bin/disql SYSDBA/Alibaby007@192.168.77.168:5236
#开启归档
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/arch/ALI01, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;
COMMIT;
#暂不退出,等下一条备份SQL执行后关闭

备份数据

#备份数据库
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/BACKUP_FILE';
exit

拷贝备份文件

#将备份文件拷贝到slave
su - dmdba
scp -r /dmdata/dmbak/BACKUP_FILE 192.168.77.169:/dmdata/dmbak/

修改 dm.ini

连接数据库
/dmdata/dbms/dm8/bin/disql SYSDBA/Alibaby007@192.168.77.168:5236
#参数修改
SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);
exit

关闭前台实例服务

#ctrl+c强制结束前台实例服务

 修改 dmarch.ini 归档

#dmdba用户
su - dmdba
cat >>/dmdata/data/ALIDB/dmarch.ini<<'EOF'
[ARCHIVE_REALTIME1]
ARCH_TYPE  = REALTIME  #实时归档类型
ARCH_DEST  = ALI02  #实时归档目标实例名
EOF

创建 dmmal.ini 实例间通信

#dmdba用户
su - dmdba
cat >>/dmdata/data/ALIDB/dmmal.ini<<'EOF'
MAL_CHECK_INTERVAL         = 10  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定 MAL 链路断开的时间
MAL_TEMP_PATH              = /dmdata/data/malpath/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个 MAL 缓存大小,单位 MB
MAL_SYS_BUF_SIZE           = 2048  #MAL 总大小限制,单位 MB
MAL_COMPRESS_LEVEL         = 0  #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]
MAL_INST_NAME            = ALI01  #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST                 = 192.168.77.168  #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT                 = 5336  #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST            = 192.168.77.168  #实例的对外服务 IP 地址
MAL_INST_PORT            = 5236  #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT              = 5436  #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT         = 5536  #实例监听守护进程 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME            = ALI02
MAL_HOST                 = 192.168.77.169
MAL_PORT                 = 5336
MAL_INST_HOST            = 192.168.77.169
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 5436
MAL_INST_DW_PORT         = 5536
EOF

创建 dmwatcher.ini 守护进程

#dmdba用户
su - dmdba
cat >>/dmdata/data/ALIDB/dmwatcher.ini<<'EOF'
[GRP1]
DW_TYPE                  = GLOBAL  #全局守护类型
DW_MODE                  = AUTO  #MANUAL:故障手切 AUTO:故障自切
DW_ERROR_TIME            = 20  #远程守护进程故障认定时间
INST_ERROR_TIME          = 20  #本地实例故障认定时间
INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间
INST_OGUID               = 45331  #守护系统唯一 OGUID 值
INST_INI                 = /dmdata/data/ALIDB/dm.ini  #dm.ini 文件路径
INST_AUTO_RESTART        = 1  #打开实例的自动启动功能
INST_STARTUP_CMD         = /dmdata/dbms/dm8/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD      = 0  #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭
EOF

注册服务 数据库服务 守护进程服务

#root用户
su - root
/dmdata/dbms/dm8/script/root/dm_service_installer.sh -t dmserver -p ALI01 -dm_ini /dmdata/data/ALIDB/dm.ini -m mount
/dmdata/dbms/dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/data/ALIDB/dmwatcher.ini

2.slave配置

初始化实例

#dmdba用户执行
su - dmdba
#初始化实例
/dmdata/dbms/dm8/bin/dminit PATH=/dmdata/data/ db_name=ALIDB INSTANCE_NAME=ALI02 SYSDBA_PWD=Alibaby007 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

恢复数据

#dmdba用户执行
su - dmdba
/dmdata/dbms/dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data/ALIDB/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
/dmdata/dbms/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/ALIDB/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
/dmdata/dbms/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data/ALIDB/dm.ini' UPDATE DB_MAGIC"

替换 dmarch.ini

#dmdba用户
su - dmdba
cat >>/dmdata/data/ALIDB/dmarch.ini<<'EOF'
ARCH_WAIT_APPLY            = 0  #0:高性能  1:事务一致

[ARCHIVE_LOCAL]
ARCH_TYPE                = LOCAL  #本地归档类型
ARCH_DEST                = /dmdata/arch/ALI02  #本地归档存放路径
ARCH_FILE_SIZE           = 1024  #单个归档大小,单位 MB
ARCH_SPACE_LIMIT         = 51200  #归档上限,单位 MB

[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = ALI01  #实时归档目标实例名
EOF

配置dm.ini

#dmdba用户
su - dmdba
#将dm.ini里面的参数修改为与下面的一致,手动修改,RLOG_SEND_APPLY_MON没有的添加
vim /dmdata/data/ALIDB/dm.ini
INSTANCE_NAME  = ALI02
PORT_NUM = 5236                               #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60              #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0                     #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS  = 2                      #不允许备库 OFFLINE 表空间
MAL_INI = 1                                           #打开 MAL 系统
ARCH_INI = 1                                         #打开归档配置
RLOG_SEND_APPLY_MON = 64             #统计最近 64 次的日志重演信息

创建 dmmal.ini和dmwatcher.ini

slave与master这两个文件参数相同,创建一样的就可以

注册服务 数据库服务 守护进程服务

#root用户
su - root
/dmdata/dbms/dm8/script/root/dm_service_installer.sh -t dmserver -p ALI02 -dm_ini /dmdata/data/ALIDB/dm.ini -m mount
/dmdata/dbms/dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/data/ALIDB/dmwatcher.ini

3.monitor配置

创建dmmonitor.ini

#dmdba用户
su - dmdba
cat >>/dmdata/dbms/dm8/bin/dmmonitor.ini<<'EOF'
MON_DW_CONFIRM             = 1  #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 192.168.77.168:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 192.168.77.169:5436
EOF

#配置非确认监视器,在主备发生切换时,可以通过前台的方式启动非确认监视器进行手动切换
cat >>/dmdata/dbms/dm8/bin/dmmonitor_manual.ini<<'EOF'
MON_DW_CONFIRM             = 1  #0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位 MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位 MB

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 192.168.77.168:5436  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 192.168.77.169:5436
EOF

注册服务 监视器服务

#root用户
su - root
/dmdata/dbms/dm8/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dmdata/dbms/dm8/bin/dmmonitor.ini

4.手动配置集群主备

master配置

#dmdba用户
su - dmdba
#启动服务
/dmdata/dbms/dm8/bin/DmServiceALI01 start
#连接数据库
/dmdata/dbms/dm8/bin/disql SYSDBA/Alibaby007@192.168.77.168:5236
#修改为主库
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit
#启动守护进程服务
/dmdata/dbms/dm8/bin/DmWatcherServiceWatcher start

slave配置

#dmdba用户
su - dmdba
#启动服务
/dmdata/dbms/dm8/bin/DmServiceALI02 start
#连接数据库
/dmdata/dbms/dm8/bin/disql SYSDBA/Alibaby007@192.168.77.169:5236
#修改为备库
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
#slave参数优化与master一样
#########复制master的#########
exit
#启动守护进程服务
/dmdata/dbms/dm8/bin/DmWatcherServiceWatcher start

monitor配置

#dmdba用户
su - dmdba
#启动监视器服务 后台
/dmdata/dbms/dm8/bin/DmMonitorServiceMonitor start
#停止监视器服务
/dmdata/dbms/dm8/bin/DmMonitorServiceMonitor stop
#启动监视器服务 前台(常用观察)
cd /dmdata/dbms/dm8/bin
./dmmonitor dmmonitor_manual.ini

集群启停

#启动集群
#dmdba用户
su - dmdba
#master/slave启动守护进程
/dmdata/dbms/dm8/bin/DmWatcherServiceWatcher start
#启动监视器
#启动监视器服务 后台
/dmdata/dbms/dm8/bin/DmMonitorServiceMonitor start
或者
#启动监视器服务 前台
cd /dmdata/dbms/dm8/bin
./dmmonitor dmmonitor_manual.ini

#停止集群
#dmdba用户
su - dmdba
#停止监视器 master/slave停止守护进程
/dmdata/dbms/dm8/bin/DmWatcherServiceWatcher stop
#master停止数据库服务
/dmdata/dbms/dm8/bin/DmServiceALI01 stop
#slave停止数据库服务
/dmdata/dbms/dm8/bin/DmServiceALI02 stop

5.监视器使用

通过前台方式启动非确认监视器。

#dmdba用户
su - dmdba
#前台启动监视器服务
cd /dmdata/dbms/dm8/bin
./dmmonitor dmmonitor_manual.ini
#集群状态查看
输入tip"或"show"来检查集群状态是否正常(集群状态WSTATUS/实例状态ISTATUS)
#登录非确认监视器
非确认监视器中输入"login"再输入用户名和密码登录监视器
#登录后操作
#查看满足切换条件的实例
输入命令"choose switchover 组名"查看可切换为主机的实例列表
#主备切换
执行命令"switchover GRP1.ALI02"进行切换
#退出非确认监视器
exit

上一套达梦DM8数据库,如何规划部署?(续)守护集群读写分离_读写分离

一键切换主备

上一套达梦DM8数据库,如何规划部署?(续)守护集群读写分离_达梦DM8_02

上一套达梦DM8数据库,如何规划部署?(续)守护集群读写分离_集群守护_03

6.主备测试

master创建测试数据

#连接数据库
su - dmdba
/dmdata/dbms/dm8/bin/disql SYSDBA/Alibaby007@192.168.77.168:5236
#创建表空间
create tablespace ALI datafile '/dmdata/data/ALIDB/ALI01.dbf' size 128 autoextend on next 100 maxsize unlimited;
create tablespace ALI_idx datafile '/dmdata/data/ALIDB/ALI_idx01.dbf' size 128 autoextend on next 100 maxsize unlimited;
#创建用户
create user "ALI" identified by "Alibaby007" default tablespace ALI default index tablespace ALI_idx;
grant dba to ALI;
conn ALI/Alibaby007;
#创建数据库对象
CREATE TABLE city(city_id CHAR(3) NOT NULL,city_name VARCHAR(40) NULL,region_id INT NULL);
INSERT INTO city(city_id,city_name,region_id) VALUES('BJ','北京',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SH','上海',2);
INSERT INTO city(city_id,city_name,region_id) VALUES('NJ','南京',2);
commit;
#查看是否创建成功
select PATH from v$datafile;
select * from city;

有可能报错:[-510]:系统处于MOUNT状态,其他现象(集群状态WSTATUS/实例状态ISTATUS)均是MOUNT,原因是,slave注册数据库服务用的ALI01,应该是ALI02,不知道怎么删除的,就重新部署了。

slave验证

#连接数据库
su - dmdba
disql SYSDBA/Alibaby007@192.168.77.169:5236
#查看数据库文件
select path from v$datafile;
#查看表中的数据
conn ALI/Alibaby007@192.168.77.169:5236
select * from ALI.city;
行号     CITY_ID CITY_NAME REGION_ID  
---------- ------- --------- -----------
1          BJ      北京    1
2          SJZ     石家庄 1
3          SH      上海    2
4          NJ      南京    2

8.dm_svc.conf 配置

#root用户修改
su - root
cat >/etc/dm_svc.conf<<'EOF'
##以#开头的行表示是注释#
##全局配置区
TIME_ZONE=(480)
LANGUAGE=(cn)
DMHA=(192.168.77.168:5236,192.168.77.169:5236)
##服务配置
[DMHA]
SWITCH_TIMES=(3)
SWITCH_INTERVAL=(100)
LOGIN_MODE=(1)
EOF
#jdbc连接串
jdbc:dm://DMHA
#dmdba用户
#disql连接
su - dmdba
disql sysdba/Alibaby007@DMHA

本地hosts解析

上一套达梦DM8数据库,如何规划部署?(续)守护集群读写分离_读写分离_04

客户端连接

上一套达梦DM8数据库,如何规划部署?(续)守护集群读写分离_集群守护_05

四.读写分离集群搭建

读写分离集群与数据守护集群架构基本类似,但在搭建过程中,归档类型和 dm_svc.conf 配置文件等存在一定区别。最基本的区别:dmarch.ini里面的归档类型不一样。

实时主备:ARCH_TYPE = REALTIME  #实时归档类型
读写分离:ARCH_TYPE = TIMELY    #即时归档类型