DMDSC 搭建

本章将举例说明DMDSC的搭建过程,并介绍搭建DMDSC的一些注意事项。

11.1 环境准备

硬件:两台相同配置机器,2G内存,100G本地磁盘,2块网卡,另有一块共享磁盘100G。

操作系统:RedHat Linux 64位。

网络配置:eth0网卡为10.0.2.x内网网段,两台机器分别为10.0.2.101/10.0.2.102;eth1为192.168.56.x外网网段,两台机器分别为192.168.56.101/192.168.56.102。内网网段用于MAL通讯。

DM各种工具位于目录:/opt/dmdbms/bin。

配置文件位于目录:/home/data。

注意

真实的生产环境中,建议至少配置两块共享磁盘,分别用来存放联机日志文件和数据文件。

11.2 搭建2节点DMDSC(DMASM)

  1. 在共享磁盘上裸设备划分
  1. 输入fdisk /dev/sdb
  2. 依次输入 n ​→ p ​→ 1 ​→回车​→ +100M ​→回车,完成第一块磁盘划分
  3. 依次输入 n ​→ p ​→ 2 ​→回车​→ +100M ​→回车,完成第二块磁盘划分
  4. 依次输入 n ​→ p ​→ 3 ​→回车​→ +2048M ​→回车,完成第三块磁盘划分
  5. 依次输入 n ​→ p ​→ 4 ​→回车​→回车​→回车,完成第四块磁盘划分
  6. 编辑/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="root", GROUP="root", MODE="660"

最后执行start_udev,完成裸设备绑定。

  1. 可以通过blockdev --getsize64 /dev/raw/raw1命令查看裸设备大小
  1. 准备dmdcr_cfg.ini配置文件,保存到/home/data/目录下面。后续DMASMCMD工具执行init语句会使用到。
DCR_N_GRP           		= 3
DCR_VTD_PATH        		= /dev/raw/raw2
DCR_OGUID       			= 63635

