达梦DSC共享集群搭建

DSC搭建,总结之前搭建的一些问题:
(1)创建共享磁盘,两台虚机会启动失败:
在两台虚拟机路径下xxx.vmx文件中加入disk.locking ="FALSE"参数,可以正常启动;
(2)之前搭建DSC集群,拍快照集群就会坏掉;
原因是在创建共享存储时未选择独立;虚机创建快照页后,也无法选择磁盘独立。全新的虚拟机,设置好以后,可以拍摄快照。
(3)共享存储设置过小,分盘后在使用磁盘时会报磁盘不足等问题;
搭建环境时,没有特别指定大小;设置共享存储最少10G;
(4)安装数据库后,不要着急初始化数据库实例;
DSC有专门的初始化参数,根据文档步骤来做;

本机测试环境搭建:
1.安装数据库,切记不要初始化数据库!!!

参考达梦数据库Linux命令行安装
https://blog.csdn.net/weixin_48588449/article/details/107786517

2.添加共享磁盘:(虚机关闭状态下)
达梦DSC共享集群搭建
创建新建的虚拟机磁盘。
达梦DSC共享集群搭建
共享存储最少10G,将虚拟磁盘存储为单个文件。
达梦DSC共享集群搭建
方便记忆,给共享存储起个方便记忆的名字。
达梦DSC共享集群搭建
磁盘创建成功,与另一台虚机做共享;

磁盘选择,使用现有磁盘;
达梦DSC共享集群搭建
选择第一个虚机添加的磁盘位置,完成共享磁盘创建;
达梦DSC共享集群搭建
共享做成功后,启动虚机会启动失败:
方法一:
VM需要在两台虚拟机路径下xxx.vmx文件中加入disk.locking = “FALSE” 参数,否则后启动的虚拟机会启动失败
方法二:
先启动虚机1,将共享盘拉出到上一层目录,才可以启动虚机2;(这种方法不推荐,每次启动都需要拉出到上一层)

3.划分磁盘

输入  fdisk /dev/sdb

依次输入  n -> p -> 1 -> 回车 -> +100M -> 回车,完成第一块磁盘划分 
依次输入  n -> p -> 2 -> 回车 -> +100M -> 回车,完成第二块磁盘划分 
依次输入  n -> p -> 3 -> 回车 -> +2048M -> 回车,完成第三块磁盘划分 
依次输入  n -> p -> 4 -> 回车 -> 回车 -> 回车,完成第四块磁盘划分

分盘后首先在两台机器上刷新磁盘状态,刷新后分别查看;
partprobe /dev/sdb ;

