达梦基于裸设备搭建DSC集群

10 篇文章 1 订阅

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

DMDSC 是一个共享存储的数据库集群系统。多个数据库实例同时访问、修改同一个数据库,必然带来了全局并发问题。DMDSC 集群基于单节点数据库管理系统之上,改造了 Buffer 缓冲区、事务系统、封锁系统和日志系统等,来适应共享存储集群节点间的全局并发访问控制要求。同时,引入缓存交换技术,提升数据在节点间的传递效率。


节点名称私网IP外网IP备注
DSC01192.168.17.136192.168.0.127
DSC02192.168.17.135192.168.0.128

一、添加共享磁盘

首先我们需要关机添加虚拟机的共享磁盘,由于添加共享磁盘还有几个要点跟注意事项,下面我给大家进行说明

1.选择一台虚拟机进行硬盘添加

在这里插入图片描述
这边我选择创建scsi硬盘,默认就行
这边
在这里插入图片描述
这边注意勾选立即分配和将虚拟磁盘存储为单个文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.修改硬盘设置

将创建好的硬盘点击高级选项,然后将模式更改为独立和永久,上面的虚拟设备节点你随便选择就行
在这里插入图片描述
注意:有些人在这一步会出现修改独立的按钮是灰色的,原因是因为你当前虚拟机有快照,先把快照删除再来操作
在这里插入图片描述
在这里插入图片描述

3.添加现有磁盘

点开另外一台虚拟机,选择使用现有
在这里插入图片描述
注意在选择现有的磁盘时,会有两个dsc磁盘文件,咱们选择默认名称就行
在这里插入图片描述
然后同样点击高级,更改模式为独立永久,虚拟设备节点跟前一台保持一致
在这里插入图片描述

4.修改虚拟机配置文件

我们将两台都添加完毕后,去修改下两台虚拟机的配置文件,后缀名为.vmx的文件,添加如下内容:
添加完后就保存启动两台虚拟机。
在这里插入图片描述

scsi1.sharedBus = “virtual”

disk.locking = “false”

diskLib.dataCacheMaxSize = “0”

diskLib.dataCacheMaxReadAheadSize = “0”

diskLib.dataCacheMinReadAheadSize = “0”

diskLib.dataCachePageSize = “4096”

diskLib.maxUnsyncedWrites = “0”

disk.EnableUUID = “TRUE”

注意:

因为我这边虚拟机节点使用的是 scsi1:0,因此使用 scsi1.sharedBus = “virtual” ,

也可以把每个虚拟节点列出来

例如:

scsi1:0.sharedBus = “virtual”

scsi1:1.sharedBus = “virtual”

scsi1:2.sharedBus = “virtual”

scsi1:3.sharedBus = “virtual”

二、磁盘划分区加绑定裸设备

1.划分分区

先查看下是否添加上了硬盘,我这边为sda,60G
[root@czk ~]# lsblk -l
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0    60G  0 disk 
sr0          11:0    1 843.7M  0 rom  
nvme0n1     259:0    0    60G  0 disk 
nvme0n1p1   259:1    0     1G  0 part /boot
nvme0n1p2   259:2    0    59G  0 part 
centos-root 253:0    0    43G  0 lvm  /
centos-home 253:1    0    16G  0 lvm  /home

