暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

达梦数据库学习系列之基于CentOS7部署DM8DSC共享集群(一)

麻瓜的DBA生活 2021-12-26
1477

一. DMDSC概述

DM 共享存储数据库集群全称 DM Data Shared Cluster,简称 DMDSC

1. DMDSC 特性

DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法对外服务。
通过配置 DM 数据库连接服务名来访问 DMDSC 集群,可以实现节点间的自动负载均衡,数据库连接请求会被自动、平均地分配到 DMDSC 集群中的各个节点。并且连接服务名支持 JDBC、DPI、ODBC、DCI、.Net Provider 等各种数据库接口。

2. 组成

DMDSC 集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS (DM Cluster Synchronization Services)组成。

  • 数据库(Database)是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件等),保存在物理磁盘或文件系统中

  • 数据库实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存

  • 共享存储:DMDSC 集群要求将数据文件、控制文件、日志文件保存在共享存储上;配置 DMDSC 集群需要的 DCR、Voting disk 也必须保存在共享存储上。DMDSC 支持使用裸设备或 DMASM 文件系统作为共享存储。

  • 本地存储:DMDSC 集群中,本地存储用来保存配置文件(记录数据库实例配置信息的 dm.ini、dmarch.ini、dmmal.ini),本地归档日志、远程归档日志

  • 通信网络:网络分为内部网络和公共网络两个部分。

  • 内部网络用于数据库实例之间交换信息和数据,MAL 链路使用的就是内部网络

  • 公共网络用于对外提供数据库服务,客户端使用公共网络地址登录 DMDSC 集群,访问数据库。

  • 集群控制(DMCSS):DMCSS 就是一款集群控制软件,专门负责监控集群中各个节点的运行状态

  • DMCSS 主要功能包括:管理集群的启动和关闭,控制节点故障处理,以及管理节点重加入流程

3. 概念

3.1. DCR(DM Clusterware Registry)

DCR 是 DM 集群注册表的简称,用于存储、维护集群配置的详细信息,整个集群环境共享 DCR 配置信息,包括 DMDSC、DMASM、DMCSS 资源,包括实例名、监听端口、集群中故障节点信息等。
DCR 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸设备。在一个集群环境中只能配置一个 DCR 磁盘

3.2 表决磁盘(Voting Disk)

表决磁盘记录了集群成员信息,DM 集群通过 Voting Disk 进行心跳检测,确定集群中节点的状态,判断节点是否出现故障。当集群中出现网络故障时,使用 Voting Disk 来确定哪些 DMDSC 节点应该被踢出集群。表决磁盘还用来传递命令,在集群的不同状态(启动、节点故障、节点重加入等)DMCSS 通过 Voting Disk 传递控制命令,通知节点执行相应命令。
Voting Disk 必须存储在集群中所有节点都可以访问到的共享存储中,并且只支持裸设备。在一个集群环境中只能配置一个表决磁盘
集群中各实例启动时,通过访问 DCR 获取集群配置信息。被监控实例从 Voting Disk 读取监控命令,并向 Voting Disk 写入命令响应以及自身心跳信息;DMCSS 也向 Voting Disk 写入自己的心跳信息,并从 Voting Disk 访问各被监控节点的运行情况,并将监控命令写入 Voting Disk,供被监控实例访问执行。

3.3 HeartBeat(心跳机制)

DMCSS 的心跳机制是通过 Voting Disk 的 Disk Heartbeat

3.4 MAL 链路

MAL 系统是达梦数据库基于 TCP 协议实现的一种内部通信机制。使用 DMASM 文件系统的 DMDSC 集群中存在两套 MAL 系统,DMASM 服务器之间配置一套 MAL 系统(dmasvrmal.ini),dmserver 服务器之间配置一套 MAL 系统(dmmal.ini)。一旦 MAL 链路出现异常,DMCSS 会进行裁定,并从集群中踢出一个节点,保证集群环境正常运行。

