达梦数据库DMDSC共享存储集群搭建(虚拟机环境)

环境准备

两台配置相同的机器,另有一块共享磁盘 100G。
将所有节点的数据库软件安装好
DM 各种工具位于目录:/home/dmdba/dmdbms/bin
配置文件位于目录:/home/data
真实的生产环境中,建议至少配置两块共享磁盘,分别用来存放联机日志文件和数据文件。

创建共享磁盘

新建虚拟机

(1)双击桌面虚拟机图标,启动虚拟机软件。
(2)创建两个一样的虚拟机环境,一般都选择使用克隆的方式创建另外一下虚拟机。
(3)关闭两台虚拟机,然后点击其中一台虚拟机A中的磁盘选项。

主机A:

(1)在设置窗口中点击添加磁盘。
(2)在添加磁盘窗口中直接点击一步。
(3)在磁盘类型中选择默认即可,模式必须选择为独立永久。
(4)然后选择创建新的虚拟磁盘。
(5)指定磁盘容量大小,并选择立即分配所有磁盘空间。
(6)然后指定磁盘位置,点击完成即可开始创建磁盘,在指定磁盘位置的时候最好单独放在一个文件夹中。
(7)然后选择添加的磁盘点击右侧高级选项,在弹出的窗口中选择SCSI:1-N方式,并且选择为独立、永久,到这里第一台虚拟机已经添加好了。

主机B:

点击添加磁盘,使用现有磁盘。添加完成后。高级选项,在弹出的窗口中选择SCSI:1-N方式,并且选择为独立、永久。要求和主机A一致。

修改虚拟机文件:

右键虚拟机打开虚拟机路径,打开后修改.vmx文件。在两台虚拟机添加的vmx文件下都添加一下信息:

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "10240"
diskLib.maxUnsyncedWrites = "0"
scsi1:0.deviceType = "disk"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
scsi1:3.deviceType = "disk"
scsi1.sharedBus = "VIRTUAL"

输入:fdisk -l|grep "Disk /dev/sd*" 查看新添加的盘,两台服务器都可以看到。
在这里插入图片描述
这些都是测试环境准备工作,正常运行的共享集群一般不会在虚拟机。下面开始DSC搭建步骤。

可以按下面地址的方法在VM环境添加共享磁盘

进行裸设备划分:

#(这里1-4分区其实对应是DCR、vote、日志、数据分区)

输入 fdisk /dev/sdb
依次输入 n → p → 1 →回车→ +100M →回车,完成第一块磁盘划分
依次输入 n → p → 2 →回车→ +100M →回车,完成第二块磁盘划分
依次输入 n → p → 3 →回车→ +2048M →回车,完成第三块磁盘划分
依次输入 n → p → 4 →回车→回车→回车,完成第四块磁盘划分
w保存配置并退出
此处退出后最好进行reboot重启机器。

fdisk -l 						#查看分区后的结果。

编辑/etc/udev/rules.d/70-persistent-ipoib.rules 文件,增加以下语句:

CentOS 7.5版本为/etc/udev/rules.d/70-persistent-ipoib.rules
不同的linux操作系统文件名可能不同。

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="root", GROUP="root", MODE="660"

PS: 另一台虚拟机/dev目录下要看到sdb1-4几个分区需要重启虚拟机。

绑定裸设备,两台服务器上都需要进行以下操作:
创建/etc/udev/rules.d/70-raw.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"

创建/etc/udev/rules.d/99-fuse.rules文件,增加以下语句:

#在99文件内添加权限,注意不同的操作系统配置不一样。
#这里要给777的权限,不然通过dmdba启动没有文件的权限。

ACTION=="add", KERNEL=="raw[1-4]", OWNER="root", GROUP="root", MODE="777"

最后执行 partprobe /dev/mapper/mpathg,完成裸设备绑定.两个主机都要启动和绑定。两个节点都要执行。
重启两台服务器

可以通过 blockdev --getsize64 /dev/raw/raw1 命令查看裸设备大小
#两个节点都能看到高亮区显示的信息表示配置正确。
在这里插入图片描述

编写dmdcr_cfg.ini参数文件
dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。

准备 dmdcr_cfg.ini 配置文件,保存到/home/data/目录下面。后续 DMASMCMD工具执行 init 语句会使用到。

DCR_N_GRP         = 3                #集群环境包括多少个 group,取值范围 1~16
DCR_VTD_PATH     = /dev/raw/raw2  #Voting Disk 路径
DCR_OGUID         = 63635             #消息标识,dmcssm 登录 dmcss 消息校验用
################################################################################################## 
[GRP]    #[GRP]表示新建一个 Group
DCR_GRP_TYPE      = CSS         #组类型(CSS\ASM\DB)
DCR_GRP_NAME = GRP_CSS         #组的名字
DCR_GRP_N_EP = 2                 #组内节点个数 N,最大 16
DCR_GRP_DSKCHK_CNT = 60        #磁盘心跳机制,容错时间,单位秒,缺省 60S,取值范围 5~600

[GRP_CSS] 
DCR_EP_NAME = CSS0 
DCR_EP_HOST = 192.168.0.1 
DCR_EP_PORT = 9341 

[GRP_CSS] 
DCR_EP_NAME = CSS1  
DCR_EP_HOST = 192.168.0.2 
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      #共享内存标识,数值类型(ASM 有效,初始化共享内存的标识符),应为大于 0 的 4 字节整数
DCR_EP_SHM_SIZE = 10             #共享内存大小,单位 M,(ASM 有效,初始化共享内存大小),取值范围10~1024
DCR_EP_HOST = 192.168.0.1      
DCR_EP_PORT = 9349 
DCR_EP_ASM_LOAD_PATH = /dev/raw  # ASM 磁盘扫描路径,Linux 下一般为/dev/raw,文件模拟情况,必须是全路径,不能是相对路径

