当前位置: 首页 > ds >正文

达梦数据库raw绑定磁盘-DSC集群部署

一、内容概述

本文讨论了在VMware Workstation 17 Pro环境下进行达梦dsc集群部署的相关操作,涵盖从创建共享磁盘到配置启动各服务及相关注意事项等内容。关键要点包括:

1.创建共享磁盘

在Windows系统中,利用vmware - vdiskmanager.exe命令创建15GB共享磁盘,指定适配器类型和磁盘类型等参数。

2.虚拟机文件配置

在dmdsc0、dmdsc1虚拟机的.vmx文件末尾添加特定参数,禁用磁盘锁定并设置共享总线行为,避免报错。

3.安装达梦软件

在dmdsc0、dmdsc1、dmcssm机器上,关闭防火墙、创建用户组和用户、调整系统资源限制后,下载安装达梦软件。

4.配置相关文件

在dmdsc0控制节点配置DCR初始化配置文件,创建ASM磁盘;所有节点配置dmasvrmal.ini和dmdcr.ini文件。

5.启动集群服务

按顺序启动DMCSS、DMASM服务,创建磁盘组,初始化数据库实例,启动DMDSC实例。

6.监视器配置与服务注册

在dmcssm节点配置并启动监视器,将各服务注册为系统服务,方便启动和关闭。

7.其他操作

配置故障自动重连,明确DMDSC启动、关闭流程,开启归档日志。

二、环境资源分配

操作环境:VMware Workstation Pro 17

dmdsc集群

机器ip

主机名

操作系统

资源配置

实例名

dmdsc0

(控制节点)

192.168.52.50

dmdsc0

kylin-v10

4核4G,磁盘20g

DMDSC0

dmdsc1

192.168.52.51

dmdsc1

kylin-v10

4核4G,磁盘20g

DMDSC1

监视器

192.168.52.32

dmcssm

kylin-v10

4核4G,磁盘20g

dmdsc集群

机器ip

实例名

达梦软件安装目录

数据存储目录

dmdsc0(控制节点)

192.168.52.50

DMDSC0

/dm8/dminstall

/dm8/data

dmdsc1

192.168.52.51

DMDSC1

/dm8/dminstall

/dm8/data

监视器

192.168.52.32

/dm8/dminstall

/dm8/data

三、windows系统中创建共享磁盘

1、在VMware Workstation虚拟机产品安装的目录下找到vmware-vdiskmanager.exe,打开终端;

2、使用cmd 终端

Windows键+r

cd 命令可以在 终端黑框 进入目录

dir 命令相当于Linux下的ls 可以查看当前目录下 的使用文件和目录

cd C:\BDownload\VM17

3、执行命令创建共享磁盘,语句如下:

.\vmware-vdiskmanager.exe -c -s 15000Mb -a lsilogic -t 2 "D:\share\sharedisk.vmdk"

# -c:表示创建一个新的虚拟磁盘。

# -s 15000Mb:指定虚拟磁盘的大小为 15000 兆字节(即 15GB)。

# -a lsilogic:指定虚拟磁盘的适配器类型为 LSI Logic(这是一个 SCSI 控制器)。

# -t 2:指定虚拟磁盘的类型。类型 2 表示“growable”虚拟磁盘,即磁盘文件在创建时很小,但随着数据的增加而增长,直到达到指定的最大大小。

# "D:\share\sharedisk.vmdk":指定虚拟磁盘文件的路径和名称,D:\share这个目录要提前创建好。

四、配置dmdsc0、dmdsc1两台虚拟机文件

到两台虚拟机(dmdsc0、dmdsc1)目录下的.vmx查看是否末尾有以下参数,如果没有的手动加入,不然到时候同时开始两台虚拟机会出现以下画面中的报错。

1、添加dmdsc0数据

disk.locking="FALSE" 
scsi0:1.SharedBus="Virtual" 
scsi1:1.SharedBus="Virtual" 

这三行配置命令通常用于虚拟机(VM)的设置中,尤其是在 VMware 等虚拟化环境中。以下是每行命令的具体作用:

  1. disk.locking="FALSE"
    • 作用:禁用磁盘锁定机制。
    • 解释:默认情况下,虚拟机可能会对虚拟磁盘文件进行锁定,以防止多个虚拟机同时写入同一个磁盘文件,从而避免数据损坏。将此选项设置为 "FALSE" 后,虚拟机将不再对磁盘文件进行锁定。
    • 适用场景:当你需要在多个虚拟机之间共享同一块虚拟磁盘时(例如集群环境或共享存储),可以禁用磁盘锁定。
  1. scsi0:1.SharedBus="Virtual"
    • 作用:将 SCSI 控制器 scsi0 的第一个设备(1 表示设备编号)设置为共享总线模式,模式为“虚拟”。
    • 解释SharedBus 参数定义了 SCSI 总线的共享模式。"Virtual" 模式允许多个虚拟机连接到同一个 SCSI 总线,但并不真正实现物理级别的共享。
    • 适用场景:适用于需要模拟多虚拟机访问同一 SCSI 总线的场景,但不建议用于真正的高可用性集群环境。
  1. scsi1:1.SharedBus="Virtual"
    • 作用:将 SCSI 控制器 scsi1 的第一个设备(1 表示设备编号)也设置为共享总线模式,模式为“虚拟”。
    • 解释:与上一条类似,只不过这里是指另一个 SCSI 控制器(scsi1)。
    • 适用场景:同样适用于需要模拟共享 SCSI 总线的场景。

总结:

  • disk.locking="FALSE":禁用磁盘锁定,允许共享磁盘。
  • scsi0:1.SharedBus="Virtual"scsi1:1.SharedBus="Virtual":设置 SCSI 总线为虚拟共享模式,允许多虚拟机模拟共享总线的行为。

这些配置通常用于测试、开发或特定的集群环境(如虚拟化中的共享存储场景)。但在生产环境中使用时需谨慎,确保不会因共享导致数据冲突或损坏。

2、添加dmdsc1数据

disk.locking="FALSE" 
scsi0:1.SharedBus="Virtual" 
scsi1:1.SharedBus="Virtual" 

内容解释:

