DMDSC详细安装部署过程
前言
DMDSC是一个单数据库、多实例的集群系统,数据库部署在共享存储上,供所有节点访问,具有高可用性、高性能、负载均衡等特性。其应用原理类似Oracle RAC,下面笔者以Oracle VM VirtualBox虚拟机安装部署DM8 DSC。
一、环境准备
1.A、B两台相同配置虚拟机centos7
操作系统版本可在官方进行下载,安装过程网上有很多教程可参考。
双网卡配置解析如下:
vi /etc/hosts
192.168.55.101 node1 #A机公网IP
10.0.2.101 node1-pri #A机私网IP
192.168.55.102 node2 #B机公网IP
10.0.2.102 node2-pri #B机私网IP
2.挂载共享存储(不少于20G)
使用Oracle VM VirtualBox的介质管理工具挂载共享存储的磁盘sdb,使用fdisk命令将共享存储划分为四个分区(fdisk /dev/sdb)
前两个分区大小为100M,第三个分区不少于2G(该分区过小可能会出现启动dmserver闪退、创建ASM磁盘组时连接失败等报错),分区大小及使用详情如下:
sdb1 用于dcr信息 100M
sdb2 用于存放vote信息 100M
sdb3 用于存放redo log 2048M
sdb4 用于存放data 剩下的全部空间
3.绑定裸设备
编辑 /etc/udev/rules.d/70-persistent-ipoib.rules 文件,将以下内容添加至文件,AB节点均需操作
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"
最后重启udev(或重启操作系统),完成裸设备绑定:
#systemctl status systemd-udevd.service
#systemctl enable systemd-udevd.service
查看裸设备大小:blockdev --getsize64 /dev/raw/raw1
列出所有裸设备:ls -l /dev/raw/raw*
crw-rw---- 1 dmdba dinstall 162, 1 9月 27 15:22 /dev/raw/raw1
crw-rw---- 1 dmdba dinstall 162, 2 9月 27 15:22 /dev/raw/raw2
crw-rw---- 1 dmdba dinstall 162, 3 9月 27 15:22 /dev/raw/raw3
crw-rw---- 1 dmdba dinstall 162, 4 9月 27 15:22 /dev/raw/raw4
crw-rw---- 1 root disk 162, 0 9月 27 15:22 /dev/raw/rawctl
4.创建文件目录、安装数据库软件
DM 数据库软件安装目录:/dm8/dmdbms
DM DSC配置文件位于目录:/dm8/config
分别在两个节点安装相同版本数据库(笔者以DM8为例):
使用dmdba用户安装(同单机安装步骤,可参考笔者单机库安装博文:达梦单机数据库Linux环境下安装卸载)
$ ./DMInstall.bin -i
二、配置参数文件,初始化数据
1.配置dmdcr_cfg.ini(AB机相同配置)
准备dmdcr_cfg.ini 配置文件,为了使用 dmasmcmd 工具格式化 DCR 和 Voting Disk。
$ cd /dm8/config
$ vi dmdcr_cfg.ini
DCR_N_GRP = 3 #集群环境包括多少个 group,取值范围 1~16
DCR_VTD_PATH = /dev/raw/raw2 #Voting Disk 路径
DCR_OGUID = 63635 #消息标识,dmcssm 登录 dmcss 消息校验用
[GRP]
DCR_GRP_TYPE = CSS #组类型
DCR_GRP_NAME = GRP_CSS #组名
DCR_GRP_N_EP = 2 #组内节点个数 N
DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳机制,容错时间,单位秒,缺省 60S,取值范围 5~600
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 10.0.2.101 #节点 IP(CSS/ASM 有效)对DB来说,是绑定 VIP 的网卡对应的物理 IP 地址
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.0.2.102
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 #ASM 的节点名必须和dmasvrmal.ini里的 MAL_INST_NAME 一致
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.0.2.101
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 = 10.0.2.102
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
2.初始化数据DCR 和 Voting Disk
运行dmasmcmd,并执行初始化
在A机上启动:(只需在一台机器执行即可)
$cd /dm8/dmdbms/bin
$ ./dmasmcmd
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
ASM>create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
ASM>create asmdisk '/dev/raw/raw3' 'LOG0&