3.5 与 DMDSC 相关的配置文件

  • DMDCR_CFG.INI

  • DMDCR.INI

  • DMINIT.INI

  • MAL 系统配置文件(DMMAL.INI、DMASVRMAL.INI)

  • DM.INI

3.5.1 DMDCR_CFG.INI

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

3.5.2 DMDCR.INI

dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。

3.5.3 DMINIT.INI

dminit.ini 是 dminit 工具初始化数据库环境的配置文件。dminit 工具的命令行参数都可以放在 dminit.ini 中,比如dbname,autooverwrite 等,dminit.ini 格式分为全局参数和节点参数。

3.5.4 MAL 系统配置文件(DMMAL.INI、DMASVRMAL.INI)

dmmal.ini 和 dmasvrmal.ini 都是 MAL 配置文件。使用同一套 MAL 系统的所有实例,MAL 系统配置文件要严格保持一致。

3.5.5 DM.INI

dm.ini 是 dmserver 使用的配置文件。各 DSC 节点之间的部分 INI 参数必须保持一致,如果不一致,会导致后启动的节点启动失败,日志会记录失败原因。每个节点用系统函数修改本节点的 INI 时,DSC 会将新修改值同步到其它节点,始终保持 INI 参数值的一致性。

4. DMCSS

4.1 概述

DMCSS(Dameng Cluster Synchronization Services)达梦集群同步服务,使用 DMASM 集群或 DMDSC 集群都必须要配置 DMCSS 服务。在 DMASM 集群或 DMDSC 集群中,每个节点都需要配置一个 DMCSS 服务。这些 MCSS 服务自身也构成一个集群,DMCSS集群中负责监控、管理整个 DMASM 集群和 DMDSC 集群的节点称为控制节点(controlnode),其他 DMCSS 节点称为普通节点(normal node)。DMCSS 普通节点不参与 DMASM集群和 DMDSC 集群管理,当 DMCSS 控制节点故障时,会从活动的普通节点中重新选取一个DMCSS 控制节点。

4.2 心跳信息

DMCSS 实例启动后,每间隔 1 秒向 Voting Disk 指定区域写入心跳信息(包括自身的状态、时间戳等),表示 DMCSS 节点处于活动状态。

4.3 选举 DMCSS 控制节点

DMCSS 启动后向 Voting Disk 写入信息,并读取其他 DMCSS 节点的信息,如果 DMCSS集群中还没有活动的控制节点,则选举 DMCSS 控制节点。

DMCSS 选举的原则有两条:

  1. 先启动的 DMCSS 作为控制节点

  2. DMCSS 同时启动,则选择节点号小的节点为控制节点

5. DMASM

5.1 DMASM 磁盘

DMASM 磁盘是指经过 dmasmcmd 工具格式化,可以被 dmasmsvr 识别的物理磁盘

5.2 DMASMCMD

DMASMCMD 是 DMASM 文件系统初始化工具,用来格式化裸设备为 DMASM 磁盘,并初始化 DCR Disk、Voting Disk。格式化 DMASM 磁盘就是在裸设备的头部写入 DMASM 磁盘特征描述符号,包括 DMASM 标识串、DMASM 磁盘名、以及 DMASM 磁盘大小等信息。其中Voting Disk 和 DCR Disk 也会被格式化为 DMASM 磁盘。

5.3 DMASMSVR

