1、主机准备:
1.1准备两台台机器:主节点:192.168.122.231 节点:192.168.122.232
如果ip不一样,请修改,并对应修改后续涉及的对应ip
安装麒麟v10操作系统(本文档测试时使用的操作系统)
两个节点安装达梦V8,安装路径:/dm8/dmdbms/
1.2 检测裸设备是否存在:
确保有四个裸设备存在。
ll /dev/raw/
1.2、请注意:先关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
1.3、每台机器准备5个控制台
1、运行css;2、运行asm;3、运行db;4、disql测试;5、其他临时操作,如scp拷贝、vim等
1.4、配置文件:dmdcr_cfg…ini(主节点)、dminit.ini(主节点)
dmasvrmal.ini (两节点一样) dmcssm.ini (两节点一样)
dmarch.ini(两节点不一样)、dmdcr.ini(两节点不一样,修改 DMDCR_SEQNO /DMDCR_ASM_STARTUP_CMD/DMDCR_DB_STARTUP_CMD)
参数文件统一放在各节点的/dm8/config文件夹下,请注意:两个节点的部分文件内容不一样。
1.5 端口规划(为了维护方便可自行修改各节点端口号):
序号 端口号 用途 位置
1 5236 数据库实例端口(DCR_EP_PORT) dmdcr_cfg.ini(DB)、dminit.ini
2 5336 CSS节点 TCP 监听端口(DCR_EP_PORT) dmdcr_cfg.ini(CSS)、dmcssm.ini
3 5436 ASM节点 TCP 监听端口(DCR_EP_PORT) dmdcr_cfg.ini
4 5536 DCR检查端口(DCR_CHECK_PORT) dmdcr_cfg.ini
5 5636 ASM MAL 监听端口(MAL_PORT) dmasvrmal.ini
6 5736 DM MAL 监听端口(MAL_PORT) dminit.ini
端口 配置文件 组件 对端 用途
5236 dmdcr_cfg.ini / dminit.ini DB 实例 客户端 业务连接(对外)
5336 dmdcr_cfg.ini / dmcssm.ini CSS CSSM/其他 CSS 集群同步服务
5436 dmdcr_cfg.ini ASM 其他 ASM/DCR ASM TCP 监听
5536 dmdcr_cfg.ini DB 实例 DCR DCR 检查
5636 dmasvrmal.ini ASM 节点 其他 ASM 节点 ASM 间 MAL 通信
5736 dminit.ini DB 实例 其他 DB 实例 DB 间 MAL 通信
简单记:5636 是 ASM 层内部通信,5736 是数据库层内部通信,两者各管一层,缺一不可。
dmdcr_cfg.ini
CSS
2、各ini配置信息
=dmdcr_cfg.ini=
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[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.122.231
DCR_EP_PORT = 5336
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.122.232
DCR_EP_PORT = 5336
[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 = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.122.231
DCR_EP_PORT = 5436
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.122.232
DCR_EP_PORT = 5436
DCR_EP_ASM_LOAD_PATH = /dev/raw
[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 = DMDSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 5536
[GRP_DSC]
DCR_EP_NAME = DMDSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 5536
=dminit.ini=
db_name = DSC
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1
dcr_seqno = 0
page_size=32
extent_size= 32
charset = 1
sysdba_pwd=Dameng123
sysauditor_pwd=Dameng123
auto_overwrite = 1
[DMDSC0]
config_path = /dm8/config_dsc0
port_num = 5236
mal_host = 192.168.122.231
mal_port = 5736
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
[DMDSC1]
config_path = /dm8/config_dsc1
port_num = 5236
mal_host = 192.168.122.232
mal_port = 5736
log_path = +DMLOG/log/dsc2_log01.log
log_path = +DMLOG/log/dsc2_log02.log
=dmasvrmal.ini=
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.122.231
MAL_PORT = 5636
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.122.232
MAL_PORT = 5636
=dmcssm.ini=
CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.122.231:5336
CSSM_CSS_IP = 192.168.122.232:5336
CSSM_LOG_PATH =/dm8/cssm/log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0
=dmarch.ini(主节点)=
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/dsc0/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DMDATA/dsc1/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
=dmarch.ini(节点)=
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/dsc1/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC0
ARCH_INCOMING_PATH = +DMDATA/dsc0/arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
=dmdcr.ini(主节点)=
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
#DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/DmASMSvrServiceASM start
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/config_dsc0/dm.ini dcr_ini=/dm8/config/dmdcr.ini
#DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/DmServiceDMS start
=dmdcr.ini(节点)=
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/config_dsc1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
3、使用DMASMCMD工具初始化初始化磁盘组(主节点,这里为192.168.122.231)
[dmdba@localhost ~]$
/dm8/dmdbms/bin/dmasmcmd
dmasmcmd V8
ASM>
在asm提示符下分别运行:
#asm script file(修正后)
#对应 (5G,DCR 盘)
create dcrdisk ‘/dev/raw/raw1’ ‘DCR’
#对应 (5G,VOTE 盘)
create votedisk ‘/dev/raw/raw2’ ‘VOTE’
#对应 (8G,REDO 日志盘)
create asmdisk ‘/dev/raw/raw3’ ‘LOG0’
#对应 (10G,数据盘1)
create asmdisk ‘/dev/raw/raw4’ ‘DATA0’
#初始化 DCR 盘
init dcrdisk ‘/dev/raw/raw1’ from ‘/dm8/config/dmdcr_cfg.ini’ identified by ‘Dameng123’
#初始化 VOTE 盘
init votedisk ‘/dev/raw/raw2’ from ‘/dm8/config/dmdcr_cfg.ini’
4、启动DMCSS、DMASM服务程序(每个节点,请注意:每个节点的ini文件不一样,注意修改。请注意,每个节点都要运行,否则无法使用)
#请注意:服务开启后一直运行,待后面配置服务注册时通过ctrl+c退出服务
[dmdba@localhost config]$
/dm8/dmdbms/bin/dmcss DCR_INI=/dm8/config/dmdcr.ini
/dm8/dmdbms/bin/dmasmsvr DCR_INI=/dm8/config/dmdcr.ini
5、创建DMASM磁盘组(任意一个节点,这里为192.168.122.231)
[dmdba@localhost ~]$
/dm8/dmdbms/bin/dmasmtool DCR_INI=/dm8/config/dmdcr.ini
dmasmtool V8
ASM>
#创建日志磁盘组
create diskgroup ‘DMLOG’ asmdisk ‘/dev/raw/raw3’
#创建数据磁盘组
create diskgroup ‘DMDATA’ asmdisk ‘/dev/raw/raw4’
6、初始化实例。使用dminit初始化DB环境(任意一个节点,这里为192.168.122.231)
[dmdba@localhost ~]$
/dm8/dmdbms/bin/dminit control=/dm8/config/dminit.ini
7、拷贝DB实例的配置参数到其他机器(任意一个节点,这里为192.168.122.231)
[dmdba@localhost ~]$
scp -r /dm8/config_dsc0 dmdba@192.168.122.232:/dm8/config_dsc0
scp -r /dm8/config_dsc1 dmdba@192.168.122.232:/dm8/config_dsc1
8、启动服务器(每个节点,请注意:第一次必须在什么都不动的情况下运行一次)
[dmdba@localhost config]$
/dm8/dmdbms/bin/dmserver /dm8/config_dsc0/dm.ini dcr_ini=/dm8/config/dmdcr.ini
/dm8/dmdbms/bin/dmserver /dm8/config_dsc1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
检查正常后按ctrl+c 退出
9、修改归档(每个节点)
修改dm.ini 修改ARCH_INI的值为1(默认值为0)
10、修改归档,创建dmarch.ini(每个节点,注意修改数据)
主节点:
dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/dsc0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DM_DATA/dsc1/arch
第二个节点:
dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/dsc1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC0
ARCH_INCOMING_PATH = +DM_DATA/dsc0/arch
11.启动数据库(每个节点)
归档修改后重新启动服务器,检查是否正常
主节点:
请注意:路径中的config_dsc0
[dmdba@localhost config]$
/dm8/dmdbms/bin/dmserver /dm8/config_dsc0/dm.ini dcr_ini=/dm8/config/dmdcr.ini
第二个节点:
请注意:路径中的config_dsc1
[dmdba@localhost config]$
/dm8/dmdbms/bin/dmserver /dm8/config_dsc1/dm.ini dcr_ini=/dm8/configdmdcr.ini
12、关闭CSS、ASM、DB服务(每个节点)
#ctrl+c退出CSS、ASM、DB服务器(在两个节点)
请注意:前面已经启动了css、asm、db服务
13、注册服务CSS、ASM、DB服务(每个节点,请注意:每个节点的ini文件不一样,注意修改)
#切换root账号
[root@localhost ~]
主节点:
请注意依赖的服务名称
[root@dameng mnt]#
#css/dcr
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -p Dmcss -dcr_ini /dm8/config/dmdcr.ini -auto true
systemctl start DmCSSServiceDmcss
#asm
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -p Dmasmsvr -dcr_ini /dm8/config/dmdcr.ini -y DmCSSServiceDmcss.service -auto true
systemctl start DmASMSvrServiceDmasmsvr
#db。注意修改config_dsc0
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -p Dmserver -dcr_ini /dm8/config/dmdcr.ini -y DmASMSvrServiceDmasmsvr.service -auto true -dm_ini /dm8/config_dsc0/dm.ini
systemctl start DmASMSvrServiceDmserver
第二个节点:
请注意依赖的服务名称
[root@dameng mnt]#
#css/dcr
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -p Dmcss -dcr_ini /dm8/config/dmdcr.ini -auto true
systemctl start DmCSSServiceDmcss
#asm
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -p Dmasmsvr -dcr_ini /dm8/config/dmdcr.ini -y DmCSSServiceDmcss.service -auto true
systemctl start DmASMSvrServiceDmasmsvr
#db。注意修改config_dsc1
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -p Dmserver -dcr_ini /dm8/config/dmdcr.ini -y DmASMSvrServiceDmasmsvr.service -auto true -dm_ini /dm8/config_dsc1/dm.ini
systemctl start DmASMSvrServiceDmserver
14、配置CSS监视器(dmcssm.ini )
dmcssm.ini 通常只需要在一个地方配置和启动,而不是每个节点都运行。
它的核心作用是:让你从任意一台机器上,远程查看和管理整个 DMDSC 集群的状态。
是监视器的“通讯录”,通常只放在一台独立机器或任意节点上,告诉监视器“集群里的 CSS 都在哪里”。
请注意:这里不同于主备集群,这里使用dmcssm配合dmcssm.ini
请注意:这里没有将css监视器配置为服务
[dmdba@dameng ~]#
/dm8/dmdbms/bin/dmcssm ini_path=/dm8/monitor/dmcssm.ini
15、配置重连机制 dm_svc.conf (每个节点,如果需要)
dmdsc=(192.168.122.231:5236,192.168.122.232:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)
16、如果需要 开启 RLOG_APPEND_SYSTAB_LOGIC :
call sp_set_para_value(1,‘RLOG_APPEND_SYSTAB_LOGIC’,1);
RLOG_APPEND_SYSTAB_LOGIC 是达梦数据库(DM)的一个系统级参数,用于控制是否在日志中记录系统表的逻辑操作。它主要用于数据同步场景(如 DMHS、DMDRS),是开启 DDL 同步功能的前提条件之一。
参数核心说明
默认值与取值范围:默认值为 0(不启用),取值范围为 0 或 1。设置为 1 时启用该功能。
依赖前提:必须在 RLOG_APPEND_LOGIC 参数已启用的前提下,该参数才会生效。
参数性质:这是一个系统级动态参数。部分文档提到修改后需重启数据库生效,但根据较新的官方社区信息,它支持动态修改。
为何需要开启
在达梦数据库的复制或同步软件(如 DMHS、DMDRS)中,默认不启用 DDL(数据定义语言,如建表、改表)同步功能。开启 RLOG_APPEND_SYSTAB_LOGIC 后,系统表的逻辑操作会被写入日志,同步工具才能捕获并同步这些 DDL 变更。
17、 如果需要在服务中增加延时启动ExecStartPre=/usr/bin/sleep 10,否则raw设备可能未就绪导致服务无法启动
#root账号
vim /usr/lib/systemd/system/DmCSSServiceDmdscCss.service
增加
[Service]
Type=forking
ExecStartPre=/usr/bin/sleep 10
18、结束
文章
阅读量
获赞