使用fdisk命令划分成4个分区,前两个各1G,第三个大一点为2G,剩余的全部给第四个分区
[root@czk ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xa96bfbc9 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-125829119,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119)+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分区号 (2-4,默认 2):
起始 扇区 (2099200-125829119,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-125829119,默认为 125829119)+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (4196352-125829119,默认为 4196352):
将使用默认值 4196352
Last 扇区, +扇区 or +size{K,M,G} (4196352-125829119,默认为 125829119)+2G
分区 3 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
已选择分区 4
起始 扇区 (8390656-125829119,默认为 8390656):
将使用默认值 8390656
Last 扇区, +扇区 or +size{K,M,G} (8390656-125829119,默认为 125829119):
将使用默认值 125829119
分区 4 已设置为 Linux 类型,大小设为 56 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
再次查看下分区情况,fdisk划分区操作只需要在一台上执行就行,另外一台执行下partprobe /dev/sda会自己同步显示
[root@czk ~]# lsblk -l
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0    60G  0 disk 
sda1          8:1    0     1G  0 part 
sda2          8:2    0     1G  0 part 
sda3          8:3    0     2G  0 part 
sda4          8:4    0    56G  0 part 
sr0          11:0    1 843.7M  0 rom  
nvme0n1     259:0    0    60G  0 disk 
nvme0n1p1   259:1    0     1G  0 part /boot
nvme0n1p2   259:2    0    59G  0 part 
centos-root 253:0    0    43G  0 lvm  /
centos-home 253:1    0    16G  0 lvm  /home

2.绑定裸设备

编辑两台机器的/etc/udev/rules.d/70-persistent-net.rules文件添加如下内容,如果没有70文件自己新建一个也行
ACTION==“add”, KERNEL==“sda1”, RUN+=“/bin/raw /dev/raw/raw1 %N”
ACTION==“add”, KERNEL==“sda2”, RUN+=“/bin/raw /dev/raw/raw2 %N”
ACTION==“add”, KERNEL==“sda3”, RUN+=“/bin/raw /dev/raw/raw3 %N”
ACTION==“add”, KERNEL==“sda4”, RUN+=“/bin/raw /dev/raw/raw4 %N”
ACTION==“add”, KERNEL==“raw[1-4]”, OWNER=“root”, GROUP=“root”, MODE="660

[root@czk rules.d]# ll
总用量 4
-rw-r--r--. 1 root root 330 512 15:40 70-persistent-net.rules
[root@czk rules.d]# cat 70-persistent-net.rules 
ACTION=="add", KERNEL=="sda1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sda2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sda3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sda4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="root", GROUP="root", MODE="660

然后两节点分别执行partprobe /dev/sdb,通知系统分区表的变化

最后执行以下命令,完成裸设备绑定

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

执行以下命令重新加载udev rule:

[root@czk ~]# /sbin/udevadm control --reload

可通过以下命令查看裸设备大小

blockdev --getsize64 /dev/raw/raw1

也可以用下列命令来看是否生成裸设备

[root@czk ~]# ll /dev/raw
总用量 0
crw-------. 1 root root 162, 1 5月 12 15:47 raw1
crw-------. 1 root root 162, 2 5月 12 15:47 raw2
crw-------. 1 root root 162, 3 5月 12 15:47 raw3
crw-------. 1 root root 162, 4 5月 12 15:47 raw4
crw-rw----. 1 root disk 162, 0 5月 12 15:46 rawctl

也可以用下面的命令来验证大小
[root@czk ~]# blockdev --getsize64 /dev/raw/raw1
1073741824

三.配置dsc文件并启动服务

1.配置dmdcr_cfg.ini

dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息
在其中一台配置完毕后拷贝到另外一台上

[dmdba@czk DAMENG]$ cat dmdcr_cfg.ini 
DCR_N_GRP = 3 #组的个数
DCR_VTD_PATH = /dev/raw/raw2 #Voting Disk 路径
DCR_OGUID = 63635 #消息标识
[GRP] 组名
DCR_GRP_TYPE = CSS #组的类型(css,db,asm)
DCR_GRP_NAME = GRP_CSS #组名
DCR_GRP_N_EP = 2 #节点个数
DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳机制
[GRP_CSS]
DCR_EP_NAME = CSS0 #节点名
DCR_EP_HOST = 192.168.17.136 #私网ip
DCR_EP_PORT = 9341 #端口号
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.17.135
DCR_EP_PORT = 9343
[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 = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.17.136
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.17.135
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]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742

2.DMASMCMD 工具初始化