这三行配置命令通常用于虚拟机(VM)的设置中,尤其是在 VMware 等虚拟化环境中。以下是每行命令的具体作用:

  1. disk.locking="FALSE"
    • 作用:禁用磁盘锁定机制。
    • 解释:默认情况下,虚拟机可能会对虚拟磁盘文件进行锁定,以防止多个虚拟机同时写入同一个磁盘文件,从而避免数据损坏。将此选项设置为 "FALSE" 后,虚拟机将不再对磁盘文件进行锁定。
    • 适用场景:当你需要在多个虚拟机之间共享同一块虚拟磁盘时(例如集群环境或共享存储),可以禁用磁盘锁定。
  1. scsi0:1.SharedBus="Virtual"
    • 作用:将 SCSI 控制器 scsi0 的第一个设备(1 表示设备编号)设置为共享总线模式,模式为“虚拟”。
    • 解释SharedBus 参数定义了 SCSI 总线的共享模式。"Virtual" 模式允许多个虚拟机连接到同一个 SCSI 总线,但并不真正实现物理级别的共享。
    • 适用场景:适用于需要模拟多虚拟机访问同一 SCSI 总线的场景,但不建议用于真正的高可用性集群环境。

总结:

  • disk.locking="FALSE":禁用磁盘锁定,允许共享磁盘。
  • scsi0:1.SharedBus="Virtual"scsi1:1.SharedBus="Virtual":设置 SCSI 总线为虚拟共享模式,允许多虚拟机模拟共享总线的行为。

这些配置通常用于测试、开发或特定的集群环境(如虚拟化中的共享存储场景)。但在生产环境中使用时需谨慎,确保不会因共享导致数据冲突或损坏。

五、dmdsc0、dmdsc1虚拟机添加永久磁盘

dmdsc0、dmdsc1两台虚拟机新增永久磁盘,两台虚拟机操作步骤相同,步骤如下:

1、点击编辑虚拟机设置

2、选择硬盘,点击添加

3、点击硬盘,点击下一步

4、选择磁盘类型,选择SCSI,点击下一步

5、选择使用现有虚拟磁盘,点击下一步

6、选择之前创建好的虚拟磁盘文件:D:\share\sharedisk.vmdk ,点击完成,最后选择保持现有格式

7、点击高级按钮

8、选择新添加的磁盘设置成独立+永久模式,最后点击确定,完成操作

1、点击编辑虚拟机设置

2、选择硬盘,点击添加

3、点击硬盘,点击下一步

4、选择磁盘类型,选择SCSI,点击下一步

5、选择使用现有虚拟磁盘,点击下一步

6、选择之前创建好的虚拟磁盘文件:D:\share\sharedisk.vmdk

7、选择保持现有格式

8、点击高级按钮

六、到dmdsc0机器中执行磁盘分区操作

1、开启虚拟机dmdsc0,执行fdisk -l命令查看系统新添加的磁盘信息

fdisk -l

2、对该磁盘进行磁盘分区操作,步骤如下

2.1、fdisk 命令的使用

命令(输入 m 获取帮助):m

帮助:

DOS (MBR)

a 开关 可启动 标志

b 编辑嵌套的 BSD 磁盘标签

c 开关 dos 兼容性标志

常规

d 删除分区

F 列出未分区的空闲区

l 列出已知分区类型

n 添加新分区

p 打印分区表

t 更改分区类型

v 检查分区表

i 打印某个分区的相关信息

杂项

m 打印此菜单

u 更改 显示/记录 单位

x 更多功能(仅限专业人员)

脚本

I 从 sfdisk 脚本文件加载磁盘布局

O 将磁盘布局转储为 sfdisk 脚本文件

保存并退出

w 将分区表写入磁盘并退出

q 退出而不保存更改

新建空磁盘标签

g 新建一份 GPT 分区表

G 新建一份空 GPT (IRIX) 分区表

o 新建一份的空 DOS 分区表

s 新建一份空 Sun 分区表

2.2、输入fdisk /dev/sdb进入划分命令

fdisk /dev/sdb

2、依次输入 n --> p--> 1--> 回车--> +1G--> 回车,完成第一块磁盘划分 
3、依次输入 n --> p--> 2--> 回车--> +1G--> 回车,完成第二块磁盘划分 
4、依次输入 n --> p--> 3--> 回车--> +3G--> 回车,完成第三块磁盘划分 
5、依次输入 n --> p--> 4--> 回车--> 回车-->回车,完成第四块磁盘划分
6、输入w,保存退出

如果出现错误可以:

输入   d
分区号可以选,默认的为刚刚修改的分区  回车即可删除

3、分区完成,dmdsc0、dmdsc1机器使用fdisk -l 命令查看是否能查看到分区情况

3.1、dmdsc0查看磁盘分区

可以看出dmdsc0节点查看磁盘分区成功!!

3.2、dmdsc0查看磁盘分区

可以看出dmdsc0节点查看磁盘分区成功!!

七、dmdsc0、dmdsc1机器修改udev规则文件

1、所有的dmdsc集群的机器(dmdsc0、dmdsc1)都要添加下面该内容:

vim /etc/udev/rules.d/70-persistent-ipoib.rules
# 内容如下:
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N" 
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N" 
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N" 
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
1. ACTION=="add", KERNEL=="sdbX", RUN+="/bin/raw /dev/raw/rawX %N"
  • ACTION=="add": 当设备被添加到系统时触发该规则。
  • KERNEL=="sdbX": 匹配内核名称为 sdb1, sdb2, sdb3, 或 sdb4 的设备。
  • RUN+="/bin/raw /dev/raw/rawX %N": 在匹配的设备上运行 /bin/raw 命令,将该设备绑定到 /dev/raw/rawX(其中 X 是1到4的数字)。%N 是一个 Udev 变量,代表当前设备的内核名称。

作用:这条规则的作用是将分区(如 sdb1, sdb2, 等等)映射为原始设备(raw device)。原始设备允许直接访问磁盘而不经过文件系统层,这对于某些数据库应用或需要低级别磁盘访问的应用程序非常有用。

2. ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
  • KERNEL=="raw[1-4]": 匹配内核名称为 raw1raw4 的设备。
  • OWNER="dmdba", GROUP="dinstall", MODE="660": 设置这些设备的所有者为 dmdba,组为 dinstall,并赋予读写权限给所有者和组,其他用户无权限(MODE="660")。

作用:这条规则确保了新创建的原始设备文件具有正确的所有权和权限设置,使得只有指定的用户和组能够访问这些设备

注:如果没有70-persistent-ipoib.rules这个文件,新创建一个就可以,我这边是没有这个文件的。

2、所有的dmdsc集群的机器(dmdsc0、dmdsc1)执行下面的命令,使 udev 生效:

2.1、重启dmdsc0、dmdsc1机器 或使用命令确保 udev 规则的更改立即生效

reboot 或者 udevadm control --reload-rules 

