配置

节点

Ip地址

角色

硬件配置

A

192.168.159.101

DSC0

1核 CPU /3.5GB 内存 / 40GB 磁盘

B

192.168.159.102

DSC1

1核 CPU /3.5GB 内存 / 40GB 磁盘

C

192.168.159.103

DW

1核 CPU /3.5GB 内存 / 40GB 磁盘

ASM软链接路径

指向的实际设备

用途说明

大小

/dev/dm/asm-dmdcr

/dev/sdb

DCR 盘(集群配置盘)

1G

/dev/dm/asm-dmvote

/dev/sdc

Vote 盘(仲裁盘)

1G

/dev/dm/asm-dmdata

/dev/sde

数据盘(存放数据文件)

10G

/dev/dm/asm-dmlog

/dev/sdd

日志盘(存放联机日志)

10G

/dev/dm/asm-dmarch

/dev/sdf

归档盘(存放归档日志)

10G

节点

实例端口

CSS监听端口

ASM监听端口

PORT_NUM

ASM MAL监听端口

DM MAL监听端口

A

5236

11286

11276

5236

11266

11246

B

5236

11286

11276

5236

11266

11246

C

5236

11286

11276

5236

11266

11246

两台虚拟机的OGUID为均210715。操作系统为CentOS Linux release 7.9 (Core);达梦镜像版本为dm8_20251016_x86_CentOS7_64.iso;安装目录为/home/dmdba/dmdbms;实例目录为/home/dmdba/dmdbms/data。

搭建2节点DSC集群

精简流程如下(后续配置DW过程中会修改部分配置)

##脚本写88文件
[root@localhost ~]# vim uuid.sh
[root@localhost ~]# chmod +x uuid.sh
[root@localhost ~]# ./uuid.sh
[root@localhost ~]# vim 88-dm-asmdevices.rules

KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29ce2d55fc345bf3ed8fd7d294e", SYMLINK+="dm/asm-dmdcr",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c292d058722acb3e0bc0529ceefe", SYMLINK+="dm/asm-dmvote",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c290ba88194ba6623504348c47e6", SYMLINK+="dm/asm-dmlog",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29355a32c979d98e99b0f382462", SYMLINK+="dm/asm-dmdata",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29435cf8137c6c2540425e65662", SYMLINK+="dm/asm-dmarch",OWNER="dmdba", GROUP="dinstall",MODE="0660"

##复制
cp 88-dm-asmdevices.rules /etc/udev/rules.d/88-dm-asmdevices.rules

##重启
udevadm trigger --type=devices --action=change 
udevadm control --reload-rules

##授权
chown  dmdba:dinstall /dev/dm/asm-* -R

##验证
[root@localhost ~]# ls -l /dev/dm/
总用量 0
lrwxrwxrwx 1 dmdba dinstall 6 1月   5 23:29 asm-dmarch -> ../sdf
lrwxrwxrwx 1 dmdba dinstall 6 1月   5 23:29 asm-dmdata -> ../sde
lrwxrwxrwx 1 dmdba dinstall 6 1月   5 23:29 asm-dmdcr -> ../sdb
lrwxrwxrwx 1 dmdba dinstall 6 1月   5 23:29 asm-dmlog -> ../sdd
lrwxrwxrwx 1 dmdba dinstall 6 1月   5 23:29 asm-dmvote -> ../sdc

[root@localhost ~]# ls -l /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
brw-rw---- 1 dmdba dinstall 8, 16 1月   5 23:29 /dev/sdb
brw-rw---- 1 dmdba dinstall 8, 32 1月   5 23:29 /dev/sdc
brw-rw---- 1 dmdba dinstall 8, 48 1月   5 23:29 /dev/sdd
brw-rw---- 1 dmdba dinstall 8, 64 1月   5 23:29 /dev/sde
brw-rw---- 1 dmdba dinstall 8, 80 1月   5 23:29 /dev/sdf