DMASMSVR 是提供 DMASM 服务的主要载体,每个提供 DMASM 服务的节点都必须启动一个 DMASMSVR 服务器,这些 DMASMSVR 一起组成共享文件集群系统,提供共享文件的全局并发控制。
DMASMSVR 实例之间使用 MAL 系统进行信息和数据的传递。
DMASMSVR 集群的启动、关闭、故障处理等流程由 DMCSS 控制,DMASMSVR 定时向Voting Disk 写入时间戳、状态、命令、以及命令执行结果等信息,DMCSS 控制节点定时从 Voting Disk 读取信息,检查 DMASMSVR 实例的状态变化,启动相应的处理流程。
DMASMSVR 集群中,只有一个控制节点,控制节点以外的其他节点叫做普通节点,DMASMSVR 控制节点由 DMCSS 选取;所有 DDL 操作(比如创建文件,创建磁盘组等)都是在控制节点执行,用户登录普通节点发起的 DDL 请求,会通过 MAL 系统发送到控制节点执行并返回;而 DMASM 文件的读、写等操作,则由登录节点直接完成,不需要传递到控制节点执行。

    二. 部署实施过程

    1.安装部署结构图

2. 安装规划

2.1 主机基本信息

  • 操作系统:中标麒麟7.6

    DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。


主机名称CPU内存SWAP/TMPNTP
dmdsc128G8G1G192.168.2.30
dmdsc228G8G1G192.168.2.30

2.2 网络基本信息

主机名称public-ipprivate-ip网卡名称

dmdsc1192.168.2.30
bond0eth0eth1


192.168.3.30bond1eth2eth3
dmdsc2192.168.2.31
bond0eth0eth1


192.168.3.31bond1eth2eth3

2.3 本地目录信息

目录用途路径容量
数据库软件安装目录/dmdbms50G
本地归档日志存放目录/dmarch50G
远程归档存放目录/remote_arch50G
备份文件存放目录/dmbak50G

2.4 共享存储信息

用途磁盘/分区容量
存放DCR信息/dev/sdb1G
存放VOTE信息/dev/sdc1G
存放REDO日志/dev/sdd10G
存放数据文件/dev/sde10G

2.5 网络端口

实例名称端口类型端口用途
CSS1DCREPPORT9341CSS 进程 TCP 连接端口
CSS2DCREPPORT9341CSS 进程 TCP 连接端口
ASM1DCREPPORT9351ASM 进程 TCP 连接的端口
ASM2DCREPPORT9351ASM 进程 TCP 连接的端口
DSC1DCREPPORT5236数据库实例监听端口
DSC1DCRCHECKPORT9741DCR 检查数据库实例监听端口
DSC2DCREPPORT5236数据库实例监听端口
DSC2DCRCHECKPORT9741DCR 检查数据库实例监听端口
ASM01 MALMAL_PORT7236ASM 的 MAL 系统 TCP 连接的端口
ASM02 MALMAL_PORT7236ASM 的 MAL 系统 TCP 连接的端口
DSC01 MALMAL_PORT9236数据库实例的 MAL 系统 TCP 连接的端口
DSC02 MALMAL_PORT9236数据库实例的 MAL 系统 TCP 连接的端口

3. 操作系统调整

3.1 主机名设置

  1. hostnamectl set-hostname dmdsc1

  2. hostnamectl set-hostname dmdsc2

3.2 关闭透明大页、网卡名调整为eth*

  1. vi /etc/default/grub


  2. GRUB_TIMEOUT=5

  3. GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

  4. GRUB_DEFAULT=saved

  5. GRUB_DISABLE_SUBMENU=true

  6. GRUB_TERMINAL_OUTPUT="console"

  7. GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=vg00/lvroot rd.lvm.lv=vg00/lvswap rhgb quiet transparent_hugepage=never net.ifnames=0 net.ifname=0 ipv6.disable=1"

  8. GRUB_DISABLE_RECOVERY="true


  9. [root@dmdsc1 run]# grub2-mkconfig -o /boot/grub2/grub.cfg

  10. Generating grub configuration file ...

  11. Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64

  12. Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img

  13. Found linux image: /boot/vmlinuz-0-rescue-b31311aec4494fef9ce618b63610125a

  14. Found initrd image: /boot/initramfs-0-rescue-b31311aec4494fef9ce618b63610125a.img

  15. done


  16. systemctl disable tuned


  17. init 6