命令解析:

reboot 是系统重启命令

udevadm control --reload-rules 可以确保 udev 规则的更改立即生效,无需重启系统或重新插拔设备

2.2、使用命令让设备重新应用新的驱动配置

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

命令解析:

udevadm trigger --type=devices --action=change 是一个用于触发 udev 事件的命令。它的作用是模拟设备状态的变化(即 change 事件),并让 udev 根据现有的规则重新处理这些设备。以下是对该命令的详细解释:

1. udevadm trigger
  • 作用:触发 udev 事件。
  • 它会通知 udev 重新扫描设备,并根据当前的 udev 规则文件对设备进行重新配置。
2. --type=devices
  • 作用:指定触发的类型为设备(devices)。
  • 这意味着只针对块设备、字符设备等硬件设备触发事件,而不是其他类型的 udev 对象(如子系统或模块)。
3. --action=change
  • 作用:指定触发的事件类型为 change
  • change 事件表示设备的状态发生了变化(例如设备属性更新、设备重新连接等),但设备本身并未被移除或添加。
  • 这与 add(设备添加)和 remove(设备移除)事件不同。

总结

udevadm trigger --type=devices --action=change 是一个非常有用的命令,主要用于让 udev 重新处理现有设备的状态变化。它常用于更新设备权限、调试 udev 规则或重新加载设备配置。

通过结合 udevadm control --reload-rules,可以确保 udev 规则的更改立即生效,而无需重启系统或重新插拔设备。

2.3、查看dmdsc0、dmdsc1集群配置的udev是否生效,两个机器都要查看

ll /dev/raw/raw*

八、dmdsc0、dmdsc1、dmcssm机器安装达梦数据软件

三台机器在用户dmdba上安装数据库(不初始化实例)存放于/dm8/dminstall目录中,下面操作在三台机器上是一样的。

1、创建达梦数据库对应的用户和组

groupadd dinstall
useradd -g dinstall dmdba
echo "Dameng123" |passwd --stdin dmdba

2、创建达梦数据库安装目录

mkdir -p /dm8/{dminstall,dmdata,dmarch,dmback}
chown -R dmdba:dinstall /dm8
chmod -R 755 /dm8

3、调整系统资源限制

vim /etc/security/limits.conf

dmdba   soft    nofile  65536
dmdba   hard    nofile  65536
dmdba   soft    nproc   65536
dmdba   hard    nproc   65536

###soft软连接,hard硬连接,nofile打开文件,nproc打开的进程

4、关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

5、下载镜像

达梦数据库镜像,官方下载:

产品下载 | 达梦在线服务平台

6、挂载镜像:

 mount -o loop dm8_20230925_x86_rh6_64.iso /mnt/

7、切换dmdba用户,安装数据库

su - dmdba
/mnt/DMInstall.bin -i

root用户下执行命令

/dm8/dminstall/script/root/root_installer.sh

root用户下执行命令 (关闭自启服务)

systemctl disable DmAPService.service --now
systemctl status DmAPService.service

数据库创建完毕!!!

2、麒麟操作系统需要修改 RemoveIPC 参数,防止关闭asm服务时,进程还在,导致重新起来报错:

2.1、修改文件

vim /etc/systemd/logind.conf

设置 RemoveIPC 参数为 no保存后重启服务

2.2、更新加载systemd-logind 服务

systemctl daemon-reload
systemctl restart systemd-logind

命令解析:

  1. systemctl daemon-reload
    • 用于重新加载 systemd 的单元文件(如 .service 文件)。
    • 主要影响服务的启动、停止和管理。
    • systemd 在运行时会缓存单元文件的内容。当你修改了这些文件后,必须通过 daemon-reload 命令让 systemd 重新读取并更新缓存。
  1. systemctl restart systemd-logind
    • 用于重启 systemd-logind 服务。
    • 主要影响用户会话管理、设备权限和电源管理。

2.3、检查验证参数值

grep RemoveIPC /etc/systemd/logind.conf

如果 RemoveIPC=yes,表示在用户注销时,系统会自动清理该用户的 IPC 资源。

如果 RemoveIPC=no,表示不会自动清理这些资源,可能导致某些资源残留。

RemoveIPC 的作用与影响

1. 什么是 IPC 资源?
  • IPC 资源包括:
    • 共享内存(Shared Memory)
    • 信号量(Semaphores)
    • 消息队列(Message Queues)
  • 这些资源通常由应用程序创建,用于进程间的通信

2.4、结果验证确认

loginctl show-session|grep RemoveIPC
systemctl show systemd-logind|grep RemoveIPC

命令解析

  • loginctl show-session | grep RemoveIPC
    • 查询当前用户会话的 RemoveIPC 设置。
    • 适用于排查单个用户会话的 IPC 资源清理行为。
  • systemctl show systemd-logind | grep RemoveIPC
    • 查询 systemd-logind 服务的全局 RemoveIPC 设置。
    • 适用于检查系统的全局 IPC 清理策略。
  • RemoveIPC 的作用
    • 定义用户注销时是否自动清理 IPC 资源。
    • 默认值通常是 yes,但可以根据需求进行调整。

通过这两个命令,你可以快速了解和调整系统的 IPC 资源管理行为,从而优化系统资源利用率并避免潜在的问题。

九、配置 DCR 初始化配置文件(只在dmdsc0控制节点操作)

dmdcr_cfg.ini 是格式化 DCR 磁盘和 Voting 磁盘的配置文件。配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。使用 dmasmcmd 工具初始化共享磁盘时,可以根据 dmdcr_cfg.ini 配置文件,格式化 DCR 和 Voting Disk。

使用dmdba用户在dmdsc0节点创建dmdcr_cfg.ini文件,文件路径:/dm8/dmdata,添加文件内容如下:

su - dmdba

