DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,联机日志和归档日志都需要保存在共享存储上。
DMDSC 集群由若干数据库实例组成,这些实例间通过网络(MAL 链路)连接,通过一个特殊的软件(DMCSS,集群同步服务)的协助,共同操作一个数据库。
从外部用户视角来看,他们看到的只是一个数据库。数据文件、控制文件等文件在集群中只有一份,所有节点平等地使用这些数据文件。这份数据存放在共享存储上,每个服务器通过高速共享存储网络连接到共享存储上。
DM 自动存储管理器(DM Auto Storage Manager,简称 DMASM)是一个专用用来DM8 数据共享集群为块设备管理文件的分布式文件系统。使用 DMASM 文件系统可以灵活地在块设备上创建、删除、扩展、截断文件,不用担心空间不足(可以通过在线增加块设备的磁盘来扩展空间)或空间浪费;不用考虑文件个数限制;可以方便地查看空间使用情况。
DMDSC 支持多个节点同时访问、修改 DMASM 中的数据文件。
DMASM 不是一个通用的文件系统,应用程序只能通过 DMASMAPI 接口访问。理论上通过 DMASMAPI 接口可以存放任何文件,但在 DMDSC 集群中,一般只建议将需要在节点间共享访问的文件存在 DMASM 中,如数据文件、联机 REDO 日志文件、控制文件等。归档 REDO 日志文件、备份集文件也可以考虑保存到 DMASM 中,避免还原、恢复等操作时节点间的文件拷贝,简化备份、还原操作。其他的一些本地配置文件比如 DM.INI 等建议保存在本地磁盘中。
DMDSC 集群中若配置 DMASM,则要求 DMASM 站点数和 DMCSS 站点数一致,且只能存在一个 DMCSS 组和一个 DMASM 组。
DM 集群同步服务(DM Cluster Synchronization Services,简称 DMCSS)是一款集群控制软件,是 DMDSC 集群应用的基础。DMCSS 专门负责监控集群中各个节点的运行状态,主要功能包括集群环境中节点的启动、故障处理、节点重加入等操作。每个 DMDSC 集群或 DMASM 集群节点都必须配置一个 DMCSS 服务。这些 DMCSS服务又共同构成一个 DMCSS 集群。单节点应用时,可以不配置 DMCSS。
DM 集群监视器(DM Cluster Synchronization Services Monitor,简称 DMCSSM)用来监控整个集群的状态信息。DMCSSM 与 DMCSS 相互通信,从 DMCSS 处获取整个集群系统的状态信息。DMCSSM提供一系列管理维护集群的命令。
配置了 DMCSS 的集群中,可配置 0~10 个 DMCSSM。为了防止硬件损坏导致 DMCSSM和其他服务器同时故障,建议用户将 DMCSSM 和其他服务器分开放置,DMCSSM 可单独放置在一台机器上。
DMCSS 的心跳机制(Heartbeat)是通过 VOTE 磁盘(非镜像环境下)或 DCRV 磁盘(镜像环境下)的 Disk Heartbeat 实现。心跳机制有最大时延,只有超过最大时延,才认为监测对象故障。
MAL 系统是达梦数据库基于 TCP 协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。使用 DMASM 文件系统的 DMDSC 集群中存在两套 MAL 系统,DMASM 服务器之间配置一套 MAL 系统,DMSERVER 服务器之间配置一套 MAL 系统。两套 MAL 系统工作原理相同:一旦 MAL 链路出现异常,DMCSS 会进行裁定,并从集群中踢出一个节点,保证集群环境正常运行。
共享内存是一种快速、高效的进程间通信手段。所谓共享内存,就是同一块物理内存被映射到多个进程的地址空间,进程 A 可以即时看到进程 B 对共享内存的修改,反之亦然。
DMASM 服务器进程和 DMASM 客户端进程之间通过共享内存方式共享ASM 文件到实际磁盘的映射关系。实例一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。简单来说,实例就是操作 DM 数据库的一种手段,是用来访问数据库的内存结构以及后台进程的集合。
DM 数据库存储在服务器的磁盘上,而 DM 实例则存储于服务器的内存中。通过运行 DM实例,可以操作 DM 数据库中的内容。在任何时候,一个实例只能与一个数据库进行关联(装载、打开或者挂起数据库)。在大多数情况下,一个数据库也只有一个实例对其进行操作。但是在 DM 数据共享集群(DMDSC)中,多个实例可以同时装载并打开一个数据库(位于一组由多台服务器共享的物理磁盘上)。此时,我们可以同时从多台不同的计算机访问这个数据库
110节点:
进入虚拟机设置。点击添加 > 硬盘 > SCSI(推荐) > 创建新虚拟磁盘。
设置磁盘大小(例如20GB),选择立即分配磁盘空间(可选)。
在磁盘模式中选择 Independent,并勾选 Persistent(持久化模式)。
编辑虚拟机文件 DMDSC-1.vmxf 末尾添加如下内容:
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = “0”
disk.locking = “FALSE”
scsi1.sharedBus = “virtual”
disk.EnableUUID = “TRUE”
111节点:
进入虚拟机设置。点击添加 > 硬盘 > SCSI(推荐) >使用现有虚拟磁盘
在磁盘模式中选择 Independent,并勾选 Persistent(持久化模式)。
编辑虚拟机文件 DMDSC-2.vmxf 末尾添加如下内容:
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = “0”
disk.locking = “FALSE”
scsi1.sharedBus = “virtual”
disk.EnableUUID = “TRUE”
启动虚拟机查看磁盘:
110:
[root@dmdsc-1 ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000cc1d0
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris
/dev/sda3 4810752 41943039 18566144 83 Linux
Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sde: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdd: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
111:
[root@dmdsc-2 ~]# fdisk -l
Disk /dev/sdc: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000cc1d0
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 4810751 2097152 82 Linux swap / Solaris
/dev/sda3 4810752 41943039 18566144 83 Linux
Disk /dev/sde: 6442 MB, 6442450944 bytes, 12582912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sdd: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
使用 root 用户创建用于搭建环境的用户和组,以下两机器都要做。
[root@dmdsc-2 ~]# groupadd dmdba
[root@dmdsc-2 ~]# useradd -g dmdba dmdba
[root@dmdsc-2 ~]# passwd dmdba
Changing password for user dmdba.
New password: ******
Retype new password: ******
passwd: all authentication tokens updated successfully.
两机器都要做。
使用 dmdba 用户创建用于 DSC 环境搭建的目录: /home/dmdba/dmdsc
DM 执行码和工具存放于目录:/home/dmdba/dmdsc/bin。
配置文件存放于目录:
110 机器 :/home/dmdba/dmdsc/data/DSC01
111 机器 :/home/dmdba/dmdsc/data/DSC02
110 节点:
[dmdba@dmdsc-1 ~]$ mkdir -p dmdsc/bin dmdsc/data/DSC01
111 节点:
[dmdba@dmdsc-2 ~]$ mkdir -p dmdsc/bin dmdsc/data/DSC02
1. 使用 UDEV 工具来固定磁盘。(两节点都要做)
通过 scsi_id 获取磁盘信息。
110节点:
[root@dmdsc-1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
36000c295fff29b4c6700c8f6603f8077
[root@dmdsc-1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c2973bfbfb3cd4727436e76fe2c1
[root@dmdsc-1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c2979a910cf5f59cc8cac4ded54c
[root@dmdsc-1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sde
36000c29134e98aab8226d4d2458bc8c3
111节点:
[root@dmdsc-2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
36000c295fff29b4c6700c8f6603f8077
[root@dmdsc-2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
36000c2973bfbfb3cd4727436e76fe2c1
[root@dmdsc-2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
36000c29134e98aab8226d4d2458bc8c3
[root@dmdsc-2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sde
36000c2979a910cf5f59cc8cac4ded54c
以上可以看出 110 的 /dev/sdd,/dev/sde 和 111 的 /dev/sdd,/dev/sde错位对应其
他磁盘两节点一致。
本步骤的目的是为了在下一步中将相同 scsi_id 的磁盘创建相同的盘符。例如,下
一步骤中 RESULT==“234074fa79680f431"即为将 scsi_id 为 234074fa79680f431
的磁盘命名为 DCR 磁盘,并将 DCR 磁盘软链接到/dev_DSC2 目录下并命名为
DCR。
2. 创建磁盘链接(两节点保持一致)
编写/etc/udev/rules.d/66-dmdevices.rules 配置信息,创建磁盘链接。书写时一
个 KERNEL 为一行,不能换行。
[root@dmdsc-1 ~]# vim /etc/udev/rules.d/66-dmdevices.rules
DCR 磁盘配置,且在软链接之前创建文件夹 /dev_DSC2
KERNEL==“sd*”,SUBSYSTEM==“block”,PROGRAM==”/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c295fff29b4c6700c8f6603f8077”,SYMLINK+=“DCR”, OWNER=“dmdba”, GROUP=“dmdba”, MODE=“0660”, RUN+="/bin/sh -c ‘chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC2; ln -s /dev/DCR /dev_DSC2/DCR’"
VOTE 磁盘配置
KERNEL==“sd*”,SUBSYSTEM==“block”,PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c2973bfbfb3cd4727436e76fe2c1”,SYMLINK+=“VOTE”, OWNER=“dmdba”, GROUP=“dmdba”, MODE=“0660”, RUN+="/bin/sh -c ‘chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC2/VOTE’"
DMDATA 磁盘配置
KERNEL==“sd*”,SUBSYSTEM==“block”,PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c29134e98aab8226d4d2458bc8c3”,SYMLINK+=“DMDATA”, OWNER=“dmdba”, GROUP=“dmdba”, MODE=“0660”, RUN+="/bin/sh -c ‘chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC2/DMDATA’"
DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba 组的 dmdba 用户
KERNEL==“sd*”,SUBSYSTEM==“block”,PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36000c2979a910cf5f59cc8cac4ded54c”,SYMLINK+=“DMLOG”, OWNER=“dmdba”, GROUP=“dmdba”, MODE=“0660”, RUN+="/bin/sh -c ‘chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC2/DMLOG ; chown -R dmdba:dmdba /dev_DSC2’"
从配置信息可以看出,通过 scsi id 找到磁盘后,在 /dev/下命名了磁盘信息,然后
再做软链接到 /dev_DSC2 下。目录路径必须以“/dev”开始,否则 DM
不会认为这是使用物理磁盘的真实环境。之所以要软链接到独立目录,是因为
DMDSC 启动时会扫描目录下所有磁盘,如果目录中存在与当前 DMDSC 系统无关
的磁盘,则 DMDSC 将启动失败。因此需要软链接到独立目录,保证该目录下仅包
含当前 DMDSC 系统使用的共享存储磁盘,避免 DMDSC 启动失败。
3. 重启 systemd-udev-trigger 服务。
[root@dmdsc-1 ~]# systemctl restart systemd-udev-trigger
[root@dmdsc-2 ~]# systemctl restart systemd-udev-trigger
搭建之前磁盘权限信息如下:
[root@dmdsc-1 ~]# ls -lth /dev_DSC2/
total 0
lrwxrwxrwx. 1 dmdba dmdba 10 Apr 10 23:49 DMLOG -> /dev/DMLOG
lrwxrwxrwx. 1 dmdba dmdba 9 Apr 10 23:49 VOTE -> /dev/VOTE
lrwxrwxrwx. 1 dmdba dmdba 11 Apr 10 23:40 DMDATA -> /dev/DMDATA
lrwxrwxrwx. 1 dmdba dmdba 8 Apr 10 23:40 DCR -> /dev/DCR
[root@dmdsc-2 ~]# ls -lth /dev_DSC2/
total 0
lrwxrwxrwx. 1 dmdba dmdba 9 Apr 10 23:49 VOTE -> /dev/VOTE
lrwxrwxrwx. 1 dmdba dmdba 10 Apr 10 23:49 DMLOG -> /dev/DMLOG
lrwxrwxrwx. 1 dmdba dmdba 11 Apr 10 23:40 DMDATA -> /dev/DMDATA
lrwxrwxrwx. 1 dmdba dmdba 8 Apr 10 23:40 DCR -> /dev/DCR
搭建的配置文件分别存放于 110 机器的/home/dmdba/dmdsc/data/DSC01 和
111 机器的/home/dmdba/dmdsc/data/DSC02 下。
110机器 /home/dmdba/dmdsc/data/DSC01 下
[dmdba@dmdsc-1 DSC01]$ vim DMDCR_CFG.INI
DCR_N_GRP= 3
DCR_VTD_PATH=/dev_DSC2/VOTE
DCR_OGUID= 1071107589
[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 = CSS1
DCR_EP_HOST = 10.12.10.110
DCR_EP_PORT = 5436
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 10.12.10.111
DCR_EP_PORT = 5436
[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 # 必须与dmasvrmal.ini 中MAL_INST_NAME一致
DCR_EP_SHM_KEY= 64735
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 10.12.10.110
DCR_EP_PORT= 5336
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[GRP_ASM]
DCR_EP_NAME= ASM2 # 必须与dmasvrmal.ini 中MAL_INST_NAME一致
DCR_EP_SHM_KEY= 54736
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 10.12.10.111
DCR_EP_PORT= 5336
DCR_EP_ASM_LOAD_PATH= /dev_DSC2
[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
[GRP_DSC]
DCR_EP_NAME= DSC2 # 必须与dm.ini 中INSTANCE_NAME一致
DCR_EP_SEQNO= 1
DCR_EP_PORT= 5236
111节点 与 110的内容完全一样。保存到/home/dmdba/dmdsc/data/DSC02
[dmdba@dmdsc-1 ~]$ dmasmcmd
dmasmcmd V8
ASM>create dcrdisk ‘/dev_DSC2/DCR’ ‘DCR’
[TRACE]The ASM initialize dcrdisk /dev_DSC2/DCR to name DMASMDCR
Used time: 36.606(ms).
ASM>create votedisk ‘/dev_DSC2/VOTE’ ‘VOTE’
[TRACE]The ASM initialize votedisk /dev_DSC2/VOTE to name DMASMVOTE
Used time: 34.278(ms).
ASM>create asmdisk ‘/dev_DSC2/DMDATA’ ‘DMDATA’
[TRACE]The ASM initialize asmdisk /dev_DSC2/DMDATA to name DMASMDMDATA
Used time: 27.795(ms).
ASM>create asmdisk ‘/dev_DSC2/DMLOG’ ‘DMLOG’
[TRACE]The ASM initialize asmdisk /dev_DSC2/DMLOG to name DMASMDMLOG
Used time: 31.947(ms).
ASM>init dcrdisk ‘/dev_DSC2/DCR’ from ‘/home/dmdba/dmdsc/data/DSC01/dmdcr_cfg.ini’ identified by ‘DCRpsd_123’
[TRACE]DG 126 alloc extent for inode (0, 0, 1)
[TRACE]DG 126 alloc 4 extents for 0xfe000002 (0, 0, 2)->(0, 0, 5)
Used time: 231.148(ms).
ASM>init votedisk ‘/dev_DSC2/VOTE’ from ‘/home/dmdba/dmdsc/data/DSC01/dmdcr_cfg.ini’
[TRACE]DG 125 alloc extent for inode (0, 0, 1)
[TRACE]DG 125 alloc 4 extents for 0xfd000002 (0, 0, 2)->(0, 0, 5)
Used time: 124.209(ms).
ASM>
110 节点的 /home/dmdba/dmdsc/data/DSC01 下
[dmdba@dmdsc-1 DSC01]$ vim dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME= ASM1
MAL_HOST= 10.12.10.110
MAL_PORT= 4836
[MAL_INST2]
MAL_INST_NAME= ASM2
MAL_HOST= 10.12.10.111
MAL_PORT= 4836
111节点 与 110的内容完全一样。保存到/home/dmdba/dmdsc/data/DSC02
保存到 110 的/home/dmdba/dmdsc/data/DSC01下
[dmdba@dmdsc-1 DSC01]$ vim dmdcr.ini
[dmdba@dmdsc-1 DSC01]$ cat dmdcr.ini
DMDCR_PATH = /dev_DSC2/DCR
DMDCR_MAL_PATH = /home/dmdba/dmdsc/data/DSC01/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdsc/bin/bin/dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/bin/dmserver path=/home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DMDCR_LINK_CHECK_IP=192.168.1.88
设置了 DMDCR_LINK_CHECK_IP,须为 110 节点的 DMSERVER 和 DMASMSVR 赋予 ping 权限。
[dmdba@dmdsc-1 ~]$ sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdsc/bin/bin/dmserver
[sudo] password for dmdba:
[dmdba@dmdsc-1 ~]$ sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdsc/bin/bin/dmasmsvr
[dmdba@dmdsc-1 ~]$
保存到 111 的/home/dmdba/dmdsc/data/DSC02 下。
[dmdba@dmdsc-2 DSC02]$ vim dmdcr.ini
DMDCR_PATH = /dev_DSC2/DCR
DMDCR_MAL_PATH = /home/dmdba/dmdsc/data/DSC02/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdsc/bin/bin/dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/bin/dmserver path=/home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
DMDCR_LINK_CHECK_IP=192.168.1.88
[dmdba@dmdsc-2 DSC02]$
设置了 DMDCR_LINK_CHECK_IP,须为 110 节点的 DMSERVER 和 DMASMSVR 赋予ping 权限。
[dmdba@dmdsc-2 DSC02]$ sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdsc/bin/bin/dmserver
[sudo] password for dmdba:
[dmdba@dmdsc-2 DSC02]$ sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdsc/bin/bin/dmasmsvr
[dmdba@dmdsc-2 DSC02]$
主节点 110 启动 DMCSS:
dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
另一节点 111 启动 DMCSS:
dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
主节点 110 启动 DMASMSVR:
dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
另一节点 111 启动 DMASMSVR:
dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
在 110 上登录创建:
[dmdba@dmdsc-1 log]$ dmasmtool dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
DMASMTOOL V8
ASM>CREATE DISKGROUP DMDATA asmdisk ‘/dev_DSC2/DMDATA’
Used time: 69.671(ms).
ASM>CREATE DISKGROUP DMLOG asmdisk ‘/dev_DSC2/DMLOG’
Used time: 61.127(ms).
ASM>
保 存 到home/dmdba/dmdsc/data/DSC01 目录下
[dmdba@dmdsc-1 DSC01]$ vim dminit.ini
DB_NAME= dameng
SYSTEM_PATH= +DMDATA/data
SYSTEM= +DMDATA/data/dameng/system.dbf
SYSTEM_SIZE= 128
ROLL= +DMDATA/data/dameng/roll.dbf
ROLL_SIZE= 128
MAIN= +DMDATA/data/dameng/main.dbf
MAIN_SIZE= 128
CTL_PATH= +DMDATA/data/dameng/dm.ctl
LOG_SIZE= 512
DCR_PATH= /dev_DSC2/DCR
DCR_SEQNO= 0
AUTO_OVERWRITE= 2
PAGE_SIZE = 16
EXTENT_SIZE = 16
SYSDBA_PWD=Dameng_123
SYSAUDITOR_PWD=Dameng_123
[DSC01]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC01/DSC01_conf
PORT_NUM = 5236
MAL_HOST= 10.12.10.110
MAL_PORT= 6536
LOG_PATH= +DMLOG/log/DSC01_log1.log
LOG_PATH= +DMLOG/log/DSC01_log2.log
[DSC02]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC02/DSC02_conf
PORT_NUM = 5236
MAL_HOST= 10.12.10.111
MAL_PORT= 6536
LOG_PATH= +DMLOG/log/DSC02_log1.log
LOG_PATH= +DMLOG/log/DSC02_log2.log
选择一个节点,启动 DMINIT 初始化数据库,这里以 110 为例。DMINIT 执
行完成后,会在 config_path 目录(/home/dmdba/dmdsc/data/DSC01/DSC01_conf 和
/home/dmdba/dmdsc/data/DSC02/DSC02_conf)下生成配置文件dm.ini和dmmal.ini。
[dmdba@dmdsc-1 DSC01]$ dminit control=/home/dmdba/dmdsc/data/DSC01/dminit.ini
initdb V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2026-01-17
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: +DMLOG/log/DSC01_log1.log
log file path: +DMLOG/log/DSC01_log2.log
log file path: +DMLOG/log/DSC02_log1.log
log file path: +DMLOG/log/DSC02_log2.log
write to dir [+DMDATA/data/dameng].
create dm database success. 2025-04-13 19:50:18
将 110 上 初 始 化 库 时 产 生 的 DSC02 节 点 的 配 置 文 件 ( 整 个
/home/dmdba/dmdsc/data/DSC02 文 件 夹 ) 复 制 到 111 机 器 的
/home/dmdba/dmdsc/data/DSC02/目录下。之后就可以启动数据库服务器了。
[dmdba@dmdsc-1 DSC01]$ scp -r /home/dmdba/dmdsc/data/DSC02/* dmdba@10.12.10.111:/home/dmdba/dmdsc/data/DSC02/
dmdba@10.12.10.111’s password:
dmmal.ini 100% 204 88.0KB/s 00:00
dm.ini 100% 80KB 18.2MB/s 00:00
sqllog.ini 100% 714 318.9KB/s 00:00
[dmdba@dmdsc-1 DSC01]$
分别启动两个节点的数据库服务
110 节点服务器启动:
[dmdba@dmdsc-1 ~]$ /home/dmdba/dmdsc/bin/bin/dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
111 节点服务器启动:
[dmdba@dmdsc-2 ~]$ /home/dmdba/dmdsc/bin/bin/dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
在/home/dmdba/dmdsc/data/路径下配置 DMCSSM.INI。
[dmdba@dmdsc-1 data]$ vim dmcssm.ini
#和 DMDCR_CFG.INI 中的 DCR_OGUID 保持一致
CSSM_OGUID = 1071107589
#配置所有 CSS 的连接信息,
#与 DMDCR_CFG.INI 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 10.12.10.110:5436
CSSM_CSS_IP = 10.12.10.111:5436
#监视器日志文件存放路径,没有的话需要创建
CSSM_LOG_PATH = /home/dmdba/dmdsc/data/cssm_log
#每个日志文件最大 32M
CSSM_LOG_FILE_SIZE = 32
#不限定日志文件总占用空间
CSSM_LOG_SPACE_LIMIT = 0
创建 DMCSSM 的日志存放路径。
[dmdba@dmdsc-1 data]$ mkdir /home/dmdba/dmdsc/data/cssm_log
启动 DMCSSM 集群监视器。
[dmdba@dmdsc-1 data]$ dmcssm ini_path=/home/dmdba/dmdsc/data/dmcssm.ini
[dmdba@dmdsc-1 cssm_log]$ dmcssm ini_path=/home/dmdba/dmdsc/data/dmcssm.ini
[monitor] [2025-04-14 00:00:55:054] CSS MONITOR V8
[monitor] [2025-04-14 00:00:55:478] CSS MONITOR SYSTEM IS READY
[monitor] [2025-04-14 00:00:55:480] Wait CSS Control Node choosed…
[monitor] [2025-04-14 00:00:56:501] Wait CSS Control Node choosed succeed.
help
DMCSSM使用说明:
SHOW命令中可以通过指定group_name获取指定组的信息,如果没有指定,则显示所有组的信息
1.help --显示帮助
2.show [group_name] --显示指定的组信息
3.show config --显示配置文件信息
4.show monitor --显示当前连接的监视器信息
5.set group_name auto restart on --打开指定组的自动拉起功能(只修改dmcss内存值)
6.set group_name auto restart off --关闭指定组的自动拉起功能(只修改dmcss内存值)
7.open force group_name --强制OPEN指定的ASM或DB组
8.ep startup group_name --启动指定的ASM或DB组
9.ep stop group_name --停止指定的ASM或DB组
10.ep halt group_name.ep_name --强制退出指定组的指定节点
11.extend node --扩展集群节点
12.ep crash group_name.ep_name --设定指定节点故障
13.check crash over group_name --检查指定组故障处理是否结束
14.exit --退出监视器
show
monitor current time:2025-04-14 00:01:07, n_group:3
======== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] =================
[CSS1] auto check = TRUE, global info:
[ASM1] auto restart = FALSE
[DSC1] auto restart = FALSE
[CSS2] auto check = TRUE, global info:
[ASM2] auto restart = FALSE
[DSC2] auto restart = FALSE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-04-14 00:01:06 CSS1 0 5436 Control Node OPEN WORKING OK TRUE 2680229 5756 2683985
2025-04-14 00:01:06 CSS2 1 5436 Normal Node OPEN WORKING OK TRUE 2680956 4774 2684708
====== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ======================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-04-14 00:01:06 ASM1 0 5336 Control Node OPEN WORKING OK TRUE 2691840 5805 2695569
2025-04-14 00:01:06 ASM2 1 5336 Normal Node OPEN WORKING OK TRUE 2693779 4831 2697499
=========== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] =========
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid pid ts
2025-04-14 00:01:06 DSC1 0 5236 Control Node OPEN WORKING OK TRUE 3689355 6786 3690948
2025-04-14 00:01:06 DSC2 1 5236 Normal Node OPEN WORKING OK TRUE 3729682 5422 3731184
=================================================================
110节点查看实例信息
[dmdba@dmdsc-1 log]$ disql sysdba/Dameng_123
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 22.927(ms)
disql V8
SQL> select * from gv$instance;
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION
START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------------------- ------- ------ ----------- ----------- ------------
BUILD_VERSION BUILD_TIME
--------------------------------- --------------------
1 DSC1 DSC1 1 dmdsc-1 DM Database Server x64 V8 DB Version: 0x7000d
2025-04-13 23:34:19 OPEN NORMAL 0 0 Control node
03134284336-20250117-257733-20132 Jan 22 2025 09:13:48
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION
START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------------------- ------- ------ ----------- ----------- ------------
BUILD_VERSION BUILD_TIME
--------------------------------- --------------------
2 DSC2 DSC2 2 dmdsc-2 DM Database Server x64 V8 DB Version: 0x7000d
2025-04-13 23:35:51 OPEN NORMAL 0 1 Normal node
03134284336-20250117-257733-20132 Jan 22 2025 09:17:02
已用时间: 6.173(毫秒). 执行号:66301.
SQL> select * from v$instance;
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION
START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------------------- ------- ------ ----------- ----------- ------------
BUILD_VERSION BUILD_TIME
--------------------------------- --------------------
1 DSC1 DSC1 1 dmdsc-1 DM Database Server x64 V8 DB Version: 0x7000d
2025-04-13 23:34:19 OPEN NORMAL 0 0 Control node
03134284336-20250117-257733-20132 Jan 22 2025 09:13:48
已用时间: 4.324(毫秒). 执行号:66302.
SQL>
111节点查看实例信息
[dmdba@dmdsc-2 DSC02_conf]$ disql sysdba/Dameng_123
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 97.270(ms)
disql V8
SQL> select * from gv$instance;
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION
START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------------------- ------- ------ ----------- ----------- ------------
BUILD_VERSION BUILD_TIME
--------------------------------- --------------------
1 DSC2 DSC2 2 dmdsc-2 DM Database Server x64 V8 DB Version: 0x7000d
2025-04-13 23:35:51 OPEN NORMAL 0 1 Normal node
03134284336-20250117-257733-20132 Jan 22 2025 09:13:48
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION
START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------------------- ------- ------ ----------- ----------- ------------
BUILD_VERSION BUILD_TIME
--------------------------------- --------------------
2 DSC1 DSC1 1 dmdsc-1 DM Database Server x64 V8 DB Version: 0x7000d
2025-04-13 23:34:19 OPEN NORMAL 0 0 Control node
03134284336-20250117-257733-20132 Jan 22 2025 09:17:02
已用时间: 11.108(毫秒). 执行号:101.
SQL> select * from v$instance;
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION
START_TIME STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------------------- ------- ------ ----------- ----------- -----------
BUILD_VERSION BUILD_TIME
--------------------------------- --------------------
1 DSC2 DSC2 2 dmdsc-2 DM Database Server x64 V8 DB Version: 0x7000d
2025-04-13 23:35:51 OPEN NORMAL 0 1 Normal node
03134284336-20250117-257733-20132 Jan 22 2025 09:13:48
已用时间: 3.657(毫秒). 执行号:102.
SQL>
110 机器
dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini
dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini
dmcssm ini_path=/home/dmdba/dmdsc/data/dmcssm.ini
111 机器
dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
dmasmsvr dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini
dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini
110 机器
#注册CSS服务
./dm_service_installer.sh -t dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini -p CSS
#注册ASM服务
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdsc/data/DSC01/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
#注册DSC服务
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
#注册监视器服务
./dm_service_installer.sh -t dmcssm -cssm_ini /home/dmdba/dmdsc/data/dmcssm.ini -p Monitor
111 机器
#注册CSS服务
./dm_service_installer.sh -t dmcss dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini -p CSS
#注册ASM服务
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdsc/data/DSC02/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
#注册DSC服务
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdsc/data/DSC02/DSC02_conf/dm.ini dcr_ini=/home/dmdba/dmdsc/data/DSC02/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
删除自启 :
./dm_service_uninstaller.sh -n DmCSSServiceCSS
./dm_service_uninstaller.sh -n DmASMSvrServiceASM
./dm_service_uninstaller.sh -n DmServiceDSC
文章
阅读量
获赞