[GRP_ASM]                          
DCR_EP_NAME = ASM1               #组成员2的名字
DCR_EP_SHM_KEY = 93361 
DCR_EP_SHM_SIZE = 10 
DCR_EP_HOST = 192.168.0.2 
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               #组成员1的名字
DCR_EP_SEQNO = 0                  #组内序号,CSS/ASM 不能配置,自动分配 DB 可配置0到n_ep -1,组内不能重复,不配置则自动分配
DCR_EP_PORT = 5236                 
DCR_CHECK_PORT = 9741            # DCR 检查端口号。检查实例是否活动的时候用,各实例不能冲突

[GRP_DSC] 
DCR_EP_NAME = DSC1 
DCR_EP_SEQNO = 1              
DCR_EP_PORT = 5237              #此端口信息决定数据库访问的最终端口信息,此端口指定后dm.ini文件中在指定默认无效 
DCR_CHECK_PORT = 9742         # DCR 检查端口号。检查实例是否活动的时候用,各实例不能冲突

在bin目录使用dmasmcmd工具,执行./dmasmcmd命令进行初始化:(此处用到dmdcr_cfg.ini,如果初始化完成后发现配置文件有误需要重新初始化。)

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 '/home/data/dmdcr_cfg.ini'identified by 'abcd' 
init votedisk '/dev/raw/raw2' from '/home/data/dmdcr_cfg.ini'

配置节点1MAL参数文件
准备 DMASM 的 MAL 配置文件(命名为 dmasvrmal.ini),使用 DMASM 的所有节点都要配置,内容完全一样,保存到/home/data 目录下:

[MAL_INST1] 
MAL_INST_NAME = ASM0   
MAL_HOST = 192.168.0.1         
MAL_PORT = 7236 
[MAL_INST2] 
MAL_INST_NAME = ASM1 
MAL_HOST = 192.168.0.2 
MAL_PORT = 7237

#将此文件发送到节点2对应路径下。

[root@grp1 data]# scp dmasvrmal.ini dmdba@172.16.8.20:/home/data/

配置dmdcr.ini文件,保存到/home/data目录下面
DMASM 的两个节点分别配置 dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqo 分别为 0 和 1。

节点1《192.168.0.1》参数如下:

DMDCR_PATH = /dev/raw/raw1 
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径 
DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动 
DMDCR_ASM_RESTART_INTERVAL = 0 
DMDCR_ASM_STARTUP_CMD = /opt/dbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini 
#DB 重启参数,命令行方式启动 
DMDCR_DB_RESTART_INTERVAL = 0 
DMDCR_DB_STARTUP_CMD = /opt/dbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

节点2《192.168.0.2》配置文件:

DMDCR_PATH = /dev/raw/raw1 
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径 
DMDCR_SEQNO = 1 
#ASM 重启参数,命令行方式启动 
DMDCR_ASM_RESTART_INTERVAL = 0 
DMDCR_ASM_STARTUP_CMD = /opt/dbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini 
#DB 重启参数,命令行方式启动 
DMDCR_DB_RESTART_INTERVAL = 0 
DMDCR_DB_STARTUP_CMD = /opt/dbms/bin/dmserver path=/home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini

启动 DMCSS、DMASM 服务程序
在 10.0.2.101、10.0.2.102 节点先后分别启动 dmcss、dmasmsvr 程序。
手动启动 dmcss 命令:

[/opt/dmdbms/bin]# ./dmcss DCR_INI=/home/data/dmdcr.ini 

手动启动 dmasmsvr 命令:

[/opt/dmdbms/bin]# ./dmasmsvr DCR_INI=/home/data/dmdcr.ini 

如果 DMCSS 配置有自动拉起 dmasmsvr 的功能,可以等待 DMCSS 自动拉起 dmasmsvr程序,不需要手动启动。
主 DMCSS 启动后屏幕打印如下:

在这里插入图片描述

使用 dmasmtool 工具创建 DMASM 磁盘组
选择一个节点(192.168.0.1),启动 dmasmtool 工具。

[/opt/dmdbms/bin]# ./dmasmtool DCR_INI=/home/data/dmdcr.ini 
输入下列语句创建 DMASM 磁盘组: 
#创建日志磁盘组 
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' 
#创建数据磁盘组 
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

准备 dminit.ini 配置文件,保存到/home/data 目录
选择一个节点(10.0.2.101),启动 dminit 工具初始化数据库。dminit 执行完成后,会在 config_path 目录(/home/data/dsc0_config 和/home/data/dsc1_config)下生成配置文件 dm.ini 和 dmmal.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 = /home/data/dsc0_config 
port_num = 5236 
mal_host = 10.0.2.101 
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 = /home/data/dsc1_config 
port_num = 5237 
mal_host = 10.0.2.102 
mal_port = 9341 
log_path = +DMLOG/log/dsc1_log01.log 
log_path = +DMLOG/log/dsc1_log02.log

完成后需要验证是否生成了文件。

启动数据库服务器
将 10.0.2.101 机器/home/data/dsc1_config 目录拷贝到 10.0.2.102 机器相同目录下,再分别启动 dmserver 即可完成DMDSC 集群搭建。
如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。

如果需要手动启动,可参考下面的操作步骤:
10.0.2.101 机器:

./dmserver /home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini 

10.0.2.102 机器:

./dmserver /home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini

达梦社区地址:https://eco.dameng.com/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值