vim /dm8/dmdata/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 = DMCSS0
DCR_EP_HOST = 192.168.52.50
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = DMCSS1
DCR_EP_HOST = 192.168.52.51
DCR_EP_PORT = 9341
[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 = DMASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.52.50
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = DMASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.52.51
DCR_EP_PORT = 9349
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 = 9741
[GRP_DSC]
DCR_EP_NAME = DMDSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742

全局设置

DCR_N_GRP = 3 # 定义组的数量
DCR_VTD_PATH = /dev/raw/raw2 # 投票磁盘路径
DCR_OGUID = 63635 # 集群对象的全局唯一标识符

CSS (Cluster Synchronization Service) 组

[GRP]
DCR_GRP_TYPE = CSS # 组类型为CSS
DCR_GRP_NAME = GRP_CSS # 组名称
DCR_GRP_N_EP = 2 # 组内节点数量
DCR_GRP_DSKCHK_CNT = 60 # 磁盘检查计数

[GRP_CSS]
DCR_EP_NAME = DMCSS0 # 节点名称
DCR_EP_HOST = 192.168.52.50 # 节点IP地址
DCR_EP_PORT = 9341 # 节点端口号

[GRP_CSS]
DCR_EP_NAME = DMCSS1 # 第二个节点名称
DCR_EP_HOST = 192.168.52.51 # 第二个节点IP地址
DCR_EP_PORT = 9341 # 第二个节点端口号

ASM (Automatic Storage Management) 组

[GRP]
DCR_GRP_TYPE = ASM # 组类型为ASM
DCR_GRP_NAME = GRP_ASM # 组名称
DCR_GRP_N_EP = 2 # 组内节点数量
DCR_GRP_DSKCHK_CNT = 60 # 磁盘检查计数

[GRP_ASM]
DCR_EP_NAME = DMASM0 # 节点名称
DCR_EP_SHM_KEY = 93360 # 共享内存键值
DCR_EP_SHM_SIZE = 20 # 共享内存大小(MB)
DCR_EP_HOST = 192.168.52.50 # 节点IP地址
DCR_EP_PORT = 9349 # 节点端口号
DCR_EP_ASM_LOAD_PATH = /dev/raw # ASM加载路径

[GRP_ASM]
DCR_EP_NAME = DMASM1 # 第二个节点名称
DCR_EP_SHM_KEY = 93361 # 共享内存键值
DCR_EP_SHM_SIZE = 20 # 共享内存大小(MB)
DCR_EP_HOST = 192.168.52.51 # 第二个节点IP地址
DCR_EP_PORT = 9349 # 第二个节点端口号
DCR_EP_ASM_LOAD_PATH = /dev/raw # ASM加载路径

DB (Database Instance) 组

[GRP]
DCR_GRP_TYPE = DB # 组类型为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 = 9741 # 检查端口

[GRP_DSC]
DCR_EP_NAME = DMDSC1 # 第二个节点名称
DCR_EP_SEQNO = 1 # 序列号
DCR_EP_PORT = 5236 # 节点端口号
DCR_CHECK_PORT = 9742 # 检查端口

主要组成部分解释

  1. 全局设置
    • DCR_N_GRP: 表示有三个组需要配置:CSS, ASM 和 DB。
    • DCR_VTD_PATH: 投票磁盘路径,用于保存集群成员资格信息。
    • DCR_OGUID: 集群对象的全局唯一标识符,用于识别集群。
  1. CSS 组
    • 定义了一个名为 GRP_CSS 的 CSS 组,包含两个节点,负责实例间心跳检测和状态同步。
    • 每个节点都有自己的名称、IP 地址和端口号。
  1. ASM 组
    • 定义了一个名为 GRP_ASM 的 ASM 组,包含两个节点,用于管理共享存储设备。
    • 包含每个节点的名称、共享内存键值、共享内存大小、IP 地址、端口号以及 ASM 加载路径。
  1. DB 组
    • 定义了一个名为 GRP_DSC 的数据库实例组,包含两个节点。
    • 包含每个节点的名称、序列号、端口号和检查端口。

注: 准备配置文件dmdcr_cfg.ini,保存在 /dm8/dmdata/ 下,只需要在dmdsc0主节点上配置,后续DMASMCMD工具执行 init 语句会使用到。需要根据实际环境修改IP配置为dcr节点的IP,不同节点服务器间对应的DCR_EP_PORT端口可以相同,但是两个服务器配的ASM的DCR_EP_SHM_KEY不能相同。

十、创建ASM磁盘

只在一台机器上执行即可,此处dmdcr_cfg.ini配置文件在主节点dmdsc0上,所以执行初始化,在主节点完成即可。进行初始化之前对dmdba用户进行授权/dev/raw文件。

授权需要登录root用户,dmdsc0、dmdsc1两台机器都需要授权,执行以下命令:

1、root用户执行赋权

chown -R dmdba:dinstall /dev/raw

2、执行之后用命令查看赋权情况:

ll /dev/raw

3、这里只在dmdsc0节点上执行,使用dmdba用户操作:

3.1、bin目录下运行 dmasmcmd

su - dmdba
cd /dm8/dminstall/bin
./dmasmcmd

3.2、输入下面的内容初始化

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 '/dm8/dmdata/dmdcr_cfg.ini'identified by '123456'
init votedisk '/dev/raw/raw2' from '/dm8/dmdata/dmdcr_cfg.ini'
exit

create dcrdisk 创建一个专用的 DCR 磁盘(用于保存集群元数据)

create votedisk 投票磁盘(Voting Disk),用于集群成员仲裁

create asmdisk 普通 ASM 数据磁盘

'dcr', 'vote', 'LOG0', 'DATA0' 是磁盘别名,后续可在 ASM 中引用。

init dcrdisk '/dev/raw/raw1' from '/dm8/dmdata/dmdcr_cfg.ini' identified by '123456'

  • dcr 磁盘格式化为集群注册表磁盘;
  • 使用 dmdcr_cfg.ini 文件中的配置初始化;
  • 设置密码为 123456(用于后续连接控制);

init votedisk '/dev/raw/raw2' from '/dm8/dmdata/dmdcr_cfg.ini'

  • 将投票磁盘初始化,用于集群心跳仲裁;
  • 不需要设置密码。

4、dmdsc0、dmdsc1两服务器一定要检查,共享磁盘的情况,是否如下所示:

su - dmdba
cd /dm8/dminstall/bin
./dmasmcmd
listdisks /dev/raw
exit

十一、配置dmasvrmal.ini文件

MAL 配置文件包括 DMMAL.INI 和 DMASVRMAL.INI。使用同一套 MAL 系统的所有实例,MAL 系统配置文件要严格保持一致

使用dmdba用户配置,所有节点(dmdsc0和dmdsc1)dmasvrmal.ini配置必须文件保持一致,这里是配置mal系统通信用的,用于dmasm节点之间的通信,配置如下:

su - dmdba

vim /dm8/dmdata/dmasvrmal.ini
# 内容如下
[MAL_INST0]MAL_INST_NAME = DMASM0MAL_HOST = 192.168.52.50MAL_PORT = 7238
[MAL_INST1]MAL_INST_NAME = DMASM1MAL_HOST = 192.168.52.51MAL_PORT = 7238

命令解析:

[MAL_INST1] # MAL 名称,同一个配置文件中 MAL 名称需保持唯一性MAL_INST_NAME = DMASM0 # ASM服务实例的名称MAL_HOST = 192.168.52.50 # MAL IP 地址,使用 MAL_HOST + MAL_PORT 创建 MAL 链路MAL_PORT = 7238 # MAL 监听端口,用于数据守护、DSC、MPP 等环境中各节点实例之间 MAL 链路配置,监听端端口配置此参数。
[MAL_INST2]MAL_INST_NAME = DMASM1MAL_HOST = 192.168.52.51MAL_PORT = 7238

十二、配置dmdcr.ini文件

DMDCR.INI 是 DMCSS、DMASMSVR、DMASMTOOL 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。

使用dmdba用户配置 DCR 启动文件,dmdsc0、dmdsc1两个节点都要操作,配置如下:

1、dmdsc0节点:

su - dmdba

vim /dm8/dmdata/dmdcr.ini
# 内容如下:
DMDCR_PATH     = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmdata/dmasvrmal.ini
DMDCR_SEQNO   = 0
DMDCR_AUTO_OPEN_CHECK = 60

命令解析:

DMDCR_PATH     = /dev/raw/raw1 # 记录DCR磁盘路径
DMDCR_MAL_PATH =/dm8/dmdata/dmasvrmal.ini # 保存DMASVRMAL.INI配置文件的路径,仅对DMASMSVR有效
DMDCR_SEQNO   = 0 # 记录当前节点序号(用来获取ASM登录信息)
DMDCR_AUTO_OPEN_CHECK = 60 # 指定时间内如果节点实例未启动,DMCSS会自动将节点踢出集群环境,单位S,取值应大于等于30s

命令使用:

配置项解析

  1. DMDCR_PATH = /dev/raw/raw1
    • 含义: 指定 DCR 磁盘的路径。
    • 作用: DCR 磁盘用于存储集群的元数据信息,如集群成员资格、配置信息等。在这个例子中,/dev/raw/raw1 是一个裸设备路径,用于存储这些元数据。
  1. DMDCR_MAL_PATH = /dm8/dmdata/dmasvrmal.ini
    • 含义: 指定 MAL(Message Application Layer)配置文件的路径。
    • 作用: MAL 配置文件包含了集群间通信的相关配置,比如各个节点的地址、端口等信息。在这个例子中,/dm8/dmdata/dmasvrmal.ini 是该配置文件的具体路径。
  1. DMDCR_SEQNO = 1
    • 含义: 指定当前节点在集群中的序列号(Sequence Number)。
    • 作用: 在多节点集群环境中,每个节点都有一个唯一的序列号来标识自己。这个序列号在集群初始化和故障恢复时非常重要。在这个例子中,1 表示这是第一个节点(通常是主节点)。
  1. DMDCR_AUTO_OPEN_CHECK = 60
    • 含义: 指定自动打开检查的时间间隔(以秒为单位)。
    • 作用: 这个参数控制了集群在启动时自动尝试重新打开数据库实例的时间间隔。如果集群启动时发现某些实例未正常启动,它会每隔指定的时间间隔(在这个例子中是 60 秒)尝试重新打开这些实例。这有助于提高集群的可用性和容错能力。

2、dmdsc1节点:

su - dmdba

vim /dm8/dmdata/dmdcr.ini
# 内容如下:
DMDCR_PATH     = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmdata/dmasvrmal.ini
DMDCR_SEQNO   = 1
DMDCR_AUTO_OPEN_CHECK = 60

命令使用:

# DMCSS认定DMASM节点故障重启的时间间隔,超过设置的时间后,如果DMASM节点的active标记仍然为FALSE,则DMCSS会执行自动拉起。如果配置为0,则不会执行自动拉起操作,这里禁用自动拉起dmasm。

# DMDCR_ASM_RESTART_INTERVAL = 10

# DMCSS认定DMASM节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动。

# DMDCR_ASM_STARTUP_CMD = /dm8/dminstall/bin/dmasmsvr dcr_ini=/dm8/dmdata/dmdcr.ini

# DMCSS认定DMDSC节点故障重启的时间间隔,超过设置的时间后,如果DMDSC节点的active标记仍然为FALSE,则DMCSS会执行自动拉起。如果配置为0,则不会执行自动拉起操作,这里禁用自动拉起dmdsc。

# DMDCR_DB_RESTART_INTERVAL = 30

# DMCSS认定DMDSC节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动

# DMDCR_DB_STARTUP_CMD = /dm8/dminstall/bin/dmserver path=/dm8/dmdata/dsc0/dm.ini dcr_ini=/dm8/dmdata/dmdcr.ini

十三、启动集群DMCSS服务程序

dmdsc0、dmdsc1节点启动 DMCSS服务。使用dmdba用户到数据库安装目录 bin 下执行以下命令,如果上面dcr.ini配置文件设置了自动拉起服务,在启动CSS服务时,会启动ASM服务,不用再手动再启动ASM服务(不用执行下面的第12步),这里是禁用了自动拉起服务,需要手动去启动ASM服务。

1、dmdsc0节点先操作

su - dmdba
cd /dm8/dminstall/bin

前台启动dmcss服务

./dmcss dcr_ini=/dm8/dmdata/dmdcr.ini

2、dmdsc1节点再操作

su - dmdba
cd /dm8/dminstall/bin

前台启动dmcss服务

./dmcss dcr_ini=/dm8/dmdata/dmdcr.ini

十四、启动集群DMASM服务程序

dmdsc0、dmdsc1节点启动 DMASM服务。使用dmdba用户到数据库安装目录 bin 下执行以下命令

1、dmdsc0节点先操作

su - dmdba
cd /dm8/dminstall/bin

前台启动dmasm服务

./dmasmsvr dcr_ini=/dm8/dmdata/dmdcr.ini

2、dmdsc1节点再操作

su - dmdba
cd /dm8/dminstall/bin

前台启动dmasm服务

./dmasmsvr dcr_ini=/dm8/dmdata/dmdcr.ini

十五、使用 dmasmtool 工具创建 DMASM 磁盘组

1、查找与 "asm" 相关的进程

运行命令 ps aux | grep asm 主要用于在系统中查找与 "asm" 相关的进程。

这个命令的结果会列出所有包含 "asm" 字符串的进程及其相关信息,包括用户、进程ID(PID)、CPU使用率、内存使用率等。

ps aux | grep asm

2、asm启动成功后,dmdsc0节点使用 dmdba 用户在bin目录启动 dmasmtool 工具

su - dmdba
cd /dm8/dminstall/bin
./dmasmtool dcr_ini=/dm8/dmdata/dmdcr.ini

3、(如果ASM没启动成功,则无法开启),执行下面的命令:

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
exit

这条命令是在 达梦数据库 DM8dmasmcmd 工具中执行的,用于创建一个名为 DMLOGASM 磁盘组(Disk Group)。磁盘组是 ASM 管理的基本单位,可以包含一个或多个磁盘。在这个例子中,磁盘组 DMLOG 使用 /dev/raw/raw3 这个裸设备作为其存储介质

这条命令也是在 dmasmcmd 工具中执行的,用于创建另一个名为 DMDATA 的 ASM 磁盘组。这个磁盘组使用 /dev/raw/raw4 裸设备作为其存储介质。

十六、使用 dminit 初始化共享存储集群数据库实例

DMINIT.INI 是 DMINIT 工具初始化数据库环境的配置文件。与初始化库使用普通文件系统不同,使用 DMASM 文件系统,必须使用 DMINIT 工具的 control 参数指定 DMINIT.INI 文件。

DMINIT 工具的命令行参数都可以放在 DMINIT.INI 中,比如 db_name、auto_overwrite 等,DMINIT.INI 参数分为全局参数和节点参数。

1、选择dmdsc0主节点(192.168.52.50),创建 dminit.ini 配置文件,保存到/dm8/dmdata 目录,操作如下:

su - dmdba

vim /dm8/dmdata/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
auto_overwrite   = 1
[DMDSC0]
config_path = /dm8/dmdata/dsc0
port_num = 5236
mal_host = 192.168.52.50
mal_port = 9236
log_path = +DMLOG/log/DSC0_log01.log
log_path = +DMLOG/log/DSC0_log02.log
[DMDSC1]
config_path = /dm8/dmdata/dsc1
port_num = 5236
mal_host = 192.168.52.51
mal_port = 9236
log_path = +DMLOG/log/DSC1_log01.log
log_path = +DMLOG/log/DSC1_log02.log

命令解析:

db_name = DSC # 初始化数据库名称

system_path = +DMDATA/data # 初始化数据库存放的路径

system = +DMDATA/data/dsc/system.dbf # SYSTEM表空间路径

system_size = 128 # SYSTEM表空间大小

roll = +DMDATA/data/dsc/roll.dbf # ROLL表空间路径

roll_size = 128 # ROLL表空间大小

main = +DMDATA/data/dsc/main.dbf # MAIN表空间路径

main_size = 128 # MAIN表空间大小

ctl_path = +DMDATA/data/dsc/dm.ctl # DM.CTL控制文件路径

ctl_size = 8 # DM.CTL控制文件大小

log_size = 256 # 日志文件大小

dcr_path = /dev/raw/raw1 # DCR磁盘路径

dcr_seqno = 0 # 连接DMASM节点节点号

auto_overwrite = 1 # 文件存在时的处理方式,否自动覆盖日志文件,1表示覆盖

[DMDSC0] # 具体节点都是以[XXX]开始,节点实例名就是XXX

config_path = /dm8/dmdata/dsc0 # 配置文件存放路径

port_num = 5236 # 节点服务器监听通讯端口号,数据库实例的端口号。

mal_host = 192.168.52.50 # 节点MAL系统使用IP

mal_port = 9236 # MAL监听端口,用于数据守护、DSC、MPP等环境中各节点实例之间MAL链路配置,监听端端口配置此参数。

log_path = +DMLOG/log/DSC1_log01.log # 日志文件路径。

log_path = +DMLOG/log/DSC1_log02.log

2、初始化实例,dmdsc0主节点使用 dmdb用户在bin执行以下命令:

cd /dm8/dminstall/bin


./dminit control=/dm8/dmdata/dminit.ini

出现以下画面,即为成功初始化实例:

3、初始化完成后会在 dminit.ini控制文件配置的目录下生成 2 个实例的配置文件(配置的是/dm8/dmdata目录下)

ls  /dm8/dmdata

4、将 dsc1 目录复制到dmdsc1节点上对应的目录下

cd /dm8/dmdata
scp -r dsc1 dmdba@192.168.52.51:/dm8/dmdata
# 输入192.168.52.51节点dmdba用户的密码

十七、启动集群DMDSC实例

将dmdsc0节点的/dm8/dmdata/dsc1目录拷贝到dmdsc1节点相同目录下,再分别启动 dmserver 即可完成 DMDSC 集群搭建。如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。这里禁用了DMCSS自动拉起功能,需要手动启动,执行下面的操作步骤启动DMDSC实例:

1、dmdsc0节点:

su - dmdba
cd /dm8/dminstall/bin

前台启动dmdsc实例

./dmserver /dm8/dmdata/dsc0/dm.ini dcr_ini=/dm8/dmdata/dmdcr.ini

2、dmdsc1节点:

su - dmdba
cd /dm8/dminstall/bin

前台启动dmdsc实例

./dmserver /dm8/dmdata/dsc1/dm.ini dcr_ini=/dm8/dmdata/dmdcr.ini

3、至此,DMDSC集群部署完毕,可以使用dmdba用户启动disql工具,查看视图v$dsc_ep_info来查看集群信息,两节点均可以执行:

su - dmdba
cd /dm8/dminstall/bin
./disql
# 执行下面sql,查看集群信息:
select * from v$dsc_ep_info;

十八、配置并启动监视器(dmcssm节点)

192.168.52.32机器上,使用dmdba用户配置监视器,并启动监视器,操作如下:

DMCSSM.INI 是 DMCSSM 监视器的配置文件。DMDSC 集群的运行情况可以通过 DMCSSM 监视器(Dameng Cluster Synchronization Services Monitor,DMCSSM)进行查看,也可以查询 DMDSC 相关的动态视图获取更详细的信息。

DMCSSM 监视器支持一些控制命令,可以用来启动、关闭 DMDSC 集群,还可以进行手动控制节点故障处理和节点重加入。

1、编写配置文件dmcssm.ini

su - dmdba
vim /dm8/dmdata/dmcssm.ini
#内容如下:
CSSM_OGUID = 63635    #和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
#配置所有 CSS 的连接信息和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.52.50:9341
CSSM_CSS_IP = 192.168.52.51:9341
CSSM_LOG_PATH =/dm8/dmdata/raw_log    #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 1024    #每个日志文件最大 1024 MB
CSSM_LOG_SPACE_LIMIT = 0    #不限定日志文件总占用空间

2、启动监视器:

cd /dm8/dminstall/bin
./dmcssm ini_path=/dm8/dmdata/dmcssm.ini# 输入 show 命令,查看 css、asm 和 db 的状态。
show

十九、注册服务

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

dmdsc0dmdsc1节点先关闭之前由前台启动的dmcss、dmasm、dmdsc服务,关闭顺序:DMDSC-->DMASM-->DMCSS

# 前台启动输出exit,回车就可以关闭
exit

dmdsc0、dmdsc1节点使用dmdba用户配置注册服务

1、dmdsc0节点

1.1、注册css服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmCSSService ./DmCSSServiceDMCSS0
# 修改DmCSSServiceDMCSS0文件
vim DmCSSServiceDMCSS0#修改内容:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

1.2、注册asm服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmASMSvrService ./DmASMSvrServiceDMASM0
# 修改DmASMSvrServiceDMASM0文件
vim DmASMSvrServiceDMASM0# 修改内容如下:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

1.3、注册dm实例服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmService ./DmServiceDMDSC0
# 修改DmServiceDMDSC0文件
vim DmServiceDMDSC0# 修改内容如下:
INI_PATH=%INI_PATH% 改为 INI_PATH=/dm8/dmdata/dsc0/dm.ini
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

1.4、使用服务方式后台启动:

su - dmdba
cd /dm8/dminstall/bin
# 启动dmcss、dmasm、dmdsc程序服务
./DmCSSServiceDMCSS0 start
./DmASMSvrServiceDMASM0 start
./DmServiceDMDSC0 start

2、dmdsc1节点

2.1、注册css服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmCSSService ./DmCSSServiceDMCSS1
# 修改DmCSSServiceDMCSS1文件
vim DmCSSServiceDMCSS1#修改内容:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

2.2、注册asm服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmASMSvrService ./DmASMSvrServiceDMASM1
# 修改DmASMSvrServiceDMASM1文件
vim DmASMSvrServiceDMASM1# 修改内容如下:
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

2.3、注册dm实例服务:

su - dmdba
cd /dm8/dminstall/bin
cp service_template/DmService ./DmServiceDMDSC1
# 修改DmServiceDMDSC1文件
vim DmServiceDMDSC1# 修改内容如下:
INI_PATH=%INI_PATH% 改为 INI_PATH=/dm8/dmdata/dsc1/dm.ini
DCR_INI_PATH=%DCR_INI_PATH% 改为 DCR_INI_PATH=/dm8/dmdata/dmdcr.ini

2.4、使用服务方式后台启动

su - dmdba
cd /dm8/dminstall/bin
# 启动dmcss、dmasm、dmdsc程序服务
./DmCSSServiceDMCSS1 start
./DmASMSvrServiceDMASM1 start
./DmServiceDMDSC1 start

二十、配置dm_svc.conf文件故障自动重连

DMDCR_CFG.INI 是格式化非镜像环境下 DCR DISK、VOTE DISK 和镜像环境下 DCRV 磁盘的配置文件。

配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。

集群环境全局信息为所有集群的公共信息,整个文件中只需要出现一次。例如:设置 DMCSS 集群、DMASM 集群和 DMDSC 集群三个集群的公共信息。

集群组信息用来设置一个集群中所有节点的公共信息,一个集群只需配置一个集群组信息。例如:设置 DMCSS 集群中两个节点 CSS0 和 CSS1 的公共信息。

组内节点信息,集群组中各节点的信息。例如:分别设置节点 CSS0 和 CSS1 的各自的节点信息。

使用 DMASMCMD 工具,可以根据 DMDCR_CFG.INI 配置文件,格式化 DCR DISK 和 VOTE DISK。

dmdsc0、dmdsc1节点都需要配置,使用root用户进入/etc 目录,配置文件为dm_svc.conf,内容如下:

vim /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
dmdsc_svc=(192.168.52.50:5236,192.168.52.51:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)

命令解析:

DCR_N_GRP = 3 # 定义配置文件中包含的组(Group)数量
DCR_VTD_PATH = /dev/raw/raw2 # 指定虚拟磁盘设备的路径,DSC集群使用这个设备作为存储介质,这个是VOTD磁盘的路径。
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] # 表示CSS组的配置块开始
DCR_EP_NAME = DMCSS0 # 节点的名称,用于标识集群中的各个节点。
DCR_EP_HOST = 192.168.58.40 # 节点所在的主机地址。
DCR_EP_PORT = 9341 # 节点点使用的端口号,用于节点间的通信。
[GRP_CSS]
DCR_EP_NAME = DMCSS1
DCR_EP_HOST = 192.168.58.41
DCR_EP_PORT = 9341
[GRP] # 表示接下来的参数属于一个新的组配置块。
DCR_GRP_TYPE = ASM # 组的类型。
DCR_GRP_NAME = GRP_ASM # 组的名称,用于标识不同的组。
DCR_GRP_N_EP = 2 # 组中节点的数量。
DCR_GRP_DSKCHK_CNT = 60 # 磁盘检查的间隔次数,用于设置集群进行磁盘检查的频率。
[GRP_ASM] # 表示ASM组的配置块开始
DCR_EP_NAME = DMASM0 # 节点的名称,用于标识集群中的各个节点。
DCR_EP_SHM_KEY = 93360 # 共享内存标识,应为大于0的4字节整数。同一机器上每个ASM节点对应的DCR_EP_SHM_KEY必须唯一,需要人为保证其唯一性。
DCR_EP_SHM_SIZE = 20 # 共享内存的大小。
DCR_EP_HOST = 192.168.58.40  # 节点所在的主机地址。
DCR_EP_PORT = 9349 # 节点点使用的端口号,用于节点间的通信。
DCR_EP_ASM_LOAD_PATH = /dev/raw # ASM磁盘扫描路径,指定了ASM节点加载数据的存储位置。
[GRP_ASM]
DCR_EP_NAME = DMASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.58.41
DCR_EP_PORT = 9351
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] # 表示DSC组的配置块开始
DCR_EP_NAME = DMDSC0 # 节点的名称,用于标识集群中的各个节点。
DCR_EP_SEQNO = 0 # 节点的序列号。
DCR_EP_PORT = 5236 # 节点点使用的端口号。
DCR_CHECK_PORT = 9741 # 用于集群节点健康检查的端口。
[GRP_DSC]
DCR_EP_NAME = DMDSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741