我们将配置好的dmdcr_cfg文件通过dmasmcmd工具初始化下,初始化的方式有两种,一种是登录cmd工具启动命令行,然后输入以下命令进行初始化,第二种是创建一个asmcmd文件,然后跑下文件,这边我选择用第二种
create dcrdisk ‘/dev/raw/raw1’ ‘dcr’ 创建一个dcr格式磁盘
create votedisk ‘/dev/raw/raw2’ ‘vote’ 创建一个voting disk磁盘
create asmdisk ‘/dev/raw/raw3’ ‘LOG0’ 创建一个asm磁盘
create asmdisk ‘/dev/raw/raw4’ ‘DATA0’
init dcrdisk ‘/dev/raw/raw1’ from '/home/data/dmdcr_cfg.ini’identified by ‘abcd’ 初始化dcr磁盘并创建一个密码为abcd
init votedisk ‘/dev/raw/raw2’ from ‘/home/data/dmdcr_cfg.ini’ 初始化voting disk磁盘

创建asmcmd文件

注意开头的#asm script file不能省略,不然无法识别运行
[dmdba@czk dmdbms]$ cat asmcmd.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 '/opt/dmdbms/data/DAMENG/dmdcr_cfg.ini'identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/opt/dmdbms/data/DAMENG/dmdcr_cfg.ini'

初始化dmdcr_cfg文件
注意!因为我在绑定裸设备的时候是使用下面语句中的root用户跟root组绑定的,所以我这边运行就用了root,不然用dmdba运行会报权限不足的权限,如果你绑定的时候使用的dmdba用户,那么请使用dmdba用户进行操作
ACTION==“add”, KERNEL==“raw[1-4]”, OWNER=“root”, GROUP=“root”, MODE="660

[root@czk bin]# ./dmasmcmd script_file=/opt/dmdbms/asmcmd.txt
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'