[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         	= 10.0.2.101
	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
	DCR_EP_SHM_KEY      	= 93360
	DCR_EP_SHM_SIZE     	= 20
	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     	= 20
	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			= 5237
		DCR_CHECK_PORT		= 9742
  1. 使用DMASMCMD工具初始化
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'

可以启动dmasmcmd工具,依次输入以上命令,或者将命令写入asmcmd.txt文件,执行dmasmcmd script_file=asmcmd.txt,只需在一台机器执行即可。

用户没有指定脚本文件,则dmasmcmd进入交互模式运行,逐条解析、运行命令;用户指定脚本文件(比如asmcmd.txt),则以行为单位读取文件内容,并依次执行,执行完成以后,自动退出dmasmcmd工具。脚本文件必须以“##asm script file”开头,否则认为是无效脚本文件;脚本中其它行以“##”表示注释;脚本文件大小不超过1M。

  1. 准备DMASM的MAL配置文件(命名为dmasvrmal.ini),使用DMASM的所有节点都要配置,内容完全一样,保存到/home/data目录下
[MAL_INST1]
    MAL_INST_NAME              = ASM0
    MAL_HOST                    = 10.0.2.101
    MAL_PORT                    = 7236

[MAL_INST2]
    MAL_INST_NAME              = ASM1
    MAL_HOST                    = 10.0.2.102
    MAL_PORT                    = 7237
  1. 准备dmdcr.ini配置文件,保存到/home/data目录下面

DMASM的两个节点分别配置dmdcr.ini,dmdcr_path相同,dmasvrmal.ini文件内容也相同,dmdcr_seqo分别为0和1。

节点10.0.2.101:

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/dmdbms/bin/dmasmsvr   dcr_ini=/home/data/dmdcr.ini

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

节点10.0.2.102:

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/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini

##DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
  1. 启动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启动后屏幕打印如下:

[/opt/dmdbms/bin]## ./dmcss DCR_INI=/home/data/dmdcr.ini
dmcss V8
设置CSS[0]为主CSS
[ASM]: 设置EP0为控制节点
[ASM]: 设置命令[START NOTIFY], 目标节点[0], 命令序号[2]
[ASM]: 设置命令[EP START], 目标节点[0], 命令序号[3]
[ASM]: 设置命令[NONE], 目标节点[0], 命令序号[0]
[ASM]: 设置命令[EP START], 目标节点[1], 命令序号[9]
[ASM]: 设置命令[NONE], 目标节点[1], 命令序号[0]
[ASM]: 设置命令[EP OPEN], 目标节点[0], 命令序号[12]
[ASM]: 设置命令[EP OPEN], 目标节点[1], 命令序号[13]
[ASM]: 设置命令[NONE], 目标节点[0], 命令序号[0]
[ASM]: 设置命令[NONE], 目标节点[1], 命令序号[0]
[ASM]: 设置命令[EP REAL OPEN], 目标节点[0], 命令序号[15]
[ASM]: 设置命令[EP REAL OPEN], 目标节点[1], 命令序号[16]
[ASM]: 设置命令[NONE], 目标节点[0], 命令序号[0]
[ASM]: 设置命令[NONE], 目标节点[1], 命令序号[0]
  1. 使用dmasmtool工具创建DMASM磁盘组

选择一个节点(10.0.2.101),启动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'
  1. 准备dminit.ini配置文件,保存到/home/data目录
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
  1. 使用dminit初始化DB环境

选择一个节点(10.0.2.101),启动dminit工具初始化数据库。dminit执行完成后,会在config_path目录(/home/data/dsc0_config和/home/data/dsc1_config)下生成配置文件dm.ini和dmmal.ini。

./dminit control=/home/data/dminit.ini

屏幕打印如下:

[/opt/dmdbms/bin]## ./dminit control=/home/data/dminit.ini
initdb V8
db version: 0x70009
file dm.key not found, use default license!
License will expire on 2017-06-08
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. 2016-06-23 15:23:13
  1. 启动数据库服务器

首先,将10.0.2.101机器上/home/data/dsc1_config目录和/home/data/dsc目录拷贝到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

11.3 搭建2节点DMDSC(裸设备)

  1. 裸设备划分
  1. 输入fdisk /dev/sdb
  2. 依次输入 n ​→ p ​→ 1 ​→回车​→ +100M ​→回车,完成第一块磁盘划分
  3. 依次输入 n ​→ p ​→ 2 ​→回车​→ +100M ​→回车,完成第二块磁盘划分
  4. 依次输入n ​→ e ​→ 3 ​→回车​→回车,完成逻辑磁盘划分
  5. 依次输入n ​→ l ​→回车​→ +2048M ​→回车,完成逻辑磁盘划分
  6. 重复5的步骤,完成其他逻辑磁盘划分
  7. 编辑/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=="sdb5", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw7 %N"
ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw8 %N"
ACTION=="add", KERNEL=="sdb9", RUN+="/bin/raw /dev/raw/raw9 %N"
ACTION=="add", KERNEL=="sdb10", RUN+="/bin/raw /dev/raw/raw10 %N"
ACTION=="add", KERNEL=="raw[1-10]", OWNER="root", GROUP="root", MODE="660"

最后执行start_udev,完成裸设备绑定

  1. 可以通过blockdev --getsize64 /dev/raw/raw1命令查看裸设备大小
  2. 使用裸设备作为数据文件,数据文件大小不能更改,所以大小要提前规划好。
  1. 准备dmdcr_cfg.ini配置文件放到/home/data目录下面,后续DMASMCMD工具执行init语句会使用到。

仅使用裸设备,不使用ASM文件系统,不需要配置ASM信息,仅配置DMCSS/DB信息。

DCR_N_GRP           		= 2
DCR_VTD_PATH        		= /dev/raw/raw2
DCR_OGUID       		= 63635

[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         	= 10.0.2.101
	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        	= 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
  1. 使用DMASMCMD工具初始化
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
init dcrdisk '/dev/raw/raw1' from '/home/data/dmdcr_cfg.ini'identified by '******'
init votedisk '/dev/raw/raw2' from '/home/data/dmdcr_cfg.ini'
  1. 准备dmdcr.ini配置文件,保存到/home/data目录下面

dmdcr.ini是dmcss的输入参数。两个节点分别配置一个dmdcr.ini。dmdcr_path相同,dmdcr_seqo分别为0和1。

节点10.0.2.101:

DMDCR_PATH   = /dev/raw/raw1

DMDCR_SEQNO  = 0

##DB重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver  path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

节点10.0.2.102:

DMDCR_PATH   = /dev/raw/raw1

DMDCR_SEQNO  = 1

##DB重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
  1. 启动DMCSS服务程序

在两台机器分别启动dmcss程序,如果dmdcr.ini文件和执行程序在同一目录,可以不用指定参数,否则要指定dmdcr.ini文件的路径。

主DMCSS启动后屏幕打印如下:

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

dmcss V8

设置CSS[0]为主CSS

设置CSS[0]为主CSS

[DB]: 设置EP0为控制节点

[DB]: 设置命令[START NOTIFY], 目标节点[0], 命令序号[2]

[DB]: 设置命令[EP START], 目标节点[0], 命令序号[3]

[DB]: 设置命令[NONE], 目标节点[0], 命令序号[0]

[DB]: 设置命令[EP START], 目标节点[1], 命令序号[5]

[DB]: 设置命令[NONE], 目标节点[1], 命令序号[0]

[DB]: 设置命令[DSC OPEN], 目标节点[0], 命令序号[8]

[DB]: 设置命令[DSC OPEN], 目标节点[1], 命令序号[9]

[DB]: 设置命令[NONE], 目标节点[0], 命令序号[0]

[DB]: 设置命令[NONE], 目标节点[1], 命令序号[0]

[DB]: 设置命令[DSC REAL OPEN], 目标节点[0], 命令序号[11]

[DB]: 设置命令[DSC REAL OPEN], 目标节点[1], 命令序号[12]

[DB]: 设置命令[NONE], 目标节点[0], 命令序号[0]

[DB]: 设置命令[NONE], 目标节点[1], 命令序号[0]
  1. 准备dminit.ini配置文件,放置到/home/data目录下面
system_path = /home/data
db_name=dsc
main = /dev/raw/raw3
main_size = 128
roll = /dev/raw/raw4
roll_size = 128
system = /dev/raw/raw5
system_size = 128
ctl_path = /dev/raw/raw6
ctl_size = 8
dcr_path=/dev/raw/raw1
dcr_seqno=0
[dsc0]
config_path=/home/data/dsc0_config
port_num = 5236
mal_host = 10.0.2.101
mal_port = 9340
log_size = 256
log_path = /dev/raw/raw7
log_path = /dev/raw/raw8
[dsc1]
config_path=/home/data/dsc1_config
port_num = 5237
mal_host = 10.0.2.102
mal_port = 9341
log_size = 256
log_path = /dev/raw/raw9
log_path = /dev/raw/raw10
  1. 使用dminit初始化DB环境

选择一个节点(10.0.2.101),启动dminit工具初始化数据库。dminit执行完成后,会在config_path目录(/home/data/dsc0_config和/home/data/dsc1_config)下生成配置文件dm.ini和dmmal.ini。

./dminit control=/home/data/dminit.ini

屏幕打印如下:

[/opt/dmdbms/bin]## ./dminit control=/home/data/dminit.ini
initdb V8
db version: 0x70009
file dm.key not found, use default license!
License will expire on 2017-06-08
log file path: /dev/raw/raw7
log file path: /dev/raw/raw8
log file path: /dev/raw/raw9
log file path: /dev/raw/raw10
FILE "/home/data/dsc0_config/dm.ini" has already existed
FILE "/home/data/dsc1_config/dm.ini" has already existed
FILE "/dev/raw/raw5" has already existed
FILE "/dev/raw/raw4" has already existed
FILE "/dev/raw/raw3" has already existed
FILE "/dev/raw/raw6" has already existed
FILE "/dev/raw/raw7" has already existed
FILE "/dev/raw/raw8" has already existed
FILE "/dev/raw/raw9" has already existed
FILE "/dev/raw/raw10" has already existed
write to dir [/home/data/dsc].
create dm database success. 2016-06-23 15:43:32
  1. 启动数据库服务

首先,将10.0.2.101机器上/home/data/dsc1_config目录和/home/data/dsc目录拷贝到10.0.2.102机器相同目录下。然后,再分别启动dmserver即可完成DMDSC集群搭建。

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

11.4 单节点搭建DMDSC测试环境

DMDSC集群还支持在单节点上进行搭建,用于测试、验证DMDSC集群的功能。

使用DMASM搭建单节点DMDSC集群的步骤与11.2节介绍的步骤基本一致,有两点不同:

  • 需要修改dmdcr_cfg.ini中的IP信息;
  • 要为每个模拟节点配置一个不同的SHM_KEY值。

使用裸设备搭建单节点DMDSC集群的步骤与11.3节介绍的步骤基本一致,只需要修改dmdcr_cfg.ini中的IP信息即可。

微信扫码
分享文档
扫一扫
联系客服