二十一、DMDSC启动、关闭流程

dmdsc0节点服务名分别为:DmServiceDMDSC0、DmASMSvrServiceDMASM0、DmCSSServiceDMCSS0

dmdsc1节点服务名分别为:DmServiceDMDSC1、DmASMSvrServiceDMASM1、DmCSSServiceDMCSS1

DMDSC启动、关闭流程:

启动顺序:DMCSS-->DMASM-->DMDSC

关闭顺序:DMDSC-->DMASM-->DMCSS

注意事项:

启动:

DMDSC是基于共享存储的数据库集群系统,包含多个数据库实例,因此,与单节点的达梦数据库不同,DMDSC集群需要在节点间进行同步、协调,才能正常地启动、关闭。启动DMDSC集群之前,必须先启动集群同步服务DMCSS,如果使用了DMASM文件系统,则DMASMSVR服务也必须先启动。启动流程简单总结一下就是先启动DMCSS,然后启动DMASMSVR(如果有的话),最后启动DMSERVER,如果DMCSS配置了DMASMSVR/DMSERVER自动拉起命令,此时可以先仅启动DMCSS,然后启动监视器DMCSSM,在DMCSSM控制台执行命令"ep startup GRP_ASM"启动DMASMSVR集群,执行"ep startup GRP_DSC,"启动DMSERVER集群(其中GRP_ASM/GRP_DSC分别为DMASMSVR/DMSERVER集群的组名)。

