注册
达梦数据库数据共享集群DSC -- 两节点搭建
培训园地/ 文章详情 /

达梦数据库数据共享集群DSC -- 两节点搭建

小小人⑤ 2025/04/01 63 0 0

概述

本文讲述的环境均是在本地的VMware虚拟机环境,仅供参考。

下面将详细的讲述DSC两节点集群搭建的操作流程和实施步骤。

环境规划

集群规划

指标项 节点一 节点二
主机名 node1 node2
CSS节点名 CSS1 CSS2
ASM节点名 ASM1 ASM2
实例名 DSC1 DSC2
操作系统 CentOS Linux 7 CentOS Linux 7
数据库版本 DM8 DM8
节点IP 192.168.2.51 192.168.2.52
心跳IP 10.10.10.1 10.10.10.2
数据库安装路径 /opt/dmdbms /opt/dmdbms
配置文件路径 /dmdata/config /dmdata/config
磁盘链接路径 /dev_dmdsc /dev_dmdsc
本地归档路径 /dmarch /dmarch
实例端口 5236 5236
CSS端口 11286 11287
ASM端口 11276 11277
DCR检查端口 11266 11267
ASM的MAL端口 11256 11257
数据库的MAL端口 11246 11247

ASM存储规划

磁盘组名称 容量/GB 数量/块 存储路径
DCR 1 1 W:\VMware\DSC\dcr_disk1.vmdk
VOTE 1 1 W:\VMware\DSC\vote_disk1.vmdk
DMDATA 10 1 W:\VMware\DSC\dmdata_disk1.vmdk
DMLOG 10 1 W:\VMware\DSC\dmlog_disk1.vmdk

环境准备

虚拟机准备

准备两台虚拟机,过程略
两台虚拟机的配置文件 .vmx 添加参数 disk.EnableUUID = "TRUE" :解决scsi_id不显示虚拟磁盘的uuid的问题

存储准备

通过CMD命令,在VMware程序所在的目录,创建4块共享磁盘

vmware-vdiskmanager.exe -c -s 1g -a lsilogic -t 2 W:\VMware\DSC\dcr_disk1.vmdk
vmware-vdiskmanager.exe -c -s 1g -a lsilogic -t 2 W:\VMware\DSC\vote_disk1.vmdk
vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 W:\VMware\DSC\dmdata_disk1.vmdk
vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 W:\VMware\DSC\dmlog_disk1.vmdk

虚拟机  创建共享磁盘  01.png

关闭2个虚拟机,并把后缀为 .vmx 用记事本打开,添加以下内容

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 = "W:\VMware\DSC\dcr_disk1.vmdk"
scsi1:0.deviceType = "disk"
scsi1:0.redo = ""

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "W:\VMware\DSC\vote_disk1.vmdk"
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "W:\VMware\DSC\dmdata_disk1.vmdk"
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.fileName = "W:\VMware\DSC\dmlog_disk1.vmdk"
scsi1:3.deviceType = "disk"
scsi1:3.redo = ""

配置完成后如下所示
left
虚拟机  创建共享磁盘  03.png

系统设置

这一步需要在root用户下操作

修改节点一主机名(节点二修改为dsc2)

hostnamectl set-hostname dsc1

关闭防火墙和selinux

systemctl disable firewalld --now
sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config

修改用户限制文件

echo "
dmdba soft data unlimited
dmdba hard data unlimited
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc  65536
dmdba hard nproc  65536
dmdba soft stack  65536
dmdba hard stack  65536" >> /etc/security/limits.conf
echo "
DefaultTaskMax=infinity
DefaultLimitNOFILE=65535
DefaultLimitNPROC=infinity
DefaultLimitMEMLOCK=infinity
DefaultLimitCORE=infinity" >> /etc/systemd/system.conf

注意
重启服务器使参数生效

如果暂时不能重启,需要登录到dmdba用户下临时调整参数 ulimit -n 65536 ,不然安装DM软件时会报错

创建用户和属组

groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
echo Dameng123 | passwd --stdin dmdba

创建目录和更改属组

mkdir -p /opt/dmdbms
mkdir -p /dmdata
chown -R dmdba:dinstall /opt/dmdbms /dmdata

