达梦共享存储集群DMDSC-2节点部署手册

简介

适用于密集交易型场景的共享存储集群,采用单库多实例架构,基于共享存储上的多个节点对外提供服务,实现高吞吐量;自动接管故障节点,保证系统高可用性;对标 RAC 架构,是适合金融行业核心生产系统的解决方案

主机名public ipprivate ip实例名端口用途
dm180192.168.137.180192.168.137.180dsc15236数据库实例 dmrw1 监听端口
dm180192.168.137.180192.168.137.180dsc19741节点 1 DCR 检查数据库实例监听端口
dm180192.168.137.180192.168.137.180dsc19341节点 1 CSS 进程 TCP 连接端口
dm180192.168.137.180192.168.137.180dsc19351节点 1 ASM 进程 TCP 连接的端口
dm180192.168.137.180192.168.137.180dsc17236节点 1 ASM 的 MAL 系统 TCP 连接的端口
dm180192.168.137.180192.168.137.180dsc19236节点 1 数据库实例的 MAL 系统 TCP 连接的端口
dm181192.168.137.181192.168.137.181dsc25236数据库实例 dmrw2 监听端口
dm181192.168.137.181192.168.137.181dsc29741节点 2 DCR 检查数据库实例监听端口
dm181192.168.137.181192.168.137.181dsc29341节点 2 CSS 进程 TCP 连接端口
dm181192.168.137.181192.168.137.181dsc29351节点 2 ASM 进程 TCP 连接的端口
dm181192.168.137.181192.168.137.181dsc27236节点 2 ASM 的 MAL 系统 TCP 连接的端口
dm181192.168.137.181192.168.137.181dsc29236节点 2 数据库实例的 MAL 系统 TCP 连接的端口

1、裸设备共享存储配置

1.1 创建虚拟机共享磁盘

-- 切换目录

cd C:\Program Files (x86)\VMware\VMware Workstation

-- 创建虚拟机共享磁盘

vmware-vdiskmanager.exe -c -s 2000MB -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\dcrdisk.vmdk"

vmware-vdiskmanager.exe -c -s 2000Mb -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\votedisk.vmdk"

vmware-vdiskmanager.exe -c -s 4000Mb -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\redodisk.vmdk"

vmware-vdiskmanager.exe -c -s 4000Mb -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\datadisk.vmdk"

-- 修改2个虚拟机的vmx配置文件,在虚拟机的安装目录下的.vmx文件最后加上以下信息(如果发现预留磁盘错误,请更改,如scsi1:7,修改为scsi1:8):

scsi0:1.present = "TRUE"

scsi0:1.fileName = "E:\bingo\VM_ALL\rac_sharedisk\dcrdisk.vmdk"

scsi0:1.mode = "independent-persistent"

scsi0:1.redo = ""

scsi0:2.present = "TRUE"

scsi0:2.fileName = "E:\bingo\VM_ALL\rac_sharedisk\votedisk.vmdk"

scsi0:2.mode = "independent-persistent"

scsi0:2.redo = ""

scsi0:3.present = "TRUE"

scsi0:3.fileName = "E:\bingo\VM_ALL\rac_sharedisk\redodisk.vmdk"

scsi0:3.mode = "independent-persistent"

scsi0:3.redo = ""

scsi0:4.present = "TRUE"

scsi0:4.fileName = "E:\bingo\VM_ALL\rac_sharedisk\datadisk.vmdk"

scsi0:4.mode = "independent-persistent"

scsi0:4.redo = ""

disk.EnableUUID="TRUE"

disk.locking="FALSE"

scsi0.shared="TRUE"

diskLib.dataCacheMaxSize="0"

diskLib.dataCacheMaxReadAheadSize="0"

diskLib.dataCacheMinReadAheadSize="0"

diskLib.dataCachePageSize="4096"

diskLib.maxUnsyncedWrites="0"

scsi0.sharedBus="VIRTUAL"

1.2 配置共享存储

注意:2个节点均需要执行

运行命令lsblk,确认磁盘名称

-- 切换目录

cd C:\Program Files (x86)\VMware\VMware Workstation