停止:

如果DMCSS配置了DMASMSVR/DMSERVER自动拉起命令,那么手动停止DMSERVER和DMASMSVR时会被拉起来,因此可能导致停止服务执行成功,但是集群并未停止的情况!!!此时就显示出监视器的好处。此时可以在监视器中执行“ep stop 集群组名”命令的方式停止ASMSVR服务或者DMSERVER服务,在使用监视器停止服务时,监视器会关闭相关的自动拉起命令,因此,可以确保集群的正确停止,在停止DMASMSVR/DMSERVER服务后,再手动停止DMCSS服务即可。需要注意的是,如果不停止DMCSS服务,再次启动集群的话,自动拉起是不会生效的,当然,也可以通过在监视器中执行“set group_name auto restart on/off ”打开/关闭指定组的自动拉起功能,此命令只修改dmcss内存值。

如图:

二十二、监视命令的使用

命令名称

含义

help

显示帮助信息

show [group_name]

显示指定的组信息,如果没有指定 group_name,则显示所有组信息

show config

显示 dmdcr_cfg.ini 的配置信息

show monitor

显示当前连接到主 CSS 的所有监视器信息

set group_name auto restart on

打开指定组的自动拉起功能(只修改 dmcss 内存值)

set group_name auto restart off

关闭指定组的自动拉起功能(只修改 dmcss 内存值)