3.3 网卡bond

  1. systemctl stop NetworkManager

  2. systemctl disable NetworkManager



  3. [root@dmrac2 network-scripts]# more ifcfg-bond0

  4. BOOTPROTO=static

  5. DEVICE=bond0

  6. NAME=bond0

  7. TYPE=bond

  8. BONDING_MASTER=yes

  9. ONBOOT=yes

  10. IPADDR=192.168.2.31

  11. NETMASK=255.255.255.0

  12. GATEWAY=192.168.2.1

  13. BONDING_OPTS="miimon=100 mode=1"


  14. [root@dmrac2 network-scripts]# more ifcfg-bond1

  15. BOOTPROTO=static

  16. DEVICE=bond1

  17. NAME=bond1

  18. TYPE=bond

  19. BONDING_MASTER=yes

  20. ONBOOT=yes

  21. IPADDR=192.168.3.31

  22. NETMASK=255.255.255.0

  23. BONDING_OPTS="miimon=100 mode=1"


  24. [root@dmrac2 network-scripts]# more ifcfg-eth0

  25. TYPE=Ethernet

  26. PROXY_METHOD=none

  27. BROWSER_ONLY=no

  28. BOOTPROTO=static

  29. DEFROUTE=yes

  30. IPV4_FAILURE_FATAL=no

  31. IPV6INIT=yes

  32. IPV6_AUTOCONF=yes

  33. IPV6_DEFROUTE=yes

  34. IPV6_FAILURE_FATAL=no

  35. IPV6_ADDR_GEN_MODE=stable-privacy

  36. NAME=eth0

  37. DEVICE=eth0

  38. ONBOOT=yes

  39. MASTER=bond0

  40. SLAVE=yes


  41. [root@dmrac2 network-scripts]# more ifcfg-eth1

  42. TYPE=Ethernet

  43. PROXY_METHOD=none

  44. BROWSER_ONLY=no

  45. BOOTPROTO=static

  46. DEFROUTE=yes

  47. IPV4_FAILURE_FATAL=no

  48. IPV6INIT=yes

  49. IPV6_AUTOCONF=yes

  50. IPV6_DEFROUTE=yes

  51. IPV6_FAILURE_FATAL=no

  52. IPV6_ADDR_GEN_MODE=stable-privacy

  53. NAME=eth1

  54. DEVICE=eth1

  55. ONBOOT=yes

  56. MASTER=bond0

  57. SLAVE=yes


  58. [root@dmrac2 network-scripts]# more ifcfg-eth2

  59. TYPE=Ethernet

  60. PROXY_METHOD=none

  61. BROWSER_ONLY=no

  62. BOOTPROTO=static

  63. DEFROUTE=yes

  64. IPV4_FAILURE_FATAL=no

  65. IPV6INIT=yes

  66. IPV6_AUTOCONF=yes

  67. IPV6_DEFROUTE=yes

  68. IPV6_FAILURE_FATAL=no

  69. IPV6_ADDR_GEN_MODE=stable-privacy

  70. NAME=eth2

  71. DEVICE=eth2

  72. ONBOOT=yes

  73. MASTER=bond1

  74. SLAVE=yes


  75. [root@dmrac2 network-scripts]# more ifcfg-eth3

  76. TYPE=Ethernet

  77. PROXY_METHOD=none

  78. BROWSER_ONLY=no

  79. BOOTPROTO=static

  80. DEFROUTE=yes

  81. IPV4_FAILURE_FATAL=no

  82. IPV6INIT=yes

  83. IPV6_AUTOCONF=yes

  84. IPV6_DEFROUTE=yes

  85. IPV6_FAILURE_FATAL=no

  86. IPV6_ADDR_GEN_MODE=stable-privacy

  87. NAME=eth3

  88. DEVICE=eth3

  89. ONBOOT=yes

  90. MASTER=bond1

  91. SLAVE=yes