blockdev --getsize64 /dev/dm/asm-dmdcr
blockdev --getsize64 /dev/dm/asm-dmvote
blockdev --getsize64 /dev/dm/asm-dmlog
blockdev --getsize64 /dev/dm/asm-dmdata
blockdev --getsize64 /dev/dm/asm-dmarch

# 1. 创建 config 目录
mkdir -p /home/dmdba/dmdbms/config
chown -R dmdba:dinstall /home/dmdba/dmdbms/config
chmod 755 /home/dmdba/dmdbms/config

##AB创建dmdcr_cfg.ini
vim /home/dmdba/dmdbms/config/dmdcr_cfg.ini
##AB创建dmasvrmal.ini
vim /home/dmdba/dmdbms/config/dmasvrmal.ini
##将该文件分别拷贝到A和B机器的/home/dmdba/dmdbms/config/DSC0和/home/dmdba/dmdbms/config/DSC1目录下
##确保目标目录存在
mkdir -p /home/dmdba/dmdbms/config/DSC0
mkdir -p /home/dmdba/dmdbms/config/DSC1
##拷贝文件
cp /home/dmdba/dmdbms/config/dmasvrmal.ini /home/dmdba/dmdbms/config/DSC0/
cp /home/dmdba/dmdbms/config/dmasvrmal.ini /home/dmdba/dmdbms/config/DSC1/

##AB创建dmdcr.ini
vim /home/dmdba/dmdbms/config/dmdcr.ini
cp /home/dmdba/dmdbms/config/dmdcr.ini /home/dmdba/dmdbms/config/DSC0/
cp /home/dmdba/dmdbms/config/dmdcr.ini /home/dmdba/dmdbms/config/DSC1/

##前台启动DMCSS
/home/dmdba/dmdbms/bin/dmcss DCR_INI=/home/dmdba/dmdbms/config/DSC0/dmdcr.ini
/home/dmdba/dmdbms/bin/dmcss DCR_INI=/home/dmdba/dmdbms/config/DSC1/dmdcr.ini
##前台启动DMASM
/home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/DSC0/dmdcr.ini
/home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/DSC1/dmdcr.ini
##A创建dminit.ini
vim /home/dmdba/dmdbms/config/dminit.ini
#  CASE_SENSITIVE           = Y
#  CHARSET                  = 0

##A初始化磁盘组
/home/dmdba/dmdbms/bin/dmasmcmd
ASM> create dcrdisk '/dev/dm/asm-dmdcr' 'dcr'
ASM> create votedisk '/dev/dm/asm-dmvote' 'vote'
ASM> init dcrdisk '/dev/dm/asm-dmdcr' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'Dameng123'
ASM> init votedisk '/dev/dm/asm-dmvote' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'
ASM> create asmdisk '/dev/dm/asm-dmdata' 'DATA0'
ASM> create asmdisk '/dev/dm/asm-dmlog' 'LOG0'
ASM> create asmdisk '/dev/dm/asm-dmarch' 'ARCH0'
ASM> exit

##AB中停止服务
/home/dmdba/dmdbms/bin/DmCSSServiceCSS stop
/home/dmdba/dmdbms/bin/DmASMSvrServiceASM stop
##卸载服务
sudo /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS
sudo /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmASMSvrServiceASM
##注册服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
##启动服务
/home/dmdba/dmdbms/bin/DmCSSServiceCSS start
/home/dmdba/dmdbms/bin/DmASMSvrServiceASM start

##A中创建磁盘组
##启动dmasmtool
/home/dmdba/dmdbms/bin/dmasmtool DCR_INI=/home/dmdba/dmdbms/config/DSC0/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/dm/asm-dmlog'
create diskgroup 'DMDATA' asmdisk '/dev/dm/asm-dmdata'
create diskgroup 'DMARCH' asmdisk '/dev/dm/asm-dmarch'


##A中初始化实例
/home/dmdba/dmdbms/bin/dminit control=/home/dmdba/dmdbms/config/dminit.ini


##A中初始化成功后拷贝文件到B中
scp -r /home/dmdba/dmdbms/config/DSC1 192.168.159.102:/home/dmdba/dmdbms/config/