上传安装包至目录 /soft

解压缩并挂载

unzip /soft/dm8_20241227_x86_rh7_64.zip -d /soft/dm8
mount -o loop /soft/dm8/dm8_20241227_x86_rh7_64.iso /mnt

安装DM软件

这一步需要在dmdba用户下操作

cd /mnt
./DMInstall.bin -i

相关输出日志

[dmdba@dm8 mnt]$ ./DMInstall.bin -i
安装语言: 
[1]: 简体中文
[2]: English
请选择安装语言 [1]:1
解压安装程序......... 
硬件架构校验通过!
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
......
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1995M

请选择安装目录 [/home/dmdba/dmdbms]:/opt/dmdbms
可用空间: 50G
是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结
安装位置: /opt/dmdbms
所需空间: 1995M
可用空间: 50G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2025-02-20 18:21:19 
[INFO] 安装达梦数据库...
2025-02-20 18:21:19 
[INFO] 安装 基础 模块...
2025-02-20 18:21:30 
[INFO] 安装 服务器 模块...
2025-02-20 18:21:34 
[INFO] 安装 客户端 模块...
2025-02-20 18:21:44 
[INFO] 安装 驱动 模块...
2025-02-20 18:21:48 
[INFO] 安装 手册 模块...
2025-02-20 18:21:49 
[INFO] 安装 服务 模块...
2025-02-20 18:21:51 
[INFO] 移动日志文件。
2025-02-20 18:21:51 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/opt/dmdbms/script/root/root_installer.sh

安装结束

注意
安装目录默认是/home/dmdba/dmdbms,需要修改自己定义的目录,此处为 /opt/dmdbms ,安装完成后需要在root用户下执行脚本,会创建 DmAPService 服务并启动。

执行脚本

这一步需要在root用户下操作

/opt/dmdbms/script/root/root_installer.sh

其他路径准备

这一步需要在root用户下操作,两个节点都需要执行

创建磁盘链接目录

mkdir -p /dev_dmdsc

创建存放配置文件的目录

mkdir -p /dmdata/config

创建本地归档目录

mkdir /dmarch

更改属组

chown -R dmdba:dinstall /dev_dmdsc /dmarch /dmdata

绑定共享磁盘

注意:有两种共享磁盘绑定方法,一种是UDEV的方式,另一种是多路径方式。此处使用UDEV的方式绑定磁盘,操作较为方便、简单。

UDEV方式绑定磁盘

这一步需要在root用户下操作,两个节点都需要执行

查看磁盘信息

lsblk

知识篇  数据共享集群  搭建  磁盘信息  001.png
知识篇  数据共享集群  搭建  磁盘信息  002.png

获取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

知识篇  数据共享集群  搭建  UUID  001.png
知识篇  数据共享集群  搭建  UUID  002.png

创建磁盘链接

创建规则文件
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=="36000c295b6e32d2d2503b90c4f5f46a6", 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=="36000c294219a4064311879e303478364", 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=="36000c292af269473a66ccc1d6fab8785", 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=="36000c29f415e51c1aed676980394b073", SYMLINK+="DMLOG",OWNER="dmdba", GROUP="dinstall",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name;ln -s /dev/DMLOG /dev_dmdsc/DMLOG'"

注意
从配置信息可以看出,通过 scsi_id 找到磁盘后,在 /dev 下命名了磁盘信息,然后再做软链接到 /dev_dmdsc 下。软链接的目录可以是 /dev 下的独立目录,在 /dev下新建目录,重启服务器后会消失;也可以是其他自行创建的独立目录,目录路径必须以 /dev 开始,否则DM不会认为这是使用物理磁盘的真实环境。
之所以要软链接到独立目录,是因为 DMDSC 启动时会扫描目录下所有磁盘,如果目录中存在与当前 DMDSC 系统无关的磁盘,则 DMDSC 将启动失败。因此需要软链接到独立目录,保证该目录下仅包含当前 DMDSC 系统使用的共享存储磁盘,避免 DMDSC 启动失败。

重启服务

systemctl restart systemd-udev-trigger

查看是否生效

ls -lth /dev_dmdsc

知识篇  数据共享集群  搭建  绑定磁盘  001.png

