注册
两节点DSC+一节点DW集群搭建
技术分享/ 文章详情 /

两节点DSC+一节点DW集群搭建

Phi Sagittarii Merak 2026/05/14 98 0 0

##安装前准备

虚拟机开启磁盘uuid显示

在虚拟机配置文件中添加参数disk.EnableUUID = “TRUE”

创建共享磁盘

.\vmware-vdiskmanager.exe -c -s 1g -a lsilogic -t 2 D:\VMware\DSC\dcr_disk1.vmdk

.\vmware-vdiskmanager.exe -c -s 1g -a lsilogic -t 2 D:\VMware\DSC\vote_disk1.vmdk

.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 D:\VMware\DSC\dmdata_disk1.vmdk

.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 D:\VMware\DSC\dmlog_disk1.vmdk

image.png

配置虚拟机共享磁盘参数

关闭虚拟机,在配置文件添加以下参数。添加完成后重启虚拟机

disk.locking = “FALSE”

diskLib.dataCacheMaxSize = “0”

diskLib.dataCacheMaxReadAheadSize = “0”

diskLib.dataCacheMinReadAheadSize = “0”

diskLib.maxUnsyncedWrites = “0”

scsi1.present = “TRUE”

scsi1.virtualDev = “lsilogic”

scsil.sharedBus = “VIRTUAL”

scsi1:0.present = “TRUE”

scsi1:0.mode = “independent-persistent”

scsi1:0.fileName = “D:\VMware\DSC\dcr_disk1.vmdk”

scsi1:0.deviceType = “disk”

scsi1:0.redo = “”

scsi1:1.present = “TRUE”

scsi1:1.mode = “independent-persistent”

scsi1:1.fileName = “D:\VMware\DSC\vote_disk1.vmdk”

scsi1:1.deviceType = “disk”

scsi1:1.redo = “”

scsi1:2.present = “TRUE”

scsi1:2.mode = “independent-persistent”

scsi1:2.fileName = “D:\VMware\DSC\dmdata_disk1.vmdk”

scsi1:2.deviceType = “disk”

scsi1:2.redo = “”

scsi1:3.present = “TRUE”

scsi1:3.mode = “independent-persistent”

scsi1:3.fileName = “D:\VMware\DSC\dmlog_disk1.vmdk”

scsi1:3.deviceType = “disk”

scsi1:3.redo = “”

获取共享磁盘UUID

for i in `cat /proc/partitions | awk '{print 4}' |grep sd | grep [b-z]`; do echo “### i: \`/usr/lib/udev/scsi_id -g -u -d /dev/i`”; done

创建规则文件

vim /etc/udev/rules.d/66-dmdevices.rules

KERNEL==“sd*”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c29ec7411cc843e19b048194b6b0”, SYMLINK+=“DCR”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”,RUN+="/bin/sh -c ‘chown dmdba:dinstall /dev/$name;ln -s /dev/DCR /dev_dmdsc/DCR’"

KERNEL==“sd*”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c29aa50547c6140bd93926dcb0b6”, SYMLINK+=“VOTE”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”,RUN+="/bin/sh -c ‘chown dmdba:dinstall /dev/$name;ln -s /dev/VOTE /dev_dmdsc/VOTE’"

KERNEL==“sd*”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c290335567e2f0fcd402def69836”, SYMLINK+=“DMDATA”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”,RUN+="/bin/sh -c ‘chown dmdba:dinstall /dev/$name;ln -s /dev/DMDATA /dev_dmdsc/DMDATA’"

KERNEL==“sd*”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c29f6fe2a7fe4fb8dd380493b1c6”, SYMLINK+=“DMLOG”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”,RUN+="/bin/sh -c ‘chown dmdba:dinstall /dev/$name;ln -s /dev/DMLOG /dev_dmdsc/DMLOG’"

生效udev规则