-- 创建虚拟机共享磁盘

vmware-vdiskmanager.exe -c -s 2000MB -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\dcrdisk.vmdk"

vmware-vdiskmanager.exe -c -s 2000Mb -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\votedisk.vmdk"

vmware-vdiskmanager.exe -c -s 4000Mb -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\redodisk.vmdk"

vmware-vdiskmanager.exe -c -s 4000Mb -a lsilogic -t 2 "E:\bingo\VM_ALL\rac_sharedisk\datadisk.vmdk"

-- 修改2个虚拟机的vmx配置文件,在虚拟机的安装目录下的.vmx文件最后加上以下信息(如果发现预留磁盘错误,请更改,如scsi1:7,修改为scsi1:8):

scsi0:1.present = "TRUE"

scsi0:1.fileName = "E:\bingo\VM_ALL\rac_sharedisk\dcrdisk.vmdk"

scsi0:1.mode = "independent-persistent"

scsi0:1.redo = ""

scsi0:2.present = "TRUE"

scsi0:2.fileName = "E:\bingo\VM_ALL\rac_sharedisk\votedisk.vmdk"

scsi0:2.mode = "independent-persistent"

scsi0:2.redo = ""

scsi0:3.present = "TRUE"

scsi0:3.fileName = "E:\bingo\VM_ALL\rac_sharedisk\redodisk.vmdk"

scsi0:3.mode = "independent-persistent"

scsi0:3.redo = ""

scsi0:4.present = "TRUE"

scsi0:4.fileName = "E:\bingo\VM_ALL\rac_sharedisk\datadisk.vmdk"

scsi0:4.mode = "independent-persistent"

scsi0:4.redo = ""

disk.EnableUUID="TRUE"

disk.locking="FALSE"

scsi0.shared="TRUE"

diskLib.dataCacheMaxSize="0"

diskLib.dataCacheMaxReadAheadSize="0"

diskLib.dataCacheMinReadAheadSize="0"

diskLib.dataCachePageSize="4096"

diskLib.maxUnsyncedWrites="0"

scsi0.sharedBus="VIRTUAL"

1.3 udev方式绑定裸设备

执行以下命令,新建 udev 规则文件:

vi /etc/udev/rules.d/90-raw.rules

添加以下内容:

ACTION=="add",KERNEL=="sdb",RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add",KERNEL=="sdc",RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add",KERNEL=="sdd",RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add",KERNEL=="sde",RUN+="/bin/raw /dev/raw/raw4 %N"

KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

-- 使udev配置生效

udevadm trigger --type=devices --action=change

-- 重启udev服务

systemctl restart systemd-udev-trigger.service

检查udev是否配置成功

2 安装DM8数据库

请参考资料

https://blog.csdn.net/sjj51812580/article/details/124377008

说明:如果使用静默安装,请取消数据库初始化以及启动服务等(修改配置项即可)

3、配置DMDSC

3.1 配置 DCR 初始化文件

1、创建配置文件存放目录

pssh -h /opt/list -i "mkdir -p /home/dmdba/config"

2、新建 dmdcr_cfg.ini 文件,节点 1 使用 dmdba 用户,执行以下命令

echo "DCR_N_GRP             = 3

DCR_VTD_PATH          = /dev/raw/raw2

DCR_OGUID             = 63635 

[GRP]

 DCR_GRP_TYPE         = CSS 

 DCR_GRP_NAME         = CSS

 DCR_GRP_N_EP         = 2

 DCR_GRP_DSKCHK_CNT   = 60

[CSS]

 DCR_EP_NAME          = CSS1

 DCR_EP_HOST          = 192.168.137.180

 DCR_EP_PORT          = 9341

[CSS]

 DCR_EP_NAME          = CSS2

 DCR_EP_HOST          = 192.168.137.181

 DCR_EP_PORT          = 9341

[GRP]

 DCR_GRP_TYPE         = ASM

 DCR_GRP_NAME         = ASM

 DCR_GRP_N_EP         = 2

 DCR_GRP_DSKCHK_CNT   = 60

