在达梦数据库(DM)架构中,“DSC(数据共享集群)+ 主备(数据守护 Data Watch)”的组合是一个典型的兼顾高可用与高性能的综合解决方案。
DSC 允许多个数据库实例同时访问并修改共享存储上的同一份数据,实现真正的 并行处理 。它通过负载均衡将业务流量分发到各节点,极大提升了系统的整体事务吞吐量(TPS/QPS)和并发处理能力。
DSC 解决了单节点故障问题,但所有节点依赖同一块共享存储,若存储失效则服务中断。引入主备(Data Watch)后,备库部署在独立机器和独立存储上,通过实时日志同步实现异地或跨存储的数据保护。当 DSC 集群发生极端故障时,备库可快速接管,实现 RPO=0(数据零丢失)和 RTO<10秒(秒级恢复)。
本文将在三台虚拟机上,部署dsc主备集群,两台机器分别部署一个dsc节点构成dsc集群 使用共享磁盘 当作主库,剩下一台机器部署单节点dm 使用单独硬盘 当作备库。
创建三台虚拟机,均安装好了dm数据库,同时配置好一套跨1和2节点的共享磁盘。
dm的安装路径为:/home/dmdba/dmdbms
所有的命令行工具都在/home/dmdba/dmdbms/bin下
三台机子ip分别为:
DSC01 : 192.168.184.129
DSC02 : 192.168.184.130
DM : 192.168.184.128
为了实践的方便性,不区分对内网卡和业务网卡,统一只使用一个ip地址。
端口规划
dsc01
| 实例名 | DCR_EP_PORT | MAL_PORT |
|---|---|---|
| CSS0 | 9836 | / |
| ASM0 | 5836 | 4836 |
| DSC01 | 6636 | 6536 |
配置文件路径:/home/dmdba/dmdsc/data/DSC01
dsc02
| 实例名 | DCR_EP_PORT | MAL_PORT |
|---|---|---|
| CSS1 | 9837 | / |
| ASM1 | 5837 | 4837 |
| DSC02 | 6637 | 6537 |
配置文件路径:/home/dmdba/dmdsc/data/DSC02
| 实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_PORT | MAL_DW_PORT |
|---|---|---|---|---|
| DSC01 | 6636 | 4566 | 6536 | 3566 |
| DSC02 | 6637 | 4567 | 6537 | 3567 |
| GRP1_RT_01 | 6638 | 4568 | 6538 | 3568 |
使用下面命令来查看有哪些磁盘
lsblk
通过 scsi_id 获取磁盘信息
/usr/lib/udev/scsi_id -g -u /dev/sdb
234074fa79680f431
同样的方式获取其他几块盘的scsi_id
编写/etc/udev/rules.d/66-dmdevices.rules,创建磁盘链接
## DCR 磁盘配置,且在软链接之前创建文件夹/dev_DSC2
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2900791af5270c8f690860855c6",SYMLINK+="DCR",OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba/dev/$name;mkdir -p /dev_DSC2; ln -s /dev/DCR /dev_DSC2/DCR'"
## VOTE 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29039d146822bbbf55246f50a16",SYMLINK+="VOTE", OWNER="dmdba",GROUP="dmdba", MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC2/VOTE'"
## DMDATA 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c296497388ed68408470fce830a4",SYMLINK+="DMDATA", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC2/DMDATA'"
## DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba 组的 dmdba 用户
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c294306e1a883e1e4ddcf39f8f16",SYMLINK+="DMLOG", OWNER="dmdba",GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC2/DMLOG ; chown -R dmdba:dmdba /dev_DSC2'"
从配置信息可以看出,通过 scsi_id 找到磁盘后,在/dev/下命名了磁盘信息,然后再做软链接到/dev_DSC2 下。
重启 systemd-udev-trigger 服务。
systemctl restart systemd-udev-trigger
准 备 配 置 文 件 DMDCR_CFG.INI 文 件 , 保存到dsc01机器的/home/dmdba/dmdsc/data/DSC01 下。
DCR_N_GRP= 3
DCR_VTD_PATH=/dev_DSC2/VOTE
DCR_OGUID= 1071107589
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.184.129
DCR_EP_PORT = 9836
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.184.130
DCR_EP_PORT = 9837
[GRP]
DCR_GRP_TYPE= ASM
DCR_GRP_NAME= GRP_ASM
DCR_GRP_N_EP= 2
DCR_GRP_DSKCHK_CNT= 60
[GRP_ASM]
DCR_EP_NAME= ASM0
DCR_EP_SHM_KEY= 64735
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 192.168.184.129
DCR_EP_PORT= 5836
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP_ASM]
DCR_EP_NAME= ASM1
DCR_EP_SHM_KEY= 54736
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 192.168.184.130
DCR_EP_PORT= 5837
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP]
DCR_GRP_TYPE= DB
DCR_GRP_NAME= GRP_DSC
DCR_GRP_N_EP= 2
DCR_GRP_DSKCHK_CNT= 60
[GRP_DSC]
DCR_EP_NAME= DSC01
DCR_EP_SEQNO= 0
DCR_EP_PORT= 6636
[GRP_DSC]
DCR_EP_NAME= DSC02
DCR_EP_SEQNO= 1
DCR_EP_PORT= 6637
准 备 DMASM 的 MAL 配 置 文 件 DMASVRMAL.INI , 保 存 到 DSC01机 器 的/home/dmdba/dmdsc/data/DSC01 下。
[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.184.129
MAL_PORT= 4836
[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.184.130
MAL_PORT= 4837
准备 DMDCR.INI 文件,保存到DSC01机器 home/dmdba/dmdsc/data/DSC01 下
DMDCR_PATH = /dev_DSC2/DCR
DMDCR_MAL_PATH = /home/dmdba/dmdsc/data/DSC01/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr
dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
path=/home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DMDCR_LINK_CHECK_IP=192.168.184.128
dmdcr_cfg.ini相当于是集群的总体配置,而dmdcr,ini是节点的配置,用来决定节点asm,db如何拉起,集群注册配置的磁盘位置等。
DMDCR_DB_RESTART_INTERVAL , DMDCR_ASM_RESTART_INTERVAL是重启间隔,配置为0则为不自动拉起
DMDCR_DB_STARTUP_CMD , DMDCR_ASM_STARTUP_CMD 是自动拉起时使用的cmd目录。
设置了 DMDCR_LINK_CHECK_IP,须为dsc01节点的 DMSERVER、DMASMSVR、DMCSS赋予 ping 权限
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmserver
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmasmsvr
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmcss
DMDCR_LINK_CHECK_IP:在双节点 DSC 集群中,如果节点间的 MAL 网络出现异常,DMCSS 默认会保留节点号小的节点。为了防止误判,可以配置此参数指向一个第三方 IP(如网关)。当网络异常时,节点会尝试 ping 该 IP,DMCSS 将结合 ping 的结果来综合判断,从而主动 HALT 掉真正断网的节点,保留正常节点
准备 DMINIT.INI 配置文件,保存到dsc01机器的/home/dmdba/dmdsc/data/DSC01下
dminit.ini 是达梦数据库(DM)在使用 dminit 工具进行初始化时所使用的控制文件(配置文件)。通过它,你可以集中定义数据库的物理存储结构、逻辑参数以及集群节点信息,工具会自动生成对应的dm.ini等文件供数据库启动。
DB_NAME= dsc2
SYSTEM_PATH= +DMDATA/data
SYSTEM= +DMDATA/data/dsc2/system.dbf
SYSTEM_SIZE= 128
ROLL= +DMDATA/data/dsc2/roll.dbf
ROLL_SIZE= 128
MAIN= +DMDATA/data/dsc2/main.dbf
MAIN_SIZE= 128
CTL_PATH= +DMDATA/data/dsc2/dm.ctl
LOG_SIZE= 2048
DCR_PATH= /dev_DSC2/DCR
DCR_SEQNO= 0
AUTO_OVERWRITE= 2
PAGE_SIZE = 16
EXTENT_SIZE = 16
SYSDBA_PWD=DMdba_123
SYSAUDITOR_PWD=DMauditor_123
[DSC01]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC01/DSC01_conf
PORT_NUM = 6636
MAL_HOST= 192.168.184.129
MAL_PORT= 6536
LOG_PATH= +DMLOG/log/DSC01_log1.log
LOG_PATH= +DMLOG/log/DSC01_log2.log
[DSC02]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC02/DSC02_conf
PORT_NUM = 6637
MAL_HOST= 192.168.184.130
MAL_PORT= 6537
LOG_PATH= +DMLOG/log/DSC02_log1.log
LOG_PATH= +DMLOG/log/DSC02_log2.log
dmcssm是集群监视器,
可以在任何机器上均可以启动,只要该台机器和 DMDSC 的真实机器网络是相通的,就可以监控 DMDSC 集群信息,配置文件中含各节点的网络信息等。
#和 DMDCR_CFG.INI 中的 DCR_OGUID 保持一致
CSSM_OGUID = 1071107589
#配置所有 CSS 的连接信息
#与 DMDCR_CFG.INI 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.184.129:9836
CSSM_CSS_IP = 192.168.184.130:9837
CSSM_LOG_PATH = /home/dmdba/dmdsc/data/cssm_log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间`
和 DSC01 的 DMASVRMAL.INI 内容完全一样,保存到 110 的/home/dmdba/dmdsc/data/DSC02 下
[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.184.129
MAL_PORT= 4836
[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.184.130
MAL_PORT= 4837
/home/dmdba/dmdsc/data/DSC02 下
DMDCR_PATH = /dev_DSC2/DCR
DMDCR_MAL_PATH = /home/dmdba/dmdsc/data/DSC02/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
DMDCR_LINK_CHECK_IP=192.168.184.128
同样地开启ping权限
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmserver
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmasmsvr
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmcss
在 DSC01机器使用 DMASMCMD 工具初始化所有磁盘。
/home/dmdba/dmdbms/bin/dmasmcmd
create dcrdisk '/dev_DSC2/DCR' 'DCR'
create votedisk '/dev_DSC2/VOTE' 'VOTE'
create asmdisk '/dev_DSC2/DMDATA' 'DMDATA'
create asmdisk '/dev_DSC2/DMLOG' 'DMLOG'
init dcrdisk '/dev_DSC2/DCR' from '/home/dmdba/dmdsc/data/DSC01/dmdcr_cfg.ini' identified by 'DCRpsd_123'
init votedisk '/dev_DSC2/VOTE' from '/home/dmdba/dmdsc/data/DSC01/dmdcr_cfg.ini'
DSC01启动 DMCSS:
./dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DSC02启动DMCSS:
./dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
DSC01启动 DMASMSVR
./dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DSC02启动 DMASMSVR
./dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
使用 DMASMTOOL 工具创建 ASM 磁盘组,在DSC01执行
./dmasmtool dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
创建一个 DATA 磁盘组和一个 LOG 磁盘组。
#创建 DATA 磁盘组
CREATE DISKGROUP DMDATA asmdisk '/dev_DSC2/DMDATA'
#创建 LOG 磁盘组
CREATE DISKGROUP DMLOG asmdisk '/dev_DSC2/DMLOG'
dmasmcmd 用于格式化底层物理磁盘(相当于“格式化硬盘”),而 dmasmtool 用于在这些物理磁盘之上创建逻辑磁盘组(相当于“建立逻辑分区”)
选择一个节点,启动 DMINIT 初始化数据库,。DMINIT 执行完成后,会在 config_path 目录(/home/dmdba/dmdsc/data/DSC01/DSC01_conf 和/home/dmdba/dmdsc/data/DSC02/DSC02_conf)下生成配置文件 DM.INI 和DMMAL.INI。
./dminit control=/home/dmdba/dmdsc/data/DSC01/dminit.ini
之后将整个DSC02_conf 复制到DSC02机器下的相同位置。
#DSC01 服务器启动:
cd /home/dmdba/dmdbms/bin
./dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
#DSC02 节点服务器启动:
cd /home/dmdba/dmdbms/bin
./dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
任意机器,只要安装了dm即可,这里我们在DSC01机器上启动
创建 DMCSSM 的日志存放路径
mkdir /home/dmdba/dmdsc/data/cssm_log
启动 DMCSSM 集群监视器
./dmcssm ini_path=/home/dmdba/dmdsc/data/dmcssm.ini
DMCSSM 启动之后,可使用 show 命令在 DMCSSM 监视器中查看集群状态信息。
如果看到所有节点(css,asm,db)状态均为open,说明dsc集群已搭建成功。
在网络能连上节点的任意机器上,配置dm_svc.conf,加入以下内容
DSC2=(192.168.184.129:6636,192.168.184.130:6637)
使用服务名对dsc集群进行连接
./disql SYSDBA@DSC2
dmcss 对 DMServer 的自动拉起功能先不要打开,避免影响到配置过程。
正常退出 DMDSC 集群的两个 DMServer 节点实例,不需要退出 dmcss
和 dmasmsvr。
分别编辑两个 DMDSC 节点的 dmarch.ini 文件,增加本地归档和远程归档。dmarch.ini
文件放在各自 dm.ini 中指定的 CONFIG_PATH 目录下,默认是
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC02
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC02/arch
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC01
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch
分别编辑两个dmdsc节点的dm.ini文件,打开归档参数:
ARCH_INI= 1
重启 DMDSC 集群的两个 DMServer 实例,然后再正常退出。在 DMDSC 集群生成有
归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。
./dmrman use_ap=2 dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
>BACKUP DATABASE ' /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini' FULL BACKUPSET ' /home/dmdba/dmdsc/data/bak01';
use_ap=2:备份操作将不依赖 DMAP 辅助进程
DSC01
#实例名
INSTANCE_NAME = DSC01
PORT_NUM = 6536 #数据库实例监听端口
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 次的日志发送信息
DSC02
INSTANCE_NAME = DSC02
PORT_NUM = 6537
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
增加实时归档配置,两个dsc节点都需要
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
DSC01
/home/dmdba/dmdsc/data/DSC01/DSC01_conf/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 60 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_INI = /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini #dm.ini 配置文件路径
DCR_INI = /home/dmdba/dmdsc/data/DSC01/dmdcr.ini #dmdcr.ini 配置文件路径
INST_OGUID = 1000 #守护系统唯一 OGUID 值
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
DSC02
/home/dmdba/dmdsc/data/DSC02/DSC02_conf/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
DCR_INI = /home/dmdba/dmdsc/data/DSC02/dmdcr.ini
INST_OGUID = 1000
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
//初始化备库
./dminit path=/home/dmdba/dws/ SYSDBA_PWD=DMdba_123 SYSAUDITOR_PWD=DMauditor_123
//启动 dmrman
./dmrman use_ap=2
//使用 DMDSC 库的备份集还原恢复到单节点备库
RMAN>RESTORE DATABASE '/home/dmdba/dws/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdsc/data/bak01';
RMAN> RECOVER DATABASE '/home/dmdba/dws/DAMENG/dm.ini' FOR STANDBY FROM BACKUPSET '/home/dmdba/dmdsc/data/bak01';
RMAN>RECOVER DATABASE '/home/dmdba/dws/DAMENG/dm.ini' UPDATE DB_MAGIC;
修改
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 6638
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
在 DMDSC 集群的 dmmal.ini 文件基础上,增加备库 GRP1_RT_01 的配置项。所有节点实例的 dmmal.ini 文件内容是一致的,dsc和备库的都要修改。
[mal_inst0]
mal_inst_name = DSC01
mal_host = 192.168.200.169
mal_port = 6536
MAL_INST_HOST = 192.168.200.169
MAL_INST_PORT = 6636
MAL_DW_PORT = 3566
MAL_INST_DW_PORT = 4566
[mal_inst1]
mal_inst_name = DSC02
mal_host = 192.168.200.169
mal_port = 6537
MAL_INST_HOST = 192.168.200.169
MAL_INST_PORT = 6637
MAL_DW_PORT = 3567
MAL_INST_DW_PORT = 4567
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.200.169
MAL_PORT = 6538
MAL_INST_HOST = 192.168.200.169
MAL_INST_PORT = 6638
MAL_DW_PORT = 3568
MAL_INST_DW_PORT = 4568
大写的为后添加的,MAL_INST_HOST 和 MAL_INST_PORT是实例的主机和端口
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dws/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC01/DSC02
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /home/dmdba/dws/DAMENG/dm.ini
INST_OGUID = 1000
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0 #对单节点,如果需要打开自动拉起功能,将此配置修改为 1 即可
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
任意网络可达机子上启动即可,这里我们放在备库机上
放在/home/dmdba/dws/
MON_LOG_PATH = /home/dmdba/dws/monitor_log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_CONFIRM = 0
[GRP1]
MON_INST_OGUID = 1000
MON_DW_IP = 192.168.184.129:3566/192.168.184.130:3567
MON_DW_IP = 192.168.184.128:3568
./dmserver /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini DCR_INI=home/dmdba/dmdsc/data/DSC01/dmdcr.ini mount
./dmserver /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini DCR_INI=home/dmdba/dmdsc/data/DSC02/dmdcr.ini mount
./dmserver /home/dmdba/dws/dm.ini mount
启动命令行工具disql,连接 DMDSC 集群中的任意一个节点,设置 DMDSC 主库的 OGUID值。
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE PRIMARY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
连接备库,设置OGUID值和备库模式
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(1000);
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
三台机器上均启动
./dmwatcher /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dmwatcher.ini
./dmwatcher /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dmwatcher.ini
./dmwatcher /home/dmdba/dws/dmwatcher.ini
./dmmonitor path=/home/dmdba/dws/dmmonitor.ini
在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。

使用服务名连接
使用root用户编辑/ect/dm_svc.conf,加入以下内容,具体的连接配置自行决定
DSCDW=(192.168.200.169:6636,192.168.200.169:6637,192.168.200.169:6638)
使用disql连接服务名:
./disql SYSDBA@DSCDW

文章
阅读量
获赞