3.4 本地文件系统创建

  1. mkdir -p /dmdbms

  2. mkdir -p /dmarch

  3. mkdir -p /dmbak

  4. mkdir -p /remote_arch

  5. chown -R dmdba:dinstall /dmdbms

  6. chown -R dmdba:dinstall /dmarch

  7. chown -R dmdba:dinstall /dmbak

  8. chown -R dmdba:dinstall /remote_arch

  9. chmod -R 775 /dmdbms

  10. chmod -R 775 /dmarch

  11. chmod -R 775 /dmbak

  12. chmod -R 775 /remote_arch

3.5 用户组创建

  1. groupadd dinstall

  2. useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

  3. passwd dmdba

3.6 用户资源限制

  1. vi /etc/security/limits.conf


  2. dmdba soft core unlimited

  3. dmdba hard core unlimited

  4. dmdba soft nofile 65536

  5. dmdba hard nofile 65536

  6. dmdba soft nproc 65536

  7. dmdba hard nproc 65536

  8. dmdba soft stack 65536

  9. dmdba hard stack 65536

3.7 用户环境变量配置

  1. vi /home/dmdba/.bash_profile


  2. export DM_HOME=/dmdbms

  3. export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

  4. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

3.8 防火墙配置

3.8.1 端口规划

搭建 2 节点共享存储集群,端口规划如下:(实际中可以按需要修改端口号)

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

3.8.2 关闭防火墙及SELINUX

  1. systemctl stop firewalld

  2. systemctl disable firewalld

  3. sed -i -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3.9 本地yum源配置

3.9.1 中标麒麟7.6

  1. mount /dev/sr0 /media


  2. vi /etc/yum.repos.d/ns7-adv.repo

  3. [ns7-adv-os]

  4. name=NeoKylin Linux Advanced Server 7 - Os

  5. baseurl=file:///media

  6. gpgcheck=0

  7. gpgkey=file:///media/RPM-GPG-KEY-neokylin-release

  8. enabled=1

3.9.2 中标麒麟6.0

  1. vi /etc/yum.repos.d/ns6-adv.repo

  1. [nk6-adv-os]

  2. name=NeoKylin Linux Advanced Server 6 - Os

  3. baseurl=file:///media

  4. gpgcheck=0

  5. gpgkey=file:///media/rpm-gpg/RPM-GPG-KEY-neokylin-release

  6. enabled=1

3.10. 必要软件包安装

  1. yum install -y net-tools glibc-devel gtk2 lrzsz unzip libXp libXt libXtst cjkuni-uming-fonts sysstat

3.11. 配置共享存储

3.11.1 vmware workstation 创建共享磁盘

  1. cd "c:\Program Files (x86)\VMware\VMware Workstation\"

  2. vmware-vdiskmanager.exe -c -s 1024mb -a lsilogic -t 4 "E:\vmware\dm_sharedisk\dcr.vmdk"

  3. vmware-vdiskmanager.exe -c -s 1024mb -a lsilogic -t 4 "E:\vmware\dm_sharedisk\vote.vmdk"

  4. vmware-vdiskmanager.exe -c -s 10240mb -a lsilogic -t 4 "E:\vmware\dm_sharedisk\log1.vmdk"

  5. vmware-vdiskmanager.exe -c -s 10240mb -a lsilogic -t 4 "E:\vmware\dm_sharedisk\data1.vmdk"