open force group_name

强制 open 指定的 ASM 或 DB 组

ep startup group_name

启动指定的 ASM 或 DB 组

ep stop group_name

退出指定的 ASM 或 DB 组

ep halt group_name.ep_name

强制退出指定组中的指定节点

extend node

联机扩展节点

ep crash group_name.ep_name

手动指定节点故障

check crash over group_name

检查指定组故障处理是否真正结束

exit

退出监视器

二十三、开启归档日志

1、到监视器上关闭dsc服务(dmcssm机器)

su - dmdba
cd /dm8/dminstall/bin
./dmcssm ini_path=/dm8/dmdata/dmcssm.ini
ep stop GRP_DSC

2、dmdsc0节点修改ini配置并编写dmarch.ini归档配置

2.1、修改dm.ini配置文件:

su - dmdba
vim /dm8/dmdata/dsc0/dm.ini
# 修改内容:
ARCH_INI = 0 修改为 ARCH_INI = 1

2.2、编写dmarch.ini配置文件:

vim /dm8/dmdata/dsc0/dmarch.ini
# 内容如下:
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DMDSC0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DMDATA/ARCH/DMDSC1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024

3、dmdsc1节点修改ini配置并编写dmarch.ini归档配置

3.1、修改dm.ini配置文件:

su - dmdba
vim /dm8/dmdata/dsc1/dm.ini
# 修改内容:
ARCH_INI = 0 修改为 ARCH_INI = 1