systemctl restart systemd-udev-trigger
ls -lth /dev_dmdsc
blockdev --getsize64 /dev_dmdsc/*
image.png

两节点DSC搭建

创建集群配置文件

vim /dmdata/config/dmdcr_cfg.ini

DCR_N_GRP = 3 #集群环境有多少个GROUP,范围:1~16

DCR_VTD_PATH = /dev_dmdsc/VOTE #vote

DCR_OGUID = 63635

[GRP]

DCR_GRP_TYPE = CSS #组类型(CSS/ASM/DB)

DCR_GRP_NAME = GRP_CSS #组名

DCR_GRP_N_EP = 3 #组内节点个数

DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳容错时间,单位:秒

[GRP_CSS]

DCR_EP_NAME = CSS1 #CSS节点名

DCR_EP_HOST = 192.168.43.130 #心跳地址

DCR_EP_PORT = 11286 #CSS端口

[GRP_CSS]

DCR_EP_NAME = CSS2

DCR_EP_HOST = 192.168.43.131

DCR_EP_PORT = 11287

[GRP]

DCR_GRP_TYPE = ASM

DCR_GRP_NAME = GRP_ASM

DCR_GRP_N_EP = 3

DCR_GRP_DSKCHK_CNT = 60

[GRP_ASM]

DCR_EP_NAME = ASM1 #ASM节点名,和dmasvrmal的MAL_INST_NAME一致

DCR_EP_SHM_KEY = 64735 #共享内存标识

DCR_EP_SHM_SIZE = 1024 #共享内存大小

DCR_EP_HOST = 192.168.43.130 #心跳地址

DCR_EP_PORT = 11276 #监听端口

DCR_EP_ASM_LOAD_PATH = /dev_dmdsc

[GRP_ASM]

DCR_EP_NAME = ASM2

DCR_EP_SHM_KEY = 64736

DCR_EP_SHM_SIZE = 1024

DCR_EP_HOST = 192.168.43.131

DCR_EP_PORT = 11277

DCR_EP_ASM_LOAD_PATH = /dev_dmdsc

[GRP]

DCR_GRP_TYPE = DB

DCR_GRP_NAME = GRP_DSC

DCR_GRP_N_EP = 3

DCR_GRP_DSKCHK_CNT = 60

[GRP_DSC]

DCR_EP_NAME = DSC1 #实例名,和dm.ini的INSTANCE_NAME一致

DCR_EP_SEQNO = 0 #组内序号,不能重复

DCR_EP_PORT = 5236 #实例端口,和dm.ini的PORT_NUM一致

DCR_CHECK_PORT = 11266 #DCR检查端口

[GRP_DSC]

DCR_EP_NAME = DSC2

DCR_EP_SEQNO = 1

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 11267

创建ASM磁盘

/home/dmdba/dmdbms/bin/dmasmcmd

create dcrdisk ‘/dev_dmdsc/DCR’ ‘DCR’

create votedisk ‘/dev_dmdsc/VOTE’ ‘VOTE’

create asmdisk ‘/dev_dmdsc/DMDATA’ ‘DMDATA’

create asmdisk ‘/dev_dmdsc/DMLOG’ ‘DMLOG’

init dcrdisk ‘/dev_dmdsc/DCR’ from ‘/dmdata/config/dmdcr_cfg.ini’ identified by ‘Dameng123’

init votedisk ‘/dev_dmdsc/VOTE’ from ‘/dmdata/config/dmdcr_cfg.ini’
image.png

配置ASM的MAL系统文件

vim /dmdata/config/dmasvrmal.ini

[MAL_INST1]

MAL_INST_NAME = ASM1

MAL_HOST = 192.168.43.130

MAL_PORT = 11256

[MAL_INST2]

MAL_INST_NAME = ASM2

MAL_HOST = 192.168.43.131

MAL_PORT = 11257

配置 DMDCR 文件

#配置 DMDCR 文件(所有节点进行)

vim /dmdata/config/dmdcr.ini

#节点一

DMDCR_PATH = /dev_dmdsc/DCR #dcr

DMDCR_MAL_PATH =/dmdata/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO = 0

# ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 30

# 初次搭建环境时,取消该参数,需要手动运行ASM服务,后面搭建无误后,在使该参数生效

# DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini

# DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 60

# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效

# DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/dmdata/data/DSC1/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

DMDCR_AUTO_OPEN_CHECK = 60

DMDCR_ASM_TRACE_LEVEL = 2

#节点二

DMDCR_PATH = /dev_dmdsc/DCR

DMDCR_MAL_PATH =/dmdata/config/dmasvrmal.ini

DMDCR_SEQNO = 1

# ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 30

# 初次搭建环境时,取消该参数,需要手动运行ASM服务,后面搭建无误后,在使该参数生效

# DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini

# DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 60

# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效

# DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/dmdata/data/DSC2/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

DMDCR_AUTO_OPEN_CHECK = 60

DMDCR_ASM_TRACE_LEVEL = 2

启动ASM相关服务

/home/dmdba/dmdbms/bin/dmcss DCR_INI=/dmdata/config/dmdcr.ini

/home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/dmdata/config/dmdcr.ini

创建DMASM磁盘组

/home/dmdba/dmdbms/bin/dmasmtool DCR_INI=/dmdata/config/dmdcr.ini

create diskgroup ‘DMLOG’ asmdisk ‘/dev_dmdsc/DMLOG’ #创建日志磁盘组

create diskgroup ‘DMDATA’ asmdisk ‘/dev_dmdsc/DMDATA’ #创建数据磁盘组

image.png

创建数据库初始化配置文件

vim /dmdata/config/dminit.ini

db_name = DSC

system_path = +DMDATA/data

system = +DMDATA/data/dsc/system.dbf

system_size = 128

main = +DMDATA/data/dsc/main.dbf

main_size = 128

roll = +DMDATA/data/dsc/roll.dbf

roll_size = 128

ctl_path = +DMDATA/data/dsc/dm.ctl

ctl_size = 8

log_size = 2048

dcr_path = /dev_dmdsc/DCR

dcr_seqno = 0

auto_overwrite = 1

PAGE_SIZE = 32

EXTENT_SIZE = 32

CASE_SENSITIVE = 0

BLANK_PAD_MODE = 1

CHARSET = 1

SYSDBA_PWD = Dameng123

SYSAUDITOR_PWD = Dameng123

[DSC1]

config_path = /dmdata/data/dsc1

port_num = 5236

mal_host = 192.168.43.130

mal_port = 11246

log_path = +DMLOG/log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

[DSC2]

config_path = /dmdata/data/dsc2

port_num = 5236

mal_host = 192.168.43.131

mal_port = 11247

log_path = +DMLOG/log/dsc2_log01.log

log_path = +DMLOG/log/dsc2_log02.log

初始化节点

/home/dmdba/dmdbms/bin/dminit control=/dmdata/config/dminit.ini

scp -r /dmdata/data/dsc2/ 192.168.43.131:/dmdata/data
image.png

开启DSC归档

vi /dmdata/data/dsc1/dm.ini

vi /dmdata/data/dsc2/dm.ini

ARCH_INI = 1

配置DSC归档文件

vi /dmdata/data/dsc1/dmarch.ini

ARCH_WAIT_APPLY = 0

ARCH_LOCAL_SHARE = 1

ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = +DMDATA/ARCH/DSC1/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 204800

ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC2

ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC2/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 204800

ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmdata/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 409600

ARCH_FLUSH_BUF_SIZE = 32

vi /dmdata/data/dsc2/dmarch.ini

ARCH_WAIT_APPLY = 0

ARCH_LOCAL_SHARE = 1

ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = +DMDATA/ARCH/DSC2/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 204800

ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE1]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC1

ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC1/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 204800

ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmdata/arch

ARCH_FILE_SIZE = 2048

ARCH_SPACE_LIMIT = 409600

ARCH_FLUSH_BUF_SIZE = 32

DW备库搭建

初始化实例

/home/dmdba/dmdbms/bin/dminit PATH=/dmdata/data DB_NAME=DWDB INSTANCE_NAME=DWDB PORT_NUM=5236 PAGE_SIZE=16 CHARSET=0 SYSDBA_PWD=tpcc@1234 SYSAUDITOR_PWD=tpcc@1234 CASE_SENSITIVE=1 LOG_PATH=/dmdata/data/DWDB/DAMENG01.log LOG_SIZE=256 LOG_PATH=/dmdata/data/DWDB/DAMENG02.log LOG_SIZE=256

开启备库归档

vi /dmdata/data/DWDB/dm.ini

ARCH_INI = 1

备份DSC集群并在备库还原

/home/dmdba/dmdbms/bin/dmrman dcr_ini=/dmdata/config/dmdcr.ini

backup database ‘/dmdata/data/dsc1/dm.ini’ full backupset ‘/dmdata/dmbak/BACKUP_FILE’

scp -r /dmdata/dmbak/BACKUP_FILE dmdba@192.168.43.132:/dmdata/dmbak

/home/dmdba/dmdbms/bin/dmrman

restore database ‘/dmdata/data/DWDB/dm.ini’ from backupset ‘/dmdata/dmbak/BACKUP_FILE’;

recover database ‘/dmdata/data/DWDB/dm.ini’ from backupset ‘/dmdata/dmbak/BACKUP_FILE’;

recover database ‘/dmdata/data/DWDB/dm.ini’ update DB_MAGIC;

集群相关配置文件调整

备库修改dm.ini文件

vi /dmdata/data/DWDB/dm.ini

PORT_NUM = 5236 #主备库保持一致

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

修改dmarch.ini 文件

vi /dmdata/data/dsc1/dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DWDB

vi /dmdata/data/dsc2/dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DWDB

vi /dmdata/data/DWDB/dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = DSC1/DSC2

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dmdata/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 10240

修改dmmal.ini文件

[mal_inst0]

mal_inst_name = DSC1

mal_host = 192.168.43.130

mal_port = 9340

mal_inst_host = 192.168.43.130

mal_inst_port = 5236

mal_dw_port = 9348

mal_inst_dw_port = 9349

[mal_inst1]

mal_inst_name = DSC2

mal_host = 192.168.43.131

mal_port = 9340

mal_inst_host = 192.168.43.131

mal_inst_port = 5236

mal_dw_port = 9348

mal_inst_dw_port = 9349

[mal_inst2]

mal_inst_name = DWDB

mal_host = 192.168.43.132

mal_port = 9340

mal_inst_host = 192.168.43.132

mal_inst_port = 5236

mal_dw_port = 9348

mal_inst_dw_port = 9349

创建dmwatcher.ini文件

vi /dmdata/config/dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = MANUAL

DW_ERROR_TIME = 60

INST_ERROR_TIME = 35

INST_RECOVER_TIME = 60

INST_OGUID = 45332

INST_INI = /dmdata/data/dsc1/dm.ini

DCR_INI = /dmdata/config/dmdcr.ini

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

INST_AUTO_RESTART = 0

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = MANUAL

DW_ERROR_TIME = 60

INST_ERROR_TIME = 35

INST_RECOVER_TIME = 60

INST_OGUID = 45332

INST_INI = /dmdata/data/dsc2/dm.ini

DCR_INI = /dmdata/config/dmdcr.ini

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

INST_AUTO_RESTART = 0

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

vi /dmdata/data/DWDB/dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = MANUAL

DW_ERROR_TIME = 60

INST_ERROR_TIME = 35

INST_RECOVER_TIME = 60

INST_OGUID = 45332

INST_INI = /dmdata/data/DWDB/dm.ini

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

INST_AUTO_RESTART = 1

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DSC1 -watcher_ini /dmdata/config/dmwatcher.ini

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DSC2 -watcher_ini /dmdata/config/dmwatcher.ini

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DWDB -watcher_ini /dmdata/data/DWDB/dmwatcher.ini

创建 dmmonitor.ini 文件

vi /dmdata/config/dmmonitor.ini

MON_DW_CONFIRM = 1

MON_LOG_PATH = …/log

MON_LOG_INTERVAL = 0

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 45332

MON_DW_IP = 192.168.43.130:9348/192.168.43.131:9348

MON_DW_IP = 192.168.43.132:9348

vi /dmdata/data/DWDB/dmmonitor.ini

MON_DW_CONFIRM = 1

MON_LOG_PATH = …/log

MON_LOG_INTERVAL = 0

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 45332

MON_DW_IP = 192.168.43.130:9348/192.168.43.131:9348

MON_DW_IP = 192.168.43.132:9348

启动数据库并调整参数

#dsc两节点
disql SYSDBA/Dameng123@localhost:5236

alter database mount;

sp_set_oguid(45332);

alter database primary;

#dw备库

SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);

alter database mount;

sp_set_oguid(45332);

alter database standby;

SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

启动守护进程

/home/dmdba/dmdbms/bin/DmWatcherServiceDSC1 start

/home/dmdba/dmdbms/bin/DmWatcherServiceDSC2 start

/home/dmdba/dmdbms/bin/DmWatcherServiceDWDB start

启动监视器检查集群状态

/home/dmdba/dmdbms/bin/dmmonitor /dmdata/data/DWDB/dmmonitor.ini
image.png

达梦社区技术https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服