3.11.2 添加共享磁盘至虚拟主机

  1. vi *.vmx


  2. --添加以下内容


  3. disk.locking= "FALSE"

  4. disk.EnableUUID = "TRUE"

  5. scsi1.virtualDev = "lsilogic"

  6. scsi1.pciSlotNumber = "41"

  7. scsi1.present = "TRUE"

  8. scsi1:0.fileName = "E:\vmware\dm_sharedisk\dcr.vmdk"

  9. scsi1:0.mode = "independent-persistent"

  10. scsi1:0.present = "TRUE"

  11. scsi1:1.fileName = "E:\vmware\dm_sharedisk\vote.vmdk"

  12. scsi1:1.mode = "independent-persistent"

  13. scsi1:1.present = "TRUE"

  14. scsi1:2.fileName = "E:\vmware\dm_sharedisk\log1.vmdk"

  15. scsi1:2.mode = "independent-persistent"

  16. scsi1:2.present = "TRUE"

  17. scsi1:3.fileName = "E:\vmware\dm_sharedisk\data1.vmdk"

  18. scsi1:3.mode = "independent-persistent"

  19. scsi1:3.present = "TRUE"

  20. scsi1:3.redo = ""

  21. scsi1:2.redo = ""

  22. scsi1:1.redo = ""

  23. scsi1:0.redo = ""

3.11.3 添加后查看共享磁盘

  1. [root@dmrac2 ~]# lsblk

  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

  3. sda 8:0 0 50G 0 disk

  4. ├─sda1 8:1 0 1G 0 part /boot

  5. └─sda2 8:2 0 49G 0 part

  6. ├─nlas-root 253:0 0 44G 0 lvm /

  7. └─nlas-swap 253:1 0 5G 0 lvm [SWAP]

  8. sdb 8:16 0 1G 0 disk

  9. sdc 8:32 0 1G 0 disk

  10. sdd 8:48 0 10G 0 disk

  11. sde 8:64 0 10G 0 disk

  12. sr0 11:0 1 4G 0 rom

  13. [root@dmrac2 ~]#

3.12. RHEL7使用UDEV绑定

[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
36000c29e1e5b62e29a5d46c2df8c47d0
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c291d4e12576610b6ef44d60ea60
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c2928e167cd6a0acfb0b27075fcc
[root@dmdsc1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sde
36000c29c93100dded9f542a69f4e957d


cat > /etc/udev/rules.d/99-dmasm.rules <<-'EOF'
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29e1e5b62e29a5d46c2df8c47d0", SYMLINK+="dmasm/dcr",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291d4e12576610b6ef44d60ea60", SYMLINK+="dmasm/vote",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2928e167cd6a0acfb0b27075fcc", SYMLINK+="dmasm/log",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c93100dded9f542a69f4e957d", SYMLINK+="dmasm/data001",OWNER="dmdba", GROUP="dinstall",MODE="0660",OPTIONS="nowatch"
EOF


/sbin/udevadm trigger --type=devices --action=change
/sbin/udevadm control --reload

log:

[root@dmdsc2 ~]# ls -l /dev/dmasm/*
lrwxrwxrwx 1 root root 6 Dec 8 20:09 /dev/dmasm/data001 -> ../sde
lrwxrwxrwx 1 root root 6 Dec 8 20:09 /dev/dmasm/dcr -> ../sdb
lrwxrwxrwx 1 root root 6 Dec 8 20:09 /dev/dmasm/log -> ../sdd
lrwxrwxrwx 1 root root 6 Dec 8 20:09 /dev/dmasm/vote -> ../sdc
[root@dmdsc2 ~]# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Dec 8 20:09 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 8 20:09 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 8 20:09 /dev/sda2
brw-rw---- 1 dmdba dinstall 8, 16 Dec 8 20:09 /dev/sdb
brw-rw---- 1 dmdba dinstall 8, 32 Dec 8 20:09 /dev/sdc
brw-rw---- 1 dmdba dinstall 8, 48 Dec 8 20:09 /dev/sdd
brw-rw---- 1 dmdba dinstall 8, 64 Dec 8 20:09 /dev/sde
[root@dmdsc2 ~]#
至此,达梦数据库学习系列之基于CentOS7部署DM8DSC共享集群(一)基础环境准备完毕,下一节介绍DM8 DSC集群安装及配置。
文章转载自麻瓜的DBA生活,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论