3.2、编写dmarch.ini配置文件:

vim /dm8/dmdata/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/DMDSC1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC0
ARCH_INCOMING_PATH = +DMDATA/ARCH/DMDSC0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 1024

4、启动dmdsc0、dmdsc1实例

# dmdsc0
su - dmdba
cd /dm8/dminstall/bin
./DmServiceDMDSC0 start# dmdsc1
su - dmdba
cd /dm8/dminstall/bin
./DmServiceDMDSC1 start

达梦数据库社区地址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台 

http://www.xdnf.cn/news/13751.html

相关文章:

  • 再说一说LangChain Runnable接口
  • 禁止虚拟机里的Win10的Windows Defender
  • 【热更新知识】学习一 Lua语法学习
  • 【学习笔记】计算机操作系统(六)—— 输入输出系统
  • 基于 Spring AI 的 MCP 客户端/服务端实现
  • Java中的设计模式:23种经典模式在实际项目中的应用案例
  • 一款包含150个APP移动端网站UI的psd适用于服装鞋类社交电商项目
  • 论文略读:Mixture-of-Agents Enhances Large Language Model Capabilities
  • 力扣HOT100之贪心算法:55. 跳跃游戏
  • 如何在 Docusign 批量发送信封?
  • Cesium 常见方法汇总
  • Qwen家族系列模型概述
  • TripGenie:畅游济南旅行规划助手:个人工作纪实(二十四)
  • 用python判断一串字符是否属于中文的6种方法
  • 3 Studying《深入理解Android卷(邓凡平)》1
  • 【kafka】消息模型与工作原理详解
  • 如何抓取DP_AUX辅助通道数据
  • 在代码中使用uView里calendar中的Slot, tooltip 插槽
  • SQL 注入(SQL Injection)
  • UE5 学习系类(七)导入bridge资产包
  • CodeForces 228D. Zigzag
  • Master PDF Editor:全能PDF编辑工具
  • ElasticSearch聚合查询从15秒到1.2秒的深度优化实践
  • MySQL表的增删改查(基础)
  • 最新华为 HCIP-Datacom(H12-821)
  • ONLYOFFICE 协作空间 企业版使用秘籍-1.如何使用外部存储
  • 大疆相机元数据说明
  • CLIP多模态模型详解
  • Golang SSH握手过程中,报错跟客户端在算法签名上不匹配
  • 3-16单元格区域尺寸调整(发货单记录保存-方法2)学习笔记