[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 182.695(ms).
ASM>create votedisk '/dev/raw/raw2' 'vote'

[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 22.167(ms).
ASM>create asmdisk '/dev/raw/raw3' 'LOG0'

[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG0
Used time: 9.389(ms).
ASM>create asmdisk '/dev/raw/raw4' 'DATA0'

[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA0
Used time: 1.871(ms).
ASM>init dcrdisk '/dev/raw/raw1' from '/opt/dmdbms/data/DAMENG/dmdcr_cfg.ini'identified by 'abcd'

[Trace]DG 126 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
[Trace]DG 126 alloc 4 extents for 0xfe000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 134.925(ms).
ASM>init votedisk '/dev/raw/raw2' from '/opt/dmdbms/data/DAMENG/dmdcr_cfg.ini'

[Trace]DG 125 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
[Trace]DG 125 alloc 4 extents for 0xfd000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 91.133(ms).
ASM>

3.配置dmasvrmal.ini文件

该文件是用来配置mal系统的。DMASMSVR 组成的集群环境使用 MAL 系统进行通讯
注意,该文件两边都要配置,内容一致

[dmdba@czk DAMENG]$ cat dmasvrmal.ini 
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.17.136
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.17.135
MAL_PORT = 7237

4.配置dmdcr.ini文件

dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径
注意,该配置文件两边都要配置,内容除了dmdcr_seqo 分别为 0 和 1外,其他都一致

192.168.17.136
[dmdba@czk DAMENG]$ cat dmdcr.ini 
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/opt/dmdbms/data/DAMENG/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr 
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver /opt/dmdbms/data/DAMENG/dsc0_config/dm.ini dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini



192.168.17.135
[dmdba@czk DAMENG]$ cat dmdcr.ini 
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/opt/dmdbms/data/DAMENG/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr 
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver /opt/dmdbms/data/DAMENG/dsc1_config/dm.ini dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini

5.启动dmcss服务

分别把两台机器的dmcss启动起来,看看前台是否有报错, 无报错后重新转后台启动
注意!启动的时候还是要根据你绑定裸设备时候的用户来决定,我是绑定root用户就用root启动,否则会有权限问题

192.168.17.136
[root@czk bin]# ./dmcss dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini
DMCSS V8
DMCSS IS READY
[2022-05-12 16:37:59:200] [CSS]: 设置EP CSS0[0]为控制节点

192.168.17.135
[root@czk bin]# ./dmcss dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini
DMCSS V8
DMCSS IS READY
[2022-05-12 16:37:59:200] [CSS]: 设置EP CSS0[0]为控制节点

转后台启动

192.168.17.136
[root@czk bin]# ./dmcss dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini &
[1] 3153
[root@czk bin]# DMCSS V8
DMCSS IS READY
Invalid cmd!
关键字                说明(默认值)
--------------------------------------------------------------------------------
SHOW                   显示CSS监测到的当前集群状态
OPEN FORCE GROUP_NAME  强制OPEN指定的ASM或DB组
EXTEND NODE            扩展集群节点
HELP                   显示当前帮助信息
EXIT                   退出CSS

[2022-05-12 16:43:42:586] [CSS]: 设置EP CSS0[0]为控制节点




192.168.17.135
[root@czk bin]# ./dmcss dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini &
[1] 3170
[root@czk bin]# DMCSS V8
DMCSS IS READY
Invalid cmd!
关键字                说明(默认值)
--------------------------------------------------------------------------------
SHOW                   显示CSS监测到的当前集群状态
OPEN FORCE GROUP_NAME  强制OPEN指定的ASM或DB组
EXTEND NODE            扩展集群节点
HELP                   显示当前帮助信息
EXIT                   退出CSS

[2022-05-12 16:43:50:798] [CSS]: 设置EP CSS0[0]为控制节点

6.启动dmasmsvr服务

在成功启动dmcss服务后,在启动asmsvr服务
asmsvr服务启动后,会出现dmcss如下的启动信息内容

[root@czk bin]# ./dmasmsvr dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini &
[2] 3260
[root@czk bin]# 
ASM SELF EPNO:0
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
invalid command.
invalid command.
invalid command.
[2022-05-12 17:02:34:720] [ASM]: 设置EP ASM0[0]为控制节点

[2022-05-12 17:02:34:722] [ASM]: 设置命令[START NOTIFY], 目标站点 ASM0[0], 命令序号[2]

check css cmd: START NOTIFY, cmd_seq: 2
[2022-05-12 17:02:35:727] [ASM]: 设置命令[EP START], 目标站点 ASM0[0], 命令序号[3]

check css cmd: EP START, cmd_seq: 3

ASM Control Node EPNO:0
[2022-05-12 17:02:36:730] [ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]

[2022-05-12 17:02:37:733] [ASM]: 设置命令[EP START], 目标站点 ASM1[1], 命令序号[5]

[2022-05-12 17:02:38:738] [ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]

[2022-05-12 17:02:39:742] [ASM]: 设置命令[EP OPEN], 目标站点 ASM0[0], 命令序号[8]

[2022-05-12 17:02:39:743] [ASM]: 设置命令[EP OPEN], 目标站点 ASM1[1], 命令序号[9]

check css cmd: EP OPEN, cmd_seq: 8
[2022-05-12 17:02:40:746] [ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]

[2022-05-12 17:02:40:747] [ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]

[2022-05-12 17:02:40:749] [ASM]: 设置命令[EP REAL OPEN], 目标站点 ASM0[0], 命令序号[11]

[2022-05-12 17:02:40:749] [ASM]: 设置命令[EP REAL OPEN], 目标站点 ASM1[1], 命令序号[12]

check css cmd: EP REAL OPEN, cmd_seq: 11
[2022-05-12 17:02:41:752] [ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]

[2022-05-12 17:02:41:754] [ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]

7.创建 DMASM 磁盘组

选择一台设备使用dmasmtool工具来创建

[root@czk bin]# ./dmasmtool dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini
DMASMTOOL V8
[Trace]atsk_process_connect client is local(1)
[Trace]atsk_process_connect success, client_is_local=1
创建日志磁盘组
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
[Trace]asm_disk_add: /dev/raw/raw3
[Trace]Create diskgroup DMLOG, with asmdisk /dev/raw/raw3
[Trace]DG 0 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]aptx op_type 1, log_len 1170, start seq 0
[Trace]generate one rpag seq 0.
[Trace]generate one rpag seq 1.
[Trace]generate one rpag seq 2.
[Trace]aptx flush op_type 1, log_len 1170, start seq 3
[Trace]The disk metadata addr(0, 0) flush.
Used time: 104.034(ms).

创建数据磁盘组
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
[Trace]aptx op_type 1, log_len 15, start seq 3
[Trace]generate one rpag seq 3.
[Trace]aptx flush op_type 1, log_len 15, start seq 4
[Trace]asm_disk_add: /dev/raw/raw4
[Trace]Create diskgroup DMDATA, with asmdisk /dev/raw/raw4
[Trace]DG 1 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]aptx op_type 1, log_len 1171, start seq 0
[Trace]generate one rpag seq 0.
[Trace]generate one rpag seq 1.
[Trace]generate one rpag seq 2.
[Trace]aptx flush op_type 1, log_len 1171, start seq 3
[Trace]The disk metadata addr(1, 0) flush.
Used time: 84.480(ms).

8.配置dminit.ini文件

dminit.ini 是 dminit 工具初始化数据库环境的配置文件。与初始化库使用普通文件系统不同,如果使用裸设备或者 ASM 文件系统,必须使用 dminit 工具的 control 参数指定 dminit.ini 文件。
两边都要配置,内容一致

[root@czk bin]# cat /opt/dmdbms/data/DAMENG/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 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /opt/dmdbms/data/DAMENG/dsc0_config
port_num = 5236
mal_host = 192.168.17.136
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /opt/dmdbms/data/DAMENG/dsc1_config
port_num = 5237
mal_host = 192.168.17.135
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

8.利用dminit初始化db环境

[root@czk bin]# ./dminit control=/opt/dmdbms/data/DAMENG/dminit.ini 
[Trace]The ASM create file +DMDATA/data/dsc from (0, 2818574632).
[Trace]aptx op_type 5, log_len 1358, start seq 3
[Trace]generate one rpag seq 3.
[Trace]generate one rpag seq 4.
[Trace]generate one rpag seq 5.
[Trace]aptx flush op_type 5, log_len 1358, start seq 6
[Error]Open file +DMDATA/data/dsc/bak fail, as not exist.
execute open ASM file fail, code: [-2405]
[Trace]The ASM create file +DMDATA/data/dsc/bak from (0, 2818574632).
[Trace]aptx op_type 5, log_len 685, start seq 6
[Trace]generate one rpag seq 6.
[Trace]generate one rpag seq 7.
[Trace]aptx flush op_type 5, log_len 685, start seq 8

 log file path: +DMLOG/log/dsc0_log01.log


 log file path: +DMLOG/log/dsc0_log02.log


 log file path: +DMLOG/log/dsc1_log01.log


 log file path: +DMLOG/log/dsc1_log02.log

create dm database success. 2022-05-12 17:16:57

9.拷贝dsc01_config目录

将生成的dsc01_config目录拷贝到另外一台机器上

[root@czk DAMENG]# scp -r dsc1_config/ root@192.168.17.135:/opt/dmdbms/data/DAMENG
root@192.168.17.135's password: 
dmmal.ini                                                                               100%  208   126.3KB/s   00:00    
dm.ini                                                                                  100%   53KB  20.5MB/s   00:00    
sqllog.ini  

更改下135机器上目录的权限
[root@czk DAMENG]# chown -R dmdba.dinstall dsc1_config/

10.启动两台dmserver服务

启动完毕后就搭建成功了

[root@czk bin]# ./dmserver /opt/dmdbms/data/DAMENG/dsc0_config/dm.ini dcr_ini=/opt/dmdbms/data/DAMENG/dmdcr.ini 

总结

对于dsc集群在搭建的时候还是需要耐心核对配置文件信息,权限信息以及ip地址等信息,也要注意端口的开放跟端口的冲突问题。

如果你还有其他问题,欢迎到达梦社区来提问~
社区地址:https://eco.dameng.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值