[root@localhost ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 Aug 20 21:11 /dev/sdb
brw-rw---- 1 root disk 8, 17 Aug 20 21:11 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Aug 20 21:11 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Aug 20 21:11 /dev/sdb3
brw-rw---- 1 root disk 8, 20 Aug 20 21:11 /dev/sdb4
[root@localhost ~]# 

4.裸设备绑定
方法一:(命令绑定,写到开机自启脚本)

vim /etc/rc.local

raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
raw /dev/raw/raw3 /dev/sdb3
raw /dev/raw/raw4 /dev/sdb4

chown dmdba:dinstall /dev/raw/raw1
chown dmdba:dinstall /dev/raw/raw2
chown dmdba:dinstall /dev/raw/raw3
chown dmdba:dinstall /dev/raw/raw4

chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4


加执行权限,生效文件
chmod +x /etc/rc.d/rc.local
source /etc/rc.local

查看绑定的裸设备
ll /dev/raw*

查看裸设备大小
blockdev --getsize64 /dev/raw/raw*

方法二:(通过设备号绑定)

编辑 /etc/udev/rules.d/60-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"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"


最后执行  start_udev ,完成裸设备绑定
#rehl6操作系统需将ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"写入到/etc/udev/rules.d/99-fuse.rules 才能生效

最后执行 
(contos系统执行)udevadm control --reload-rules
(红帽系统执行)start_udev,完成裸设备绑定

systemctl restart systemd-udev-trigger.service 

查看绑定的裸设备
ll /dev/raw*

查看裸设备大小
blockdev --getsize64 /dev/raw/raw*

[root@localhost ~]# ll /dev/raw*
total 0
crw-rw---- 1 dmdba dinstall 162, 1 Aug 20 21:24 raw1
crw-rw---- 1 dmdba dinstall 162, 2 Aug 20 21:24 raw2
crw-rw---- 1 dmdba dinstall 162, 3 Aug 20 21:24 raw3
crw-rw---- 1 dmdba dinstall 162, 4 Aug 20 21:24 raw4
crw-rw---- 1 root  disk     162, 0 Aug 20 21:11 rawctl
[root@localhost ~]# 

[root@localhost ~]# blockdev --getsize64 /dev/raw/raw*
104857600
104857600
2147483648
8379170816
blockdev: ioctl error on BLKGETSIZE64: Invalid argument
[root@localhost ~]# 

两边虚机都要能查看到,分盘成功,做下一步操作;

5.添加配置文件
创建配置文件目录,添加dmdba权限,编辑配置文件
mkdir -p /dm8/config
chown dmdba:dinstall /dm8/config

vim dmdcr_cfg.ini 

  DCR_N_GRP            = 3
  DCR_VTD_PATH         = /dev/raw/raw2
  DCR_OGUID            = 45330
 
[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          = CSS0
  DCR_EP_HOST          = 192.168.10.2  #心跳地址
  DCR_EP_PORT          = 9341
[GRP_CSS]
  DCR_EP_NAME          = CSS1
  DCR_EP_HOST          = 192.168.10.4  #心跳地址
  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      = 10
  DCR_EP_HOST          = 192.168.10.131  #业务地址
  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      = 10
  DCR_EP_HOST          = 192.168.10.133  #业务地址
  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          = 5236
  DCR_CHECK_PORT       = 9742
  
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 45330

注意:AB机器该文件相同。

初始化磁盘组,一台机器上执行即可 /dm8/bin

[dmdba@localhost bin]$ ./dmasmcmd 
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 7.792(ms).
ASM> create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 1.468(ms).
ASM> create asmdisk '/dev/raw/raw3' 'LOG0'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG0
Used time: 2.882(ms).
ASM> create asmdisk '/dev/raw/raw4' 'DATA0'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA0
Used time: 2.718(ms).
ASM>init dcrdisk '/dev/raw/raw1' from '/dm8/config/dmdcr_cfg.ini' identified by 'abcd'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 33.865(ms).
ASM> init votedisk '/dev/raw/raw2' from '/dm8/config/dmdcr_cfg.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 14.934(ms).
ASM>

配置dmasvrmal.ini

vim dmasvrmal.ini

[MAL_INST1]
  MAL_INST_NAME        = ASM0
  MAL_HOST             = 192.168.10.2
  MAL_PORT             = 7236
[MAL_INST2]
  MAL_INST_NAME        = ASM1
  MAL_HOST             = 192.168.10.4
  MAL_PORT             = 7237

注意:AB机器该文件相同。

配置dmdcr.ini

A机器配置如下

DMDCR_PATH             = /dev/raw/raw1
DMDCR_MAL_PATH         = /dm8/config/dmasvrmal.ini
DMDCR_SEQNO            = 0
 
#ASM重启参数,命令行方式启动     第一次启动,可以先注释掉下面几行
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /dm8/bin/DmASMSvrService_DSC0 start

#DB重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /dm8/bin/DmService_DSC0 start


B机器配置如下

DMDCR_PATH             = /dev/raw/raw1
DMDCR_MAL_PATH         = /dm8/config/dmasvrmal.ini
DMDCR_SEQNO            = 1
 
#ASM重启参数,命令行方式启动		第一次启动,可以先注释掉下面几行
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /dm8/bin/DmASMSvrService_DSC1 start

#DB重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /app/dmdbms/bin/DmService_DSC1 start

注:dmdcr.ini中先将ASM和DMSERVER配置为手动服务,待所有配置完成后,再修改dmdcr.ini将ASM和DMSERVER配置成自动拉起。

6.启动CSS,ASM

分别启动AB机器的CSS、ASM服务   /dm8/bin

[dmdba@bin]$ ./dmcss DCR_INI=/dm8/config/dmdcr.ini

[dmdba@bin]$ ./dmasmsvr DCR_INI=/dm8/config/dmdcr.ini

启动后,虚机1CSS会打印出以下内容:

[dmdba@localhost bin]$  ./dmcss DCR_INI=/dm8/config/dmdcr.ini
DMCSS V8
DMCSS IS READY
[CSS]: 设置EP CSS0[0]为控制节点

[ASM]: 设置EP ASM0[0]为控制节点

[ASM]: 设置命令[START NOTIFY], 目标站点 ASM0[0], 命令序号[2]

[ASM]: 设置命令[EP START], 目标站点 ASM0[0], 命令序号[3]

[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]

[ASM]: 设置命令[EP START], 目标站点 ASM1[1], 命令序号[5]

[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]

[ASM]: 设置命令[EP OPEN], 目标站点 ASM0[0], 命令序号[8]

[ASM]: 设置命令[EP OPEN], 目标站点 ASM1[1], 命令序号[9]

[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]

[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]

7.创建DMASM磁盘组,在一个节点执行即可 /dm8/bin

[dmdba@localhost bin]$ ./dmasmtool DCR_INI=/dm8/config/dmdcr.ini
DMASMTOOL V8
ASM>
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
Used time: 12.018(ms).
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
Used time: 9.898(ms).
ASM>

8.配置初始化文件dm.init.ini

配置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             = 2048
  dcr_path             = /dev/raw/raw1
  dcr_seqno            = 0
  auto_overwrite       = 1
  PAGE_SIZE            = 32
 
[DSC0]
  config_path          = /dm8/config/dsc0_config
  port_num             = 5236
  mal_host             = 192.168.10.2
  mal_port             = 9340
  log_path             = +DMLOG/log/dsc0_log01.log
  log_path             = +DMLOG/log/dsc0_log02.log
[DSC1]
  config_path          = /dm8/config/dsc1_config
  port_num             = 5236
  mal_host             = 192.168.10.4
  mal_port             = 9341
  log_path             = +DMLOG/log/dsc1_log01.log
  log_path             = +DMLOG/log/dsc1_log02.log

注意:AB机器该文件相同。
初始化数据库,一台机器上执行即可   /dm8/bin
[dmdba@localhost bin]$  ./dminit control=/dm8/config/dminit.ini
initdb V8
db version: 0x7000a
file dm.key not found, use default license!
License will expire on 2021-06-24

 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

write to dir [+DMDATA/data/dsc].
create dm database success. 2020-08-20 21:50:46
[dmdba@localhost bin]$ 

在A机器上启动dminit工具初始化数据库,然后会在config目录下生成dsc0_config和dsc1_config目录,每个目录下都有dm.ini和dmmal.ini。将A机器上生成的dsc1_config目录剪贴到B机器的config目录下

9.修改dm.ini参数,配置归档;

将A/B机器上 dm.ini 中的 ARCH_INI 设置为1 ,然后配置dmarch.ini

A机器 配置文件存放目录 /dm8/config/dsc0_config  

[ARCHIVE_LOCAL1]
  ARCH_TYPE            = LOCAL
  ARCH_DEST            = /dm8/data/dmarch/arch_0      #本地路径
  ARCH_FILE_SIZE       = 2048
  ARCH_SPACE_LIMIT     = 51200
[ARCH_REMOTE1]
  ARCH_TYPE            = REMOTE
  ARCH_DEST            = DSC1
  ARCH_INCOMING_PATH   = /dm8/data/dmarch/arch_0_remote     #本地路径
  ARCH_FILE_SIZE       = 2048
  ARCH_SPACE_LIMIT     = 51200

B机器 配置文件存放目录 /dm8/config/dsc1_config

[ARCHIVE_LOCAL1]
  ARCH_TYPE            = LOCAL
  ARCH_DEST            =  /dm8/data/dmarch/arch_1    #本地路径
  ARCH_FILE_SIZE       = 2048
  ARCH_SPACE_LIMIT     = 51200
[ARCH_REMOTE1]
  ARCH_TYPE            = REMOTE
  ARCH_DEST            = DSC0
  ARCH_INCOMING_PATH   = /dm8/data/dmarch/arch_1_remote         #本地路径
  ARCH_FILE_SIZE       = 2048
  ARCH_SPACE_LIMIT     = 51200

注意:B机器未执行初始化操作,如果没有data目录,创建一个data目录即可;
归档日志根据机器情况,可自己设置

10.启动数据库
启动 DMSERVER 服务 /dm8/bin

A机器
[dmdba@bin]S ./dmserver /dm8/config/dsc0_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini

B机器
[dmdba@bin]# ./dmserver /dm8/config/dsc1_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini

启动比较慢,稍等一会;

11.注册后台启动服务;
注册后台启动脚本(DSC1/DSC2)
在正式生产环境下,要求所有的服务采用后台启动的方式进行,需要准备以下三个后台启动脚本:DMCSS后台服务脚本,DMASM后台服务启动脚本,数据库实例DMSERVER后台启动脚本。
记得要給dmdba相关的执行这几个脚本的权限,而且也要试用dmdba用户去启动这几个后台脚本;
[root@localhost ~]# cd /dm8/script/root/
注册CSS服务

 ./dm_service_installer.sh ‐t dmcss ‐dcr_ini /dm8/config/dmd
cr.ini ‐p DSC0

注册ASM服务

./dm_service_installer.sh ‐t dmasmsvr ‐dcr_ini
	/dm8/config/dmdcr.ini ‐y DmCSSServiceDSC0 ‐p DSC0

注册SERVER服务

 ./dm_service_installer.sh ‐t dmserver ‐p DSC0 ‐dm_ini
/dm8/data/dsc0_config/dm.ini ‐dcr_ini /dm8/conf
ig/dmdcr.ini ‐y DmASMSvrServiceDSC0

12.可以在第三*立的机器上配置监视器,查看DMRAC集群的整体运行情况,编辑一个dmcssm.ini文件,放在/dm8/config目录下,内容如下:

CSSM_OGUID = 45330
CSSM_CSS_IP = 192.168.10.2:9341
CSSM_CSS_IP = 192.168.10.4:9343
CSSM_LOG_PATH = ../log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0

启动监视器
cd /dm8/bin

./dmcssm INI_PATH=../config/dmcssm.ini

后期若想要CSS将ASM和实例直接拉起,需要将dmdcr.ini下注释的行取消注释

上一篇:【ASM】ASMCMD 磁盘元数据的备份与恢复实践


下一篇:SM9加密实现记录---环境配置----真实记录,有冗余或错误步骤