##A机器编辑dm.ini与dmarch.ini
vim /home/dmdba/dmdbms/config/DSC0/dm.ini
vim /home/dmdba/dmdbms/config/DSC0/dmarch.ini
##B机器编辑dmarch.ini
vim /home/dmdba/dmdbms/config/DSC1/dm.ini
vim /home/dmdba/dmdbms/config/DSC1/dmarch.ini


##注册DMSERVER服务
##AB
root用户执行:
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/config/DSC0/dm.ini -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/config/DSC1/dm.ini -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS
##启动服务
/home/dmdba/dmdbms/bin/DmServiceDMS start
##停止服务
/home/dmdba/dmdbms/bin/DmServiceDMS stop
##卸载服务
sudo /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDMS


##配置监视器AB都执行
vi /home/dmdba/dmdbms/bin/dmcssm.ini

备份数据

关闭DSC集群的DB服务

/home/dmdba/dmdbms/bin/DmServiceDMS stop

初始化C机器中的实例

/home/dmdba/dmdbms/bin/dminit \
  PATH='/dmdata/data' \
  INSTANCE_NAME=DW01 \
  DB_NAME=DAMENG \
  SYSDBA_PWD=Dameng@123 \
  SYSAUDITOR_PWD=Dameng@123 \
  PAGE_SIZE=32 \
  EXTENT_SIZE=16 \
  BLANK_PAD_MODE=1 \
  CASE_SENSITIVE=1 \
  CHARSET=0 \
  UNICODE_FLAG=1 \
  LOG_SIZE=512 \
  AUTO_OVERWRITE=1

进行脱机备份

/home/dmdba/dmdbms/bin/dmrman  DCR_INI=/home/dmdba/dmdbms/config/DSC0/dmdcr.ini
backup database '/home/dmdba/dmdbms/config/DSC0/dm.ini' full backupset '/home/dmdba/dmbak/BACKUP_FILE' compressed level 5 parallel 8;

检验备份有效性

check backupset '/home/dmdba/dmbak/BACKUP_FILE' ;

发送备份文件给C机器

scp -r /home/dmdba/dmbak/BACKUP_FILE dmdba@192.168.159.103:/home/dmdba/dmbak/

C机器中恢复

/home/dmdba/dmdbms/bin/dmrman 
check backupset '/home/dmdba/dmbak/BACKUP_FILE' ;
RESTORE DATABASE  '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/BACKUP_FILE';
RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/BACKUP_FILE';
RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

配置文件

修改AB机器的dm.ini

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 次的日志发送信息

修改C机器的dm.ini

vim /dmdata/data/DAMENG/dm.ini
INSTANCE_NAME = DW01
PORT_NUM = 5236  
DW_INACTIVE_INTERVAL = 60  
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64

ABC机器配置一致的dmmal.ini

vim /home/dmdba/dmdbms/config/DSC0/dmmal.ini
vim /home/dmdba/dmdbms/config/DSC1/dmmal.ini
vim /dmdata/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL=87
MAL_CONN_FAIL_INTERVAL=33
MAL_SYS_BUF_SIZE=6000
MAL_BUF_SIZE=3000
MAL_VPOOL_SIZE=5000
MAL_COMPRESS_LEVEL=0
[MAL_INST0]
MAL_INST_NAME   = DSC0
MAL_HOST   = 192.168.159.101
MAL_PORT   = 11246
MAL_INST_HOST            = 192.168.159.101
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
MAL_LINK_MAGIC            =1 
[MAL_INST1]
MAL_INST_NAME            = DSC1
MAL_HOST                 = 192.168.159.102
MAL_PORT                 = 11246
MAL_INST_HOST            = 192.168.159.102
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
MAL_LINK_MAGIC            =1
[MAL_INST2]
MAL_INST_NAME            = DW01
MAL_HOST                 = 192.168.159.103
MAL_PORT                 = 11246
MAL_INST_HOST            = 192.168.159.103
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
MAL_LINK_MAGIC            =1

