注册
主备集群部署
技术分享/ 文章详情 /

主备集群部署

青空 2026/07/31 176 0 0

主备集群的安装

参考:概述

参考:配置

需要各实例使用的DM服务器版本一致、主机操作系统位数、大小端模式、市区和时间一致,并使用同一个用户启动DM服务器与守护进程dmwatcher

配置实时主备

需要注意在实际配置时,不要照抄参考的端口和OGUID,避免多个用户在同一个环境下搭建不同的数据守护系统导致端口冲突或消息混乱

三台机器dw_p、dw_s1、dw_m,其中前两者用于部署主备库,dw_m用来部署确认监视器,部署主备库的机器均要配置两块网卡,一块接入内部网络用于内部通信,另一块接入外部网络提供服务,dw_m接入内部网络

且三台机器都已经安装了DM,安装路径为/dm,执行程序在/dm/bin中,数据存放在/dm/data中

主备库的实例名建议使用“组名_守护环境_序号”的方式命名以方便区分,并且注意总长度不超过16(可能因为这个字段只给了16B?)

仿照示例命名组名GRP1,命名主库为GRP1_RT_01,备库为GRP1_RT_02

机器名 IP 地址 初始状态 操作系统 备注
DW_P 192.168.1.131 192.168.0.141 主库 GRP1_RT_01 Linux rh6-141.test 2.6.32-220.el6.x86_64##1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux 192.168.1.131 外部服务 IP; <br>192.168.0.141 内部通信 IP
DW_S1 192.168.1.132 192.168.0.142 备库 GRP1_RT_02 同上 192.168.1.132 外部服务 IP; <br>192.168.0.142 内部通信 IP
DW_M 192.168.0.73 确认监视器 同上
参数名 GRP1_RT_01 GRP1_RT_02
PORT_NUM 32141 32142
MAL_INST_DW_PORT 33141 33142
MAL_HOST 192.168.0.141 192.168.0.142
MAL_PORT 61141 61142
MAL_DW_PORT 52141 52142

数据准备

在dw_p上初始化主库到目录/dm/data

./dminit path=/dm/data SYSDBA_PWD=DMdba_123 SYSAUDITOR_PWD=DMauditor_123

在dw_s1上初始化备库到目录/dm/data

./dminit path=/dm/data SYSDBA_PWD=DMdba_123 SYSAUDITOR_PWD=DMauditor_123

在配置之前需要通过备份还原方式同步各数据库的数据,确保各数据库数据保持一致

不能使用分别初始化/直接拷贝数据文件的方法配置,原因:

  1. 每个库都有一个生成后永不变化的永久魔数permenant_magic,主库传送日志时会判断该值是否一致,以此判断是否属于同一个数据守护环境,若不一致则无法传送日志,分别初始化/直接拷贝数据文件会产生不同的永久魔数
  2. dminit初始化数据库时会生成随机密钥用于加密,且每次生成的密钥各不相同,备库无法解析使用主库密钥加密的数据
  3. 每个库有一个数据库魔数DB_MAGIC,每进行一次还原/恢复操作会产生变化,通过这种方式来区分同一个数据守护环境中不同的库

配置本地归档,归档文件存放了redo日志

#配置dm.ini,增加或修改ARCH_INI参数 ARCH_INI = 1 #打开归档配置 #配置 dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /dm/data/DAMENG/arch #本地归档文件存放路径 ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~2147483647M
脱机备份、脱机还原方式

先关闭数据库

systemctl stop DmServiceDMSERVER #或者以dmdba用户执行这个,权限要求还低一些,不需要root /dm/bin/DmServiceDMSERVER stop

执行命令进行脱机备份(backup)

./dmrman CTLSTMT="BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm/data/BACKUP_FILE_01'"

把备份文件复制到备库所在机器,依旧使用常用的scp

#大概这样 scp -r 本地文件夹路径 目标服务器用户名@目标服务器IP:目标路径 #本例子是这样: scp -r /dm/data/BACKUP_FILE_01 dmdba@192.168.0.142:/dm/data/

进行脱机还原(restore)

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'"

因为脱机备份没有产生REDO日志,所以这里不需要恢复

数据库更新:

./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
联机备份、脱机还原方式

对主库进行联机备份

BACKUP DATABASE BACKUPSET '/dm/data/BACKUP_FILE_01';

把备份文件复制到备库所在机器

#同上 scp -r 本地文件夹路径 目标服务器用户名@目标服务器IP:目标路径 #本例子是这样: scp -r /dm/data/BACKUP_FILE_01 dmdba@192.168.0.142:/dm/data/

执行脱机数据库还原与恢复

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FOR STANDBY FROM BACKUPSET '/dm/data/BACKUP_FILE_01'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

配置主库grp1_rt_01

修改dw_p的dm.ini

#实例名使用“组名_守护环境_序号”的命名方式,总长度不能超过16 INSTANCE_NAME = GRP1_RT_01 PORT_NUM = 32141 #数据库实例监听端口 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

注(AI补充):MAL(Message Access Layer)是达梦数据库实例间用于传输事务日志、心跳检测和主备切换指令的专用通信链路

MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 #实例名,和dm.ini中的INSTANCE_NAME一致 MAL_HOST = 192.168.0.141 #MAL系统监听TCP连接的IP地址 MAL_PORT = 61141 #MAL系统监听TCP连接的端口 MAL_INST_HOST = 192.168.1.131 #实例的对外服务IP地址 MAL_INST_PORT = 32141 #实例的对外服务端口,和dm.ini中的PORT_NUM一致 MAL_DW_PORT = 52141 #实例本地的守护进程监听TCP连接的端口 MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端口 [MAL_INST2] MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.0.142 MAL_PORT = 61142 MAL_INST_HOST = 192.168.1.132 MAL_INST_PORT = 32142 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142

修改dmarch.ini

ARCH_DEST表示实例是PRIMARY模式(主库模式)时,需要同步归档数据的目标实例名(mount状态启动后用ALTER DATABASE PRIMARY;手动设置)

当前实例GRP1_RT_01是主库,需要向GRP1_RT_02(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为GRP1_RT_02

[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = GRP1_RT_02 #实时归档目标实例名 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /dm/data/DAMENG/arch #本地归档文件存放路径 ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~2147483647M

修改dmwatcher.ini配置守护进程,配置为全局守护类型,使用自动切换模式【

[GRP1] DW_TYPE = GLOBAL #全局守护类型 DW_MODE = AUTO #自动切换模式 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_ERROR_TIME = 10 #本地实例故障认定时间 INST_OGUID = 453331 #守护系统唯一OGUID值 INST_INI = /dm/data/DAMENG/dm.ini #dm.ini配置文件路径 INST_AUTO_RESTART = 1 #打开实例的自动启动功能 INST_STARTUP_CMD = /dm/bin/dmserver #命令行方式启动 RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

以mount方式启动主库

/dm/bin/dmserver /dm/data/DAMENG/dm.ini mount

否则系统启动时会重构回滚表空间,生成Redo日志;并且启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性

数据守护配置结束后,守护进程会自动打开数据库。

设置OGUID(OGUID是数据守护唯一标识码,用来确定一个一个数据守护集群,数据库、守护进程和监视器需要配置相同的OGUID)

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

修改数据库模式,修改数据库为PRIMARY模式,声明其为主库

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); ALTER DATABASE PRIMARY; SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

配置备库 GRP1_RT_02

【还在学习中

配置监视器

【还在学习中

部署主备集群

主备集群搭建

备份主库

[dmdba@kongxianghui bin]$ # 创建备份目录 [dmdba@kongxianghui bin]$ mkdir -p /dm8/backup [dmdba@kongxianghui bin]$ chmod 755 /dm8/backup [dmdba@kongxianghui bin]$ # 执行备份 [dmdba@kongxianghui bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL BACKUPSET '/dm8/backup/BACKUP_FILE_01'" dmrman V8 BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' FULL BACKUPSET '/dm8/backup/BACKUP_FILE_01' file dm.key not found, use default license! Processing backupset /dm8/backup/BACKUP_FILE_01 [Percent:100.00%][Speed:0.00M/s][Cost:00:00:04][Remaining:00:00:00] backup successfully! time used: 00:00:05.054

初始化备库

[dmdba@kongxianghui bin]$ ./dminit PATH=/dm8/data_standby/ INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 SYSDBA_PWD=DMtest123 SYSAUDITOR_PWD=DMtest123 dminit V8 db version: 0x7000d file dm.key not found, use default license! License will expire on 2027-07-07 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL log file path: /dm8/data_standby/DAMENG/DAMENG01.log log file path: /dm8/data_standby/DAMENG/DAMENG02.log write to dir [/dm8/data_standby/DAMENG]. create dm database success. 2026-07-19 22:43:56 [dmdba@kongxianghui bin]$

还原备库

[dmdba@kongxianghui bin]$ # 还原 [dmdba@kongxianghui bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data_standby/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01'" dmrman V8 RESTORE DATABASE '/dm8/data_standby/DAMENG/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE_01' file dm.key not found, use default license! [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00] restore successfully. time used: 00:00:02.853 [dmdba@kongxianghui bin]$
[dmdba@kongxianghui bin]$ # 更新 DB_MAGIC [dmdba@kongxianghui bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data_standby/DAMENG/dm.ini' UPDATE DB_MAGIC" dmrman V8 RECOVER DATABASE '/dm8/data_standby/DAMENG/dm.ini' UPDATE DB_MAGIC file dm.key not found, use default license! recover successfully! time used: 00:00:01.229 [dmdba@kongxianghui bin]$

配置主库

[dmdba@kongxianghui bin]$ cd /dm8/data/DAMENG [dmdba@kongxianghui DAMENG]$ cat >> dm.ini << 'EOF' > MAL_INI = 1 > ARCH_INI = 1 > DW_INACTIVE_INTERVAL = 60 > ALTER_MODE_STATUS = 0 > ENABLE_OFFLINE_TS = 2 > RLOG_SEND_APPLY_MON = 64 > EOF [dmdba@kongxianghui DAMENG]$ # 2. 创建归档目录 [dmdba@kongxianghui DAMENG]$ mkdir -p arch [dmdba@kongxianghui DAMENG]$ # 3. 创建 dmarch.ini [dmdba@kongxianghui DAMENG]$ cat > dmarch.ini << 'EOF' > [ARCHIVE_LOCAL1] > ARCH_TYPE = LOCAL > ARCH_DEST = /dm8/data/DAMENG/arch > ARCH_FILE_SIZE = 128 > ARCH_SPACE_LIMIT = 0 > > [ARCHIVE_REALTIME] > ARCH_TYPE = REALTIME > ARCH_DEST = GRP1_RT_02 > EOF [dmdba@kongxianghui DAMENG]$ # 4. 创建 dmmal.ini [dmdba@kongxianghui DAMENG]$ cat > dmmal.ini << 'EOF' > MAL_CHECK_INTERVAL = 5 > MAL_CONN_FAIL_INTERVAL = 5 > > [MAL_INST1] > MAL_INST_NAME = GRP1_RT_01 > MAL_HOST = 192.168.201.141 > MAL_PORT = 61141 > MAL_INST_HOST = 192.168.201.141 > MAL_INST_PORT = 5236 > MAL_DW_PORT = 52141 > MAL_INST_DW_PORT = 33141 > > [MAL_INST2] > MAL_INST_NAME = GRP1_RT_02 > MAL_HOST = 192.168.201.141 > MAL_PORT = 61142 > MAL_INST_HOST = 192.168.201.141 > MAL_INST_PORT = 5236 > MAL_DW_PORT = 52142 > MAL_INST_DW_PORT = 33142 > EOF [dmdba@kongxianghui DAMENG]$ # 5. 创建 dmwatcher.ini [dmdba@kongxianghui DAMENG]$ cat > dmwatcher.ini << 'EOF' > [GRP1] > DW_TYPE = GLOBAL > DW_MODE = AUTO > DW_ERROR_TIME = 10 > INST_RECOVER_TIME = 60 > INST_ERROR_TIME = 10 > INST_OGUID = 453331 > INST_INI = /dm8/data/DAMENG/dm.ini > INST_AUTO_RESTART = 1 > INST_STARTUP_CMD = /dm8/bin/dmserver > RLOG_SEND_THRESHOLD = 0 > RLOG_APPLY_THRESHOLD = 0 > EOF [dmdba@kongxianghui DAMENG]$ # 6. 确认文件已创建 [dmdba@kongxianghui DAMENG]$ ls -la /dm8/data/DAMENG/dm*.ini -rw-r--r-- 1 dmdba dinstall 175 Jul 19 22:48 /dm8/data/DAMENG/dmarch.ini -rw-r--r-- 1 dmdba dinstall 94460 Jul 19 22:48 /dm8/data/DAMENG/dm.ini -rw-r--r-- 1 dmdba dinstall 414 Jul 19 22:49 /dm8/data/DAMENG/dmmal.ini -rw-r--r-- 1 dmdba dinstall 265 Jul 19 22:49 /dm8/data/DAMENG/dmwatcher.ini

配置备库

[dmdba@kongxianghui DAMENG]$ cd /dm8/data_standby/DAMENG [dmdba@kongxianghui DAMENG]$ # 修改 dm.ini,追加数据守护参数 [dmdba@kongxianghui DAMENG]$ cat >> dm.ini << 'EOF' > MAL_INI = 1 > ARCH_INI = 1 > DW_INACTIVE_INTERVAL = 60 > ALTER_MODE_STATUS = 0 > ENABLE_OFFLINE_TS = 2 > RLOG_SEND_APPLY_MON = 64 > EOF [dmdba@kongxianghui DAMENG]$ # 拷贝主库的dmmal.ini保证主备配置一致 [dmdba@kongxianghui DAMENG]$ cp /dm8/data/DAMENG/dmmal.ini ./ [dmdba@kongxianghui DAMENG]$ # 创建归档目录 [dmdba@kongxianghui DAMENG]$ mkdir -p arch [dmdba@kongxianghui DAMENG]$ # 创建dmarch.ini,归档目标指向主库 [dmdba@kongxianghui DAMENG]$ cat > dmarch.ini << 'EOF' > [ARCHIVE_LOCAL1] > ARCH_TYPE = LOCAL > ARCH_DEST = /dm8/data_standby/DAMENG/arch > ARCH_FILE_SIZE = 128 > ARCH_SPACE_LIMIT = 0 > > [ARCHIVE_REALTIME] > ARCH_TYPE = REALTIME > ARCH_DEST = GRP1_RT_01 > EOF [dmdba@kongxianghui DAMENG]$ # 创建 dmwatcher.ini [dmdba@kongxianghui DAMENG]$ cat > dmwatcher.ini << 'EOF' > [GRP1] > DW_TYPE = GLOBAL > DW_MODE = AUTO > DW_ERROR_TIME = 10 > INST_RECOVER_TIME = 60 > INST_ERROR_TIME = 10 > INST_OGUID = 453331 > INST_INI = /dm8/data_standby/DAMENG/dm.ini > INST_AUTO_RESTART = 1 > INST_STARTUP_CMD = /dm8/bin/dmserver > RLOG_SEND_THRESHOLD = 0 > RLOG_APPLY_THRESHOLD = 0 > EOF [dmdba@kongxianghui DAMENG]$ # 确认 [dmdba@kongxianghui DAMENG]$ ls -la /dm8/data_standby/DAMENG/dm*.ini -rw-r--r-- 1 dmdba dinstall 183 Jul 19 22:50 /dm8/data_standby/DAMENG/dmarch.ini -rw-r--r-- 1 dmdba dinstall 94463 Jul 19 22:49 /dm8/data_standby/DAMENG/dm.ini -rw-r--r-- 1 dmdba dinstall 414 Jul 19 22:49 /dm8/data_standby/DAMENG/dmmal.ini -rw-r--r-- 1 dmdba dinstall 273 Jul 19 22:50 /dm8/data_standby/DAMENG/dmwatcher.ini

以Mount 方式启动主库并设置PRIMARY

注:需要先以open方式正常打开一次才能用mount方式打开,这里似乎没复制全

[dmdba@kongxianghui DAMENG]$ cd /dm8/bin [dmdba@kongxianghui bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount file dm.key not found, use default license! mal_name 'MAL_INST1' and mal_name 'MAL_INST2' have same ip and inst_port:5236 in mal_name 'MAL_INST1' is same to port 5236 in mal_name 'MAL_INST2' in /dm8/data/DAMENG/dmmal.ini! Read /dm8/data/DAMENG/dmmal.ini error. MAL sys initialization failed! nsvr_ini_file_read failed, [code: -994] [dmdba@kongxianghui bin]$ # 端口相同 修改一下 [dmdba@kongxianghui bin]$ cd /dm8/data/DAMENG [dmdba@kongxianghui DAMENG]$ cat > dmmal.ini << 'EOF' > MAL_CHECK_INTERVAL = 5 > MAL_CONN_FAIL_INTERVAL = 5 > > [MAL_INST1] > MAL_INST_NAME = GRP1_RT_01 > MAL_HOST = 192.168.201.141 > MAL_PORT = 61141 > MAL_INST_HOST = 192.168.201.141 > MAL_INST_PORT = 5236 > MAL_DW_PORT = 52141 > MAL_INST_DW_PORT = 33141 > > [MAL_INST2] > MAL_INST_NAME = GRP1_RT_02 > MAL_HOST = 192.168.201.141 > MAL_PORT = 61142 > MAL_INST_HOST = 192.168.201.141 > MAL_INST_PORT = 5237 > MAL_DW_PORT = 52142 > MAL_INST_DW_PORT = 33142 > EOF [dmdba@kongxianghui DAMENG]$ cp /dm8/data/DAMENG/dmmal.ini /dm8/data_standby/DAMENG/ [dmdba@kongxianghui DAMENG]$ #重新启动 [dmdba@kongxianghui DAMENG]$ cd /dm8/bin [dmdba@kongxianghui bin]$ ./dmserver /dm8/data/DAMENG/dm.ini mount file dm.key not found, use default license! version info: develop csek2_vm_t = 1680 nsql_vm_t = 352 prjt2_vm_t = 208 ltid_vm_t = 272 nins2_vm_t = 1336 nset2_vm_t = 272 ndlck_vm_t = 192 ndel2_vm_t = 920 slct2_vm_t = 352 nli2_vm_t = 200 aagr2_vm_t = 312 pscn_vm_t = 416 dist_vm_t = 1016 DM Database Server 64 V8 03134284604-20260707-335949-20228 startup... Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL Database mode = 0, oguid = 0 License will expire on 2027-07-07 file lsn: 53544 ndct db load finished, code:100 ndct second level fill fast pool finished ndct third level fill fast pool finished ndct second level fill fast pool finished ndct third level fill fast pool finished ndct fill fast pool finished nsvr_startup end. uthr_pipe_create, create pipe[read:14, write:15] uthr_pipe_create, create pipe[read:16, write:17] uthr_pipe_create, create pipe[read:18, write:19] uthr_pipe_create, create pipe[read:20, write:21] uthr_pipe_create, create pipe[read:22, write:23] uthr_pipe_create, create pipe[read:24, write:25] aud sys init success. aud rt sys init success. systables desc init success. ndct_db_load_info finished, code:100. SYSTEM IS READY.

新开终端,连接主库设置 PRIMARY

PS D:\WorkField\MobileNote> ssh -p 5218 root@10.36.41.11
root@10.36.41.11's password: 
Last login: Sun Jul 19 22:34:47 2026 from 192.168.200.1
[root@kongxianghui ~]# su dmdba
[dmdba@kongxianghui root]$ /dm8/bin/disql SYSDBA/DMtest123@192.168.201.141:5236

服务器[192.168.201.141:5236]:处于普通配置状态
登录使用时间 : 3.239(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 16.634(毫秒). 执行号:1.
SQL> SP_SET_OGUID(453331);
DMSQL 过程已成功完成
已用时间: 3.331(毫秒). 执行号:2.
SQL> ALTER DATABASE PRIMARY;
操作已执行
已用时间: 8.635(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 11.879(毫秒). 执行号:3.
SQL> 

设置备库

SQL> exit
[dmdba@kongxianghui root]$ # Mount启动备库
[dmdba@kongxianghui root]$ cd /dm8/bin
[dmdba@kongxianghui bin]$ ./dmserver /dm8/data_standby/DAMENG/dm.ini mount
file dm.key not found, use default license!
MAL_INST2 mal_inst_port[5237] in /dm8/data_standby/DAMENG/dmmal.ini not equal with port_num[5236] in dm.ini or DCR_EP_PORT in dmdcr_cfg.ini
Read /dm8/data_standby/DAMENG/dmmal.ini error.
MAL sys initialization failed!
nsvr_ini_file_read failed, [code: -994]
[dmdba@kongxianghui bin]$ cd /dm8/data_standby/DAMENG
[dmdba@kongxianghui DAMENG]$ 
[dmdba@kongxianghui DAMENG]$ # 修改 PORT_NUM = 5237
[dmdba@kongxianghui DAMENG]$ sed -i 's/^[[:space:]]*PORT_NUM[[:space:]]*=[[:space:]]*5236/PORT_NUM = 5237/' dm.ini
NUM dm.ini[dmdba@kongxianghui DAMENG]$ grep PORT_NUM dm.ini
PORT_NUM = 5237                  #Port number on which the database server will listen
                AP_PORT_NUM                     = 0                     #Collaboration listening port in DPC
[dmdba@kongxianghui DAMENG]$ 
[dmdba@kongxianghui DAMENG]$ #启动备库
[dmdba@kongxianghui DAMENG]$ cd /dm8/bin
[dmdba@kongxianghui bin]$ ./dmserver /dm8/data_standby/DAMENG/dm.ini mount
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 1680
nsql_vm_t = 352
prjt2_vm_t = 208
ltid_vm_t = 272
nins2_vm_t = 1336
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 920
slct2_vm_t = 352
nli2_vm_t = 200
aagr2_vm_t = 312
pscn_vm_t = 416
dist_vm_t = 1016
DM Database Server 64 V8 03134284604-20260707-335949-20228 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2027-07-07
file lsn: 53544
ndct db load finished, code:100
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:16, write:17]
uthr_pipe_create, create pipe[read:18, write:19]
uthr_pipe_create, create pipe[read:20, write:21]
uthr_pipe_create, create pipe[read:22, write:23]
uthr_pipe_create, create pipe[read:24, write:25]
uthr_pipe_create, create pipe[read:26, write:27]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:100.
SYSTEM IS READY.

启动备库

PS D:\WorkField\MobileNote> ssh -p 5218 root@10.36.41.11
root@10.36.41.11's password: 
Last login: Sun Jul 19 22:53:02 2026 from 192.168.200.1
[root@kongxianghui ~]# su dmdba
[dmdba@kongxianghui root]$ /dm8/bin/disql SYSDBA/DMtest123@192.168.201.141:5237

服务器[192.168.201.141:5237]:处于普通配置状态
登录使用时间 : 3.241(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ET_PARA_VALUE(1,DMSQL 过程已成功完成
已用时间: 18.534(毫秒). 执行号:1.
SQL> SP_SET_OGUID(453331);
DMSQL 过程已成功完成
已用时间: 3.253(毫秒). 执行号:2.
SQL> ALTER DATABASE STANDBY;
 'ALTER_MODE_STATUS', 0);操作已执行
已用时间: 13.057(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 12.251(毫秒). 执行号:3.
SQL> exit
[dmdba@kongxianghui root]$ 

启动主库守护进程

[dmdba@kongxianghui root]$ /dm8/bin/dmwatcher /dm8/data/DAMENG/dmwatcher.ini
dmwatcher V8
DMWATCHER[4.0] IS READY

新开一个ssh启动备库守护进程

PS D:\WorkField\MobileNote> ssh -p 5218 root@10.36.41.11
root@10.36.41.11's password: 
Last login: Sun Jul 19 22:56:24 2026 from 192.168.200.1
[root@kongxianghui ~]# su dmdba
[dmdba@kongxianghui root]$ /dm8/bin/dmwatcher /dm8/data_standby/DAMENG/dmwatcher.ini
dmwatcher V8
DMWATCHER[4.0] IS READY

新开一个ssh启动监视器

PS D:\WorkField\MobileNote> ssh -p 5218 root@10.36.41.11
root@10.36.41.11's password: 
Last login: Sun Jul 19 22:58:05 2026 from 192.168.200.1
[root@kongxianghui ~]# su dmdba
[dmdba@kongxianghui root]$ # 创建监视器配置
[dmdba@kongxianghui root]$ cat > /dm8/data/dmmonitor.ini << 'EOF'
> MON_DW_CONFIRM = 1
> MON_LOG_PATH = /dm8/data/log
> MON_LOG_INTERVAL = 60
> MON_LOG_FILE_SIZE = 32
> MON_LOG_SPACE_LIMIT = 0
> 
> [GRP1]
> MON_INST_OGUID = 453331
> MON_DW_IP = 192.168.201.141:52141
> MON_DW_IP = 192.168.201.141:52142
> EOF
[dmdba@kongxianghui root]$ mkdir -p /dm8/data/log
[dmdba@kongxianghui root]$ # 启动监视器
[dmdba@kongxianghui root]$ /dm8/bin/dmmonitor /dm8/data/dmmonitor.ini
[monitor]         2026-07-19 22:59:09.498: DMMONITOR[4.0] V8
[monitor]         2026-07-19 22:59:09.512: DMMONITOR[4.0] IS READY.

[monitor]         2026-07-19 22:59:09.520: 
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(GRP1_RT_01), THE FIRST LINE IS SELF INFO.

DW_CONN_TIME         MON_CONFIRM    MID            MON_IP                  MON_VERSION                                                     
2026-07-19 22:59:09  TRUE           1943299703     ::ffff:192.168.201.141  DMMONITOR[4.0] V8

#-----------------------------------------------------------------------------------------------#

[monitor]         2026-07-19 22:59:09.524: 收到守护进程(GRP1_RT_01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2026-07-19 22:59:08  OPEN           OK        GRP1_RT_01       OPEN        PRIMARY   VALID    2        53577           53577           

[monitor]         2026-07-19 22:59:09.532: 收到守护进程(GRP1_RT_02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2026-07-19 22:59:09  OPEN           OK        GRP1_RT_02       OPEN        STANDBY   VALID    2        53577           53577           


show一下看看

show
2026-07-19 22:59:47 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             453331      TRUE            AUTO            FALSE     


<<DATABASE GLOBAL INFO:>>
DW_IP            MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT       DETACHED    AUTO_MODE_CHANGE  
192.168.201.141  52141        2026-07-19 22:59:46  GLOBAL    VALID     OPEN           GRP1_RT_01       OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID       FALSE       OFF               

EP INFO:
INST_IP          INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.201.141  5236       OK        GRP1_RT_01       OPEN        PRIMARY   0          0            REALTIME  VALID       3182            53577           3182            53577           NONE                  

<<DATABASE GLOBAL INFO:>>
DW_IP            MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT       DETACHED    AUTO_MODE_CHANGE  
192.168.201.141  52142        2026-07-19 22:59:47  GLOBAL    VALID     OPEN           GRP1_RT_02       OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID       FALSE       OFF               

EP INFO:
INST_IP          INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
192.168.201.141  5237       OK        GRP1_RT_02       OPEN        STANDBY   0          0            REALTIME  VALID       3182            53577           3182            53577           NONE                  

DATABASE(GRP1_RT_02) APPLY INFO FROM (GRP1_RT_01), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[3182, 3182, 3182], (RLSN, SLSN, KLSN)[53577, 53577, 53577], N_TSK[0], TSK_MEM_USE[0] 


#================================================================================#

现在设置了主库dmserver、备库dmserver、主库dmwatcher、备库dmwatcher、监视器dmmonitor

再开一个ssh验证一下,

PS D:\WorkField\MobileNote> ssh -p 5218 root@10.36.41.11
root@10.36.41.11's password: 
Last login: Sun Jul 19 22:58:43 2026 from 192.168.200.1
[root@kongxianghui ~]# /dm8/bin/disql SYSDBA/DMtest123@192.168.201.141:5236

服务器[192.168.201.141:5236]:处于主库打开状态
登录使用时间 : 2.164(ms)
disql V8
SQL> CREATE TABLE test_cluster(id int, name varchar(20));
);
COMMIT;
SELEC操作已执行
已用时间: 24.891(毫秒). 执行号:601.
SQL> INSERT INTO test_cluster VALUES(1, '达梦主备测试');
影响行数 1

已用时间: 0.447(毫秒). 执行号:602.
SQL> COMMIT;
操作已执行
已用时间: 2.701(毫秒). 执行号:603.
SQL> SELECT * FROM test_cluster;

行号     ID          NAME              
---------- ----------- ------------------
1          1           达梦主备测试

已用时间: 0.501(毫秒). 执行号:604.
SQL> exit
[root@kongxianghui ~]# #备库查询
[root@kongxianghui ~]# /dm8/bin/disql SYSDBA/DMtest123@192.168.201.141:5237

服务器[192.168.201.141:5237]:处于备库打开状态
登录使用时间 : 2.209(ms)
disql V8
SQL> SELECT * FROM test_cluster;

行号     ID          NAME              
---------- ----------- ------------------
1          1           达梦主备测试

已用时间: 3.279(毫秒). 执行号:101.
SQL> 

验证成功,按ctrl+c终止这五个进程

需要使用root用户注册服务

[root@kongxianghui ~]# #注册主库服务
[root@kongxianghui ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dm8/data/DAMENG/dm.ini -m mount
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_01.service to /usr/lib/systemd/system/DmServiceGRP1_RT_01.service.
创建服务(DmServiceGRP1_RT_01)完成
[root@kongxianghui ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher_01 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceWatcher_01.service to /usr/lib/systemd/system/DmWatcherServiceWatcher_01.service.
创建服务(DmWatcherServiceWatcher_01)完成
[root@kongxianghui ~]# #注册备库服务
[root@kongxianghui ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dm8/data_standby/DAMENG/dm.ini -m mount
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_02.service to /usr/lib/systemd/system/DmServiceGRP1_RT_02.service.
创建服务(DmServiceGRP1_RT_02)完成
[root@kongxianghui ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p Watcher_02 -watcher_ini /dm8/data_standby/DAMENG/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceWatcher_02.service to /usr/lib/systemd/system/DmWatcherServiceWatcher_02.service.
创建服务(DmWatcherServiceWatcher_02)完成
[root@kongxianghui ~]# 
[root@kongxianghui ~]# #注册监视器服务
[root@kongxianghui ~]# /dm8/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm8/data/dmmonitor.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.
创建服务(DmMonitorServiceMonitor)完成
[root@kongxianghui ~]# 

验证状态,因为还没启动

[root@kongxianghui ~]# #验证状态
[root@kongxianghui ~]# systemctl status DmServiceGRP1_RT_01
cherServiceWatcher_01
systemctl status DmWatcherServiceWatcher_02
systemctl status DmMonitorServiceMonitor● DmServiceGRP1_RT_01.service - DM Instance Service(DmServiceGRP1_RT_01).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceGRP1_RT_01.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@kongxianghui ~]# systemctl status DmServiceGRP1_RT_02
● DmServiceGRP1_RT_02.service - DM Instance Service(DmServiceGRP1_RT_02).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceGRP1_RT_02.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@kongxianghui ~]# systemctl status DmWatcherServiceWatcher_01
● DmWatcherServiceWatcher_01.service - DM Data Watch Service(DmWatcherServiceWatcher_01).
   Loaded: loaded (/usr/lib/systemd/system/DmWatcherServiceWatcher_01.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@kongxianghui ~]# systemctl status DmWatcherServiceWatcher_02
● DmWatcherServiceWatcher_02.service - DM Data Watch Service(DmWatcherServiceWatcher_02).
   Loaded: loaded (/usr/lib/systemd/system/DmWatcherServiceWatcher_02.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@kongxianghui ~]# systemctl status DmMonitorServiceMonitor
● DmMonitorServiceMonitor.service - DM Data Watch Monitor Service(DmMonitorServiceMonitor).
   Loaded: loaded (/usr/lib/systemd/system/DmMonitorServiceMonitor.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@kongxianghui ~]# 

启动服务

[root@kongxianghui ~]# # 启动主库
[root@kongxianghui ~]# systemctl start DmServiceGRP1_RT_01
[root@kongxianghui ~]# # 启动备库
[root@kongxianghui ~]# systemctl start DmServiceGRP1_RT_02
[root@kongxianghui ~]# # 启动主库守护进程
[root@kongxianghui ~]# systemctl start DmWatcherServiceWatcher_01
[root@kongxianghui ~]# # 启动备库守护进程
[root@kongxianghui ~]# systemctl start DmWatcherServiceWatcher_02
[root@kongxianghui ~]# # 启动监视器
[root@kongxianghui ~]# systemctl start DmMonitorServiceMonitor

检查状态

[root@kongxianghui ~]# systemctl status DmServiceGRP1_RT_01 --no-pager
● DmServiceGRP1_RT_01.service - DM Instance Service(DmServiceGRP1_RT_01).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceGRP1_RT_01.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2026-07-19 23:07:54 CST; 1min 38s ago
  Process: 11268 ExecStart=/dm8/bin/DmServiceGRP1_RT_01 start (code=exited, status=0/SUCCESS)
 Main PID: 11291 (dmserver)
   CGroup: /system.slice/DmServiceGRP1_RT_01.service
           └─11291 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini...

Jul 19 23:07:39 kongxianghui systemd[1]: Starting DM Instance Ser...
Jul 19 23:07:54 kongxianghui DmServiceGRP1_RT_01[11268]: [41B blob data]
Jul 19 23:07:54 kongxianghui systemd[1]: Started DM Instance Serv...
Hint: Some lines were ellipsized, use -l to show in full.
[root@kongxianghui ~]# systemctl status DmServiceGRP1_RT_02 --no-pager
● DmServiceGRP1_RT_02.service - DM Instance Service(DmServiceGRP1_RT_02).
   Loaded: loaded (/usr/lib/systemd/system/DmServiceGRP1_RT_02.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2026-07-19 23:08:09 CST; 1min 23s ago
  Process: 11498 ExecStart=/dm8/bin/DmServiceGRP1_RT_02 start (code=exited, status=0/SUCCESS)
 Main PID: 11521 (dmserver)
   CGroup: /system.slice/DmServiceGRP1_RT_02.service
           └─11521 /dm8/bin/dmserver path=/dm8/data_standby/DAMEN...

Jul 19 23:07:54 kongxianghui systemd[1]: Starting DM Instance Ser...
Jul 19 23:08:09 kongxianghui DmServiceGRP1_RT_02[11498]: [41B blob data]
Jul 19 23:08:09 kongxianghui systemd[1]: Started DM Instance Serv...
Hint: Some lines were ellipsized, use -l to show in full.
 DmWatcherServiceWatcher_01 --no-pager
systemctl status DmWatcherServiceWatcher_[root@kongxianghui ~]# syst-no-pagertus DmWatcherServiceWatcher_01 - 
02 --no-pager
sy● DmWatcherServiceWatcher_01.service - DM Data Watch Service(DmWatcherServiceWatcher_01).
   Loaded: loaded (/usr/lib/systemd/system/DmWatcherServiceWatcher_01.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2026-07-19 23:08:24 CST; 1min 8s ago
  Process: 11729 ExecStart=/dm8/bin/DmWatcherServiceWatcher_01 start (code=exited, status=0/SUCCESS)
 Main PID: 11752 (dmwatcher)
   CGroup: /system.slice/DmWatcherServiceWatcher_01.service
           └─11752 /dm8/bin/dmwatcher path=/dm8/data/DAMENG/dmwat...

Jul 19 23:08:09 kongxianghui systemd[1]: Starting DM Data Watch S...
Jul 19 23:08:24 kongxianghui DmWatcherServiceWatcher_01[11729]: [48B blob data]
Jul 19 23:08:24 kongxianghui systemd[1]: Started DM Data Watch Se...
Hint: Some lines were ellipsized, use -l to show in full.
[root@kongxianghui ~]# systemctl status DmWatcherServiceWatcher_02 --no-pager
● DmWatcherServiceWatcher_02.service - DM Data Watch Service(DmWatcherServiceWatcher_02).
   Loaded: loaded (/usr/lib/systemd/system/DmWatcherServiceWatcher_02.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2026-07-19 23:08:39 CST; 53s ago
  Process: 11783 ExecStart=/dm8/bin/DmWatcherServiceWatcher_02 start (code=exited, status=0/SUCCESS)
 Main PID: 11806 (dmwatcher)
   CGroup: /system.slice/DmWatcherServiceWatcher_02.service
           └─11806 /dm8/bin/dmwatcher path=/dm8/data_standby/DAME...

Jul 19 23:08:24 kongxianghui systemd[1]: Starting DM Data Watch S...
Jul 19 23:08:39 kongxianghui DmWatcherServiceWatcher_02[11783]: [48B blob data]
Jul 19 23:08:39 kongxianghui systemd[1]: Started DM Data Watch Se...
Hint: Some lines were ellipsized, use -l to show in full.
[root@kongxianghui ~]# systemctl status DmMonitorServiceMonitor --no-pager
● DmMonitorServiceMonitor.service - DM Data Watch Monitor Service(DmMonitorServiceMonitor).
   Loaded: loaded (/usr/lib/systemd/system/DmMonitorServiceMonitor.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2026-07-19 23:08:54 CST; 40s ago
  Process: 11840 ExecStart=/dm8/bin/DmMonitorServiceMonitor start (code=exited, status=0/SUCCESS)
 Main PID: 11863 (dmmonitor)
   CGroup: /system.slice/DmMonitorServiceMonitor.service
           └─11863 /dm8/bin/dmmonitor path=/dm8/data/dmmonitor.in...

Jul 19 23:08:39 kongxianghui systemd[1]: Starting DM Data Watch M...
Jul 19 23:08:54 kongxianghui DmMonitorServiceMonitor[11840]: [45B blob data]
Jul 19 23:08:54 kongxianghui systemd[1]: Started DM Data Watch Mo...
Hint: Some lines were ellipsized, use -l to show in full.
[root@kongxianghui ~]# 

启用服务

[root@kongxianghui ~]# systemctl enable DmServiceGRP1_RT_01
[root@kongxianghui ~]# systemctl enable DmServiceGRP1_RT_02
[root@kongxianghui ~]# systemctl enable DmWatcherServiceWatcher_01
[root@kongxianghui ~]# systemctl enable DmWatcherServiceWatcher_02
[root@kongxianghui ~]# systemctl enable DmMonitorServiceMonitor

检查是否启用

[root@kongxianghui ~]# systemctl is-enabled DmServiceGRP1_RT_01
ServiceWatcher_01
systemctl is-enabled DmWatcherServiceWatcher_02
systemctl is-enabled DmMonitorenabled
[root@kongxianghui ~]# systemctl is-enabled DmServiceGRP1_RT_02
enabled
[root@kongxianghui ~]# systemctl is-enabled DmWatcherServiceWatcher_01
enabled
[root@kongxianghui ~]# systemctl is-enabled DmWatcherServiceWatcher_02
enabled
[root@kongxianghui ~]# systemctl is-enabled DmMonitorServiceMonitor
enabled
[root@kongxianghui ~]# 

测试一下

[dmdba@kongxianghui bin]$ /dm8/bin/disql SYSDBA/DMtest123@192.168.201.141:5236

服务器[192.168.201.141:5236]:处于主库打开状态
登录使用时间 : 2.651(ms)
disql V8
SQL> SELECT NAME, MODE$, STATUS$ FROM V$INSTANCE;

行号     NAME       MODE$   STATUS$
---------- ---------- ------- -------
1          GRP1_RT_01 PRIMARY OPEN

已用时间: 2.759(毫秒). 执行号:701.
SQL> CREATE TABLE switch_test (
2       id int,
3       insert_time timestamp
4   );
操作已执行
已用时间: 99.970(毫秒). 执行号:702.
SQL> SELECT * FROM switch_test;
未选定行

已用时间: 2.819(毫秒). 执行号:703.
SQL> 

在主库中插入数据

SQL> INSERT INTO switch_test VALUES(1, SYSDATE);
影响行数 1

已用时间: 2.369(毫秒). 执行号:704.
SQL> COMMIT;
操作已执行
已用时间: 3.157(毫秒). 执行号:705.
SQL> SELECT * FROM switch_test;

行号     ID          INSERT_TIME               
---------- ----------- --------------------------
1          1           2026-07-21 11:43:40.000000

已用时间: 0.614(毫秒). 执行号:706.
SQL> 

打开备库验证一下是否同步

[dmdba@kongxianghui bin]$ /dm8/bin/disql SYSDBA/DMtest123@192.168.201.141:5237

服务器[192.168.201.141:5237]:处于备库打开状态
登录使用时间 : 3.359(ms)
disql V8
SQL> SELECT * FROM switch_test;

行号     ID          INSERT_TIME               
---------- ----------- --------------------------
1          1           2026-07-21 11:43:40.000000

已用时间: 3.230(毫秒). 执行号:1.
SQL> 

主备同步正常

配置服务名

[root@kongxianghui ~]# sudo vi /etc/dm_svc.conf
[root@kongxianghui ~]# cat /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(CN)

# 服务名定义
DMDW=(192.168.201.141:5236,192.168.201.141:5237)

[DMDW]
LOGIN_MODE=(1)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
[root@kongxianghui ~]# 

[root@kongxianghui ~]# /dm8/bin/disql SYSDBA/DMtest123@DMDW

服务器[192.168.201.141:5236]:处于主库打开状态
登录使用时间 : 2.290(ms)
disql V8
SQL> SELECT NAME, MODE$, STATUS$ FROM V$INSTANCE;

行号     NAME       MODE$   STATUS$
---------- ---------- ------- -------
1          GRP1_RT_01 PRIMARY OPEN

已用时间: 2.980(毫秒). 执行号:901.
SQL> exit
[root@kongxianghui ~]# 

至此主备部署告一段落,不过目前的主备搭建仅供练手,生产环境下的主备集群应当使用多台机器搭建

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服