通过blockdev --getsize64 /dev_dmdsc/* 检查裸设备是否挂载成功,能够正常反馈各个裸设备空间大小即为成功。

搭建集群

配置集群全局信息文件

这一步需要在dmdba用户下操作,在节点一上执行即可

  • dmdcr_cfg.ini 是用于格式化 DCR 和 Voting Disk 的配置文件。
  • 配置内容包括:集群环境全局信息、集群组信息、ASM组、以及组内实例节点信息。

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             = 2                    #组内节点个数
  DCR_GRP_DSKCHK_CNT       = 60                   #磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME              = CSS1                 #CSS节点名
  DCR_EP_HOST              = 10.10.10.1           #心跳地址
  DCR_EP_PORT              = 11286                #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS2
  DCR_EP_HOST              = 10.10.10.2
  DCR_EP_PORT              = 11287

[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              = ASM1                 #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 64735                #共享内存标识
  DCR_EP_SHM_SIZE          = 1024                 #共享内存大小
  DCR_EP_HOST              = 10.10.10.1           #心跳地址
  DCR_EP_PORT              = 11276                #ASM端口
  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              = 10.10.10.2
  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             = 2
  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

信息

  1. 在用 dmasmcmd 工具执行 init votedisk disk_path from dcr_cfg_path时,指定的 disk_path 必须和 dcr_cfg_path 里面配置的 DCR_VTD_PATH 相同。
  2. 如果配置 dmcssm,dmcssm 的 OGUID 必须和 DCR_OGUID 保持一致。
  3. DCR_N_GRP 必须和实际配置的组数目保持一致。
  4. CSS 和 ASM 组的 DCR_GRP_N_EP 要相等,DB 的 DCR_GRP_N_EP 要小于等于CSS/ASM 的 DCR_GRP_N_EP。
  5. ASM节点的DCR_EP_NAME必须和DMASM系统使用的dmasvrmal.ini配置文件里的 MAL_INST_NAME 保持一致。
  6. DB 节点的 DCR_EP_NAME 必须和数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致。
  7. 所有DB节点的DCR_EP_NAME都不能重复,DB组内的DCR_EP_SEQNO不能重复。
  8. dmdcr_cfg.ini 配置文件中的所有路径均不支持中文路径。

初始化 ASM 磁盘

这一步需要在dmdba用户下操作,在节点一上执行即可

cd /opt/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'

知识篇  数据共享集群  搭建  ASM初始化  001.png

信息
DMASMCMD 是 DMASM 文件系统初始化工具,用来格式化裸设备为 DMASM 磁盘,并初始化 DCR Disk、 Voting Disk。格式化 DMASM 磁盘就是在裸设备的头部写入 DMASM 磁盘特征描述符号,包括 DMASM 标识串、 DMASM 磁盘名、 以及 DMASM 磁盘大小等信息。若修改了配置dmdcr_cfg.ini则需要重新初始化磁盘组,否则报错“无效的ASM磁盘”。

补充说明
当一个磁盘组要部署2块磁盘时,此处也需要新创建磁盘信息。例如:有两块磁盘部署在DMDATA磁盘组中,第二块 create asmdisk '/dev_dmdsc/DMDATA2' 'DMDATA2' 即可。

配置 ASM 的 MAL 系统文件

这一步需要在dmdba用户下操作,两个节点都需要执行,配置文件相同

创建dmasvrmal.ini配置文件
vim /dmdata/config/dmasvrmal.ini

[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 10.10.10.1
MAL_PORT = 11256
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 10.10.10.2
MAL_PORT = 11257

信息
DMASMSVR 是提供 DMASM 服务的主要载体,每个提供 DMASM 服务的节点都必须启动一个 DMASMSVR 服务器,这些 DMASMSVR 一起组成共享文件集群系统,提供共享文件的全局并发控制。dmasvrmal.ini 用于配置节点之间 DMASMSVR 服务的通信。

配置 DMDCR 文件

这一步需要在dmdba用户下操作,两个节点都需要执行,配置文件不同

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 = /opt/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini

# DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效
# DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/dmdata/dsc1_config/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 = /opt/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini

# DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效
# DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/dmdata/dsc2_config/dm.ini dcr_ini=/dmdata/config/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60
DMDCR_ASM_TRACE_LEVEL = 2

信息
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。 DMASM 的两个节点分别配置 dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqno 分别为 0 和 1。

启动 ASM 相关服务

这一步需要在dmdba用户下操作,两个节点都需要执行,并且服务处于运行状态才可以进行下一步操作

第一步
两个节点先启动DMCSS服务:

cd /opt/dmdbms/bin
./dmcss DCR_INI=/dmdata/config/dmdcr.ini

第二步,另开一个窗口
两个节点再启动DMASM服务:

cd /opt/dmdbms/bin
./dmasmsvr DCR_INI=/dmdata/config/dmdcr.ini

注意
始终保持两个节点的DMCSS和DMASM服务处于运行状态。直到后面执行停止服务的命令为止。执行其他的操作都需要另开窗口执行。
如果运行报错需要根据报错处理问题再进行下一步。

创建 DMASM 磁盘组

这一步需要在dmdba用户下操作,在节点一执行即可

cd /opt/dmdbms/bin
./dmasmtool DCR_INI=/dmdata/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev_dmdsc/DMLOG'     #创建日志磁盘组
create diskgroup 'DMDATA' asmdisk '/dev_dmdsc/DMDATA'   #创建数据磁盘组

知识篇  数据共享集群  搭建  创建ASM磁盘组  001.png

补充说明
如果有2块磁盘部署在一个组里,需要将另一块磁盘添加进来。例如:alter diskgroup 'DMDATA' add asmdisk '/dev_dmdsc/DMDATA2'

数据库初始化

这一步需要在dmdba用户下操作,在节点一执行即可

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

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

[DSC1]
  config_path              = /dmdata/dsc1_config
  port_num                 = 5236
  mal_host                 = 10.10.10.1
  mal_port                 = 11246
  log_path                 = +DMLOG/log/dsc1_log01.log
  log_path                 = +DMLOG/log/dsc1_log02.log 
[DSC2]
  config_path              = /dmdata/dsc2_config
  port_num                 = 5236
  mal_host                 = 10.10.10.2
  mal_port                 = 11247
  log_path                 = +DMLOG/log/dsc2_log01.log
  log_path                 = +DMLOG/log/dsc2_log02.log

执行初始化操作

cd /opt/dmdbms/bin
./dminit control=/dmdata/config/dminit.ini SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123

传输节点二的参数文件

scp -r /dmdata/dsc2_config/ 192.168.2.52:/dmdata/

开启归档模式

分别修改节点一和节点二上的 dm.ini 文件
节点一(节点二)
vim /dmdata/dsc1_config/dm.ini(vim /dmdata/dsc2_config/dm.ini)

ARCH_INI = 1

配置归档文件

这一步需要在dmdba用户下操作,两个节点都需要执行,配置文件不同

双重本地归档,最大化保证归档连续性,ASM 正常情况下,本地归档永远是连续的,所以将本地归档一份留在本地,一份放在 ASM 中。

节点一
vim /dmdata/dsc1_config/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 = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 409600
ARCH_FLUSH_BUF_SIZE = 32

节点二
vim /dmdata/dsc2_config/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 = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 409600
ARCH_FLUSH_BUF_SIZE = 32

启动数据库实例

这一步需要在dmdba用户下操作,两个节点都需要执行

cd /opt/dmdbms/bin

节点一

./dmserver /dmdata/dsc1_config/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

节点二

./dmserver /dmdata/dsc2_config/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

配置监视器

这一步需要在dmdba用户下操作,在节点一操作即可。也可以在第三台服务上配置

创建监视器可以观察集群的整体运行状况
vim /dmdata/config/cssm.ini

CSSM_OGUID = 63635
CSSM_CSS_IP = 10.10.10.1:11286
CSSM_CSS_IP = 10.10.10.2:11287
CSSM_LOG_PATH = /dmdata/log
CSSM_LOG_FILE_SIZE = 1024
CSSM_LOG_SPACE_LIMIT = 0

启动监视器

这一步需要在dmdba用户下操作,在节点一操作即可

cd /opt/dmdbms/bin
./dmcssm ini_path=/dmdata/config/cssm.ini

停止集群

在监视器界面执行

查看集群状态

show

知识篇  数据共享集群  搭建  集群状态  001.png

停止DB服务

ep stop GRP_DSC

知识篇  数据共享集群  搭建  停止DB  001.png

停止ASM服务

ep stop GRP_ASM

知识篇  数据共享集群  搭建  停止ASM  001.png

停 DMCSS 进程
在集群两个节点之前打开的 ./dmcss DCR_INI=/dmdata/config/dmdcr.ini 的窗口中 exit 回车即可退出前台启动的整个集群

注意
监视器本身就需要依赖CSS服务,所以不可以再监视器中停止CSS服务。

注册服务

注意
需要所有节点把文件 /dmdata/config/dmdcr.ini 注销的关于ASM和DB的参数全部生效。

这一步需要在root用户下操作,两个节点都需要执行

cd /opt/dmdbms/script/root/

创建 CSS 服务

节点一执行

./dm_service_installer.sh -t dmcss -dcr_ini /dmdata/config/dmdcr.ini -p CSS1

节点二执行

./dm_service_installer.sh -t dmcss -dcr_ini /dmdata/config/dmdcr.ini -p CSS2

创建 ASM 服务

节点一执行

./dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdata/config/dmdcr.ini -y DmCSSServiceCSS1.service -p ASM1

节点二执行

./dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdata/config/dmdcr.ini -y DmCSSServiceCSS2.service -p ASM2

创建 DSC 服务

节点一执行

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/dsc1_config/dm.ini -dcr_ini /dmdata/config/dmdcr.ini -y DmASMSvrServiceASM1.service -p DSC1

节点二执行

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/dsc2_config/dm.ini -dcr_ini /dmdata/config/dmdcr.ini -y DmASMSvrServiceASM2.service -p DSC2

创建 CSSM 服务

注意
/dmdata/config/cssm.ini 文件部署在哪里,就在哪个服务器上创建服务。此处在节点一执行即可。

./dm_service_installer.sh -t dmcssm -cssm_ini /dmdata/config/cssm.ini -p CSSM

启停服务顺序

启动服务顺序

CSS-ASM-DSC

这一步需要在root用户下操作,两个节点都需要执行

启动节点一和节点二的CSS服务:

systemctl start DmCSSServiceCSS1
systemctl start DmCSSServiceCSS2

信息
集群启动一般情况下只需要启动两端节点 CSS 服务即可,service DmCSSServiceCSS start,其会自动拉起 ASM 服务和 DSC 服务。

停止服务顺序

DSC-ASM-CSS

这一步需要在dmdba用户下操作,在节点一进入dmcssm监视器并在监视器界面执行

停止数据库实例

ep stop grp_dsc

停止ASM服务

ep stop grp_asm

停止CSS服务

这一步需要在root用户下操作,两个节点都需要执行

节点一

systemctl stop DmCSSServiceCSS1

节点二

systemctl stop DmCSSServiceCSS2

体验故障自动重连

配置服务名

这一步需要在第三台DM数据库服务器上,在root用户下操作

vim /etc/dm_svc.conf

TIME_ZONE=(480)
LANGUAGE=(cn)
DSC=(192.168.2.51:5236,192.168.2.52:5236)
[DSC]
CLUSTER=(DSC)
SWITCH_TIMES=(20)
SWTICH_INTERVAL=(2000)
LOGIN_DSC_CTRL=(1)
LOGIN_ENCRYPT=(0)

测试

这一步需要在第三台DM数据库服务器上,在dmdba用户下操作

  1. 第三台机器连接到DSC
disql sysdba/Dameng123@DSC
  1. 确认当前用户已经连接到的节点实例
select name from v$instance;

知识篇  数据共享集群  搭建  测试  001.png
用户当前连接到节点一上 DSC1 实例。不要退出这个会话。

  1. 关闭 DSC1 实例,或者将节点1所在的这台主机关机。

  2. 等待几秒后,还在刚刚的会话中再次执行这条语句,服务器会返回提示已切换当前连接。

select name from v$instance;

知识篇  数据共享集群  搭建  测试  002.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服