[ASM]

 DCR_EP_NAME          = ASM1

 DCR_EP_SHM_KEY       = 93360

 DCR_EP_SHM_SIZE      = 10

 DCR_EP_HOST          = 192.168.137.180

 DCR_EP_PORT          = 9351

 DCR_EP_ASM_LOAD_PATH  = /dev/raw

[ASM]

 DCR_EP_NAME          = ASM2

 DCR_EP_SHM_KEY       = 93361

 DCR_EP_SHM_SIZE      = 10

 DCR_EP_HOST          = 192.168.137.181

 DCR_EP_PORT          = 9351

 DCR_EP_ASM_LOAD_PATH  = /dev/raw

[GRP]

 DCR_GRP_TYPE         = DB

 DCR_GRP_NAME         = DSC

 DCR_GRP_N_EP         = 2

 DCR_GRP_DSKCHK_CNT   = 60

[DSC]

 DCR_EP_NAME         = DSC1

 DCR_EP_SEQNO        = 0

 DCR_EP_PORT         = 5236

 DCR_CHECK_PORT      = 9741 

[DSC]

 DCR_EP_NAME         = DSC2

 DCR_EP_SEQNO        = 1

 DCR_EP_PORT         = 5236

 DCR_CHECK_PORT      = 9741" > /home/dmdba/config/dmdcr_cfg.ini

3.2 创建 ASM 磁盘

使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在一个节点执行)

/home/dmdba/dmdbms/bin/dmasmcmd SCRIPT_FILE=/home/dmdba/tmp/asm_init.txt

初始化配置文件内容(后期自动化脚本需要):

#asm script file

create dcrdisk '/dev/raw/raw1' 'dcr'

create votedisk '/dev/raw/raw2' 'vote'

create asmdisk '/dev/raw/raw3' 'LOG0'

create asmdisk '/dev/raw/raw4' 'DATA0'

init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'

init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini'

3.3 配置ASM的MAL系统配置文件

2 个节点都需要配置,且文件内容相同,执行以下命令

配置文件内容

echo "[MAL_INST1]

MAL_INST_NAME              = ASM1

MAL_HOST                   = 192.168.137.180

MAL_PORT                   = 7236

[MAL_INST2]

MAL_INST_NAME              = ASM2

MAL_HOST                   = 192.168.137.181

MAL_PORT                   = 7236" > /home/dmdba/config/dmasvrmal.ini

复制到所有主机

pscp -h /opt/list /home/dmdba/config/dmasvrmal.ini /home/dmdba/config/dmasvrmal.ini

3.4 配置 DCR 启动配置文件

节点1配置内容:

节点1配置内容:

echo "DMDCR_PATH     = /dev/raw/raw1

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

DMDCR_SEQNO   = 0

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

DMDCR_ASM_RESTART_INTERVAL =10

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

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

DMDCR_DB_RESTART_INTERVAL = 30

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver  path= /home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini" > /home/dmdba/config/dmdcr.ini

节点2配置内容:

echo "DMDCR_PATH     = /dev/raw/raw1

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

DMDCR_SEQNO   = 1

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

DMDCR_ASM_RESTART_INTERVAL =10

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

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

DMDCR_DB_RESTART_INTERVAL = 30

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver  path= /home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini" > /home/dmdba/config/dmdcr.ini

注意

两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0

-- 查看配置内容

pssh -h /opt/list -i "cat /home/dmdba/config/dmdcr.ini"

4、初始化及启动集群

4.1 启动 DMCSS 服务

2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令

-- 启动服务,必须切换到bin目录,否则出现共享文件找不到的问题

pssh -h /opt/list -i --timeout 0 "cd /home/dmdba/dmdbms/bin && nohup ./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini &"

-- 查看日志

tail -f /home/dmdba/dmdbms/log/dm_CSS1_202204.log

4.2 创建ASM磁盘组(磁盘服务已启动后)

./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini

在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组,执行以下命令:

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

创建数据文件磁盘组,执行以下命令:

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

asm 磁盘组创建成功,执行以下命令:

-- 查看磁盘组列表

ASM>ls

+

disk groups total [4]......

NO.1         name: DMLOG