ABC配置dmarch.ini

vim /home/dmdba/dmdbms/config/DSC0/dmarch.ini
#A配置dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 4028
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 4028
[ARCHIVE_REALTIME1]
ARCH_TYPE         = REALTIME 
ARCH_DEST         = DW01   #备库实例名
vim /home/dmdba/dmdbms/config/DSC1/dmarch.ini
#B配置dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 4028
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 4028
[ARCHIVE_REALTIME1]
ARCH_TYPE         = REALTIME 
ARCH_DEST         = DW01
vim /dmdata/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME 
ARCH_DEST = DSC0/DSC1 
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 5120

ABC配置dmwatcher.ini

vim /home/dmdba/dmdbms/config/DSC0/dmwatcher.ini
#A
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/config/DSC0/dm.ini
DCR_INI=/home/dmdba/dmdbms/config/DSC0/dmdcr.ini
INST_STARTUP_CMD = /home/dmdba/dmdbms/config/DmServiceDSC0 start
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
vim /home/dmdba/dmdbms/config/DSC1/dmwatcher.ini
#B
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/config/DSC1/dm.ini
DCR_INI=/home/dmdba/dmdbms/config/DSC1/dmdcr.ini
INST_STARTUP_CMD = /home/dmdba/dmdbms/config/DmServiceDSC1 start
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
vim /dmdata/data/DAMENG/dmwatcher.ini
#C
DW_TYPE = GLOBAL 
DW_MODE = AUTO
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /dmdata/data/DAMENG/dm.ini
INST_AUTO_RESTART = 0
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0 
RLOG_APPLY_THRESHOLD = 0 

注册服务

A注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/config/DSC0/dm.ini -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS -m mount
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/config/DSC0/dmwatcher.ini

B注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/config/DSC1/dm.ini -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS -m mount
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /home/dmdba/dmdbms/config/DSC1/dmwatcher.ini

C注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DW1_01 -dm_ini /dmdata/data/DAMENG/dm.ini -m mount
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini
/home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDW1_01

配置监视器

ABC配置监视器

vi /home/dmdba/dmdbms/bin/dmmonitor.ini
#监视器
MON_DW_CONFIRM         = 1
MON_LOG_PATH           = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL       = 0 
MON_LOG_FILE_SIZE      = 32 
MON_LOG_SPACE_LIMIT    = 0 
[GRP1]
MON_INST_OGUID    = 453331
MON_DW_IP         = 192.168.159.101:52141/192.168.159.102:52141
MON_DW_IP         = 192.168.159.103:52141
vi /home/dmdba/dmdbms/bin/dmcssm.ini
#CSSM
CSSM_OGUID                 = 210715
CSSM_CSS_IP                = 192.168.159.101:11286
CSSM_CSS_IP                = 192.168.159.102:11286
CSSM_LOG_PATH              = home/dmdba/dmdbms/log
CSSM_LOG_FILE_SIZE         = 512
CSSM_LOG_SPACE_LIMIT       = 2048

设置主备

重启AB的ASM和CSS服务

/home/dmdba/dmdbms/bin/DmCSSServiceCSS stop
/home/dmdba/dmdbms/bin/DmASMSvrServiceASM stop
/home/dmdba/dmdbms/bin/DmCSSServiceCSS start
/home/dmdba/dmdbms/bin/DmASMSvrServiceASM start

AB启动DB服务

/home/dmdba/dmdbms/bin/DmServiceDMS start

C启动DB服务

systemctl status DmServiceDW1_01

A修改配置

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453331);
SQL> alter database primary;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

C修改配置

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> sp_set_oguid(453331);
SQL> alter database standby;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

查看监视器

ABC启动守护进程

/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher start

查看监视器

/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmdbms/bin/dmmonitor.ini

/home/dmdba/dmdbms/bin/dmcssm INI_PATH=/home/dmdba/dmdbms/bin/dmcssm.ini

https://eco.dameng.com

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