NO.2         name: DMDATA

NO.3         name: VOTE

NO.4         name: DCR

Used time: 0.892(ms).

ASM>

4.3 初始化数据库

配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:

vi /home/dmdba/config/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     = 1024

dcr_path     = /dev/raw/raw1   #dcr 磁盘路径,目前不支持 asm,只能是裸设备

dcr_seqno     = 0

auto_overwrite   = 1

[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path    = /home/dmdba/config/dsc1

port_num     = 5236

mal_host     = 192.168.137.180

mal_port     = 9236

log_path     = +DMLOG/log/DSC1_log01.log

log_path     = +DMLOG/log/DSC1_log02.log

[DSC2] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path    = /home/dmdba/config/dsc2

port_num     = 5236

mal_host     = 192.168.137.181

mal_port     = 9236

log_path     = +DMLOG/log/DSC2_log01.log

log_path     = +DMLOG/log/DSC2_log02.log

初始化实例,节点 1 使用 dmdba 用户执行以下命令:

./dminit control=/home/dmdba/config/dminit.ini

初始化完成后会在 init 控制文件配置的目录下生成 2 个实例的配置文件

将 dsc2 目录复制到节点 2 上对应的目录下。

scp -r dsc2 192.168.137.181:/home/dmdba/config/

4.4 注册服务

注册服务

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。

2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。

节点 1 执行以下命令:

./dm_service_installer.sh -t dmcss -p css -dcr_ini /home/dmdba/config/dmdcr.ini

节点执行节点1相同命令即可

关闭前台启动的 css,以服务方式启动 css。

节点 1 执行以下命令:

systemctl start DmCSSServicecss1

节点 2 执行以下命令:

systemctl start DmCSSServicecss2

验证集群状态

配置监视器查看

任意节点新建监视器配置文件,执行以下命令:

vi /home/dmdba/config/dmcssm.ini

添加以下内容:

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致

CSSM_OGUID = 63635

#配置所有 CSS 的连接信息,

#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致

CSSM_CSS_IP = 192.168.137.180:9341

CSSM_CSS_IP = 192.168.137.181:9341

CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径

CSSM_LOG_FILE_SIZE = 1024 #每个日志文件最大 1024 MB

CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:

./dmcssm ini_path=/home/dmdba/config/dmcssm.ini

输入 show 命令,查看 cssasm db 的状态。

以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。

4.5 客户端验证

任意节点配置 dm_svc.conf 文件,执行以下命令:

vi /etc/dm_svc.conf

添加以下内容:

dmdsc=(192.168.137.180:5236,192.168.137.181:5236)

使用 disql 工具登录集群(数据库安装目录的 bin 下):

disql SYSDBA/SYSDBA@dmdsc

查询视图 v$dsc_ep_info,查看集群状态,执行以下命令:

select * from v$dsc_ep_info;

5、集群管理

5.1 重启集群

关闭数据库:监视器中执行 ep stop dsc

关闭 asm:监视器中执行 ep stop asm

关闭 css:各节点关闭各自的 css 服务 systemctl stop DmCSSServicecss1/DmCSSServicecss2

启动 css: 各节点启动各自的 css 服务 systemctl start DmCSSServicecss1/DmCSSServicecss2

启动 asm:配置了自动拉起,等待 asm 自动启动

启动数据库:配置了自动拉起,等待数据库自动启动

5.2 归档配置

生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:

设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB)。

定期删除归档日志(设置定时作业)。

共享存储集群归档需要配置本地归档和远程归档(保证每个节点都有所有归档日志)。

实例 dsc1 上配置,执行以下命令:

alter database mount;

alter database archivelog;

alter database add archivelog 'DEST=/home/dmdba/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';

alter database add archivelog 'DEST=dsc2, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/home/dmdba/remote_arch';

alter database open;

实例 dsc2 上配置,执行以下命令:

alter database mount;

alter database archivelog;

alter database add archivelog 'DEST=/home/dmdba/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';

alter database add archivelog 'DEST=dsc1, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/home/dmdba/remote_arch';

alter database open;

 更多资料,请查阅官方网站:https://